Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz
Forum PHP.pl > Forum > Gotowe rozwiązania
Amiger
Napisałem formularz zamówienia książki. Jednak nie mogę sobie poradzić z tym żeby pola były jednoznacznie określone tz. Tekstowe np. Nazwisko, Imię numeryczne np., kod, numer domu. Mogę co prawda zdefiniować zmienne na samym początku jednak nie wiem czy da to pożądany skutek. Następny problem jest taki że formuła sprawdzająca podaje nie wypełnione pole jednak automatycznie po wprowadzeniu danych pojawiają się pola już wcześniej wypełnione i powstaje pętla bez końca. Nie wiem tez jak napisać formułę sprawdzającą czy jest wpisany adres e-mail czy tylko jakiś tekst. Chciał bym sprawdzić czy wypełniający wpisał w adresie znaczek @
To na tyle
scanner
a) pokaz ten formularz moze.
cool.gif po wyslaniu formulrza muszisz zweryfikowac wartosci i potem je wyslac dalej
c) zdefiniowac ktore zmienne chcesz?
d )jaka fomula sprawdzajaca?
e) i po jakim wprowadzeniu sie pojawiala pola wczesniej wypelnione?
f) regexepy na ten przyklad.
Amiger
Formularz mozna zobaczyć pod adresem www.fatalnafikcja.pl/zamowienie.htm

A taki skryp wypłodziłem
<?

if (($imie == "") || ($nazwisko == "") || ($email == "") || ($ulica == "") || ($nrdomu == "") || ($kod == "") || ($miasto == "") || ($sztuk == ""))
{
echo "<form name=form method=post action=zamowienie.php3>";
echo "Nie wypełniłeś wszystkich pól zamówienia uzupełnij brakujące pola<br>";
}
if ($imie == "")
{
echo "Podaj swoje imię:<br><input type=text name=imie><br>";
else
{
echo "<input type=hidden name=imie value=$imie>";
}
if ($nazwisko == "")
{
echo "Podaj swoje nazwisko:<br><input type=text name=nazwisko><br>";
}
else
{
echo "<input type=hidden name=email value=$nazwisko>";
}
if ($email == "")
{
echo "Podaj swoje imię:<br><input type=text name=email><br>";
}
else
{
echo "<input type=hidden name=imie value=$email>";
}
if ($ulica == "")
{
echo "Podaj ulicę:<br><input type=text name=ulica><br>";
}
else
{
echo "<input type=hidden name=tresc value=$ulica>";
}
if ($nrdomu == "")
{
echo "Podaj ulicę:<br><input type=text name=nrdomu><br>";
}
else
{
echo "<input type=hidden name=tresc value=$nrdomu>";
}
if ($kod == "")
{
echo "Podaj swój kod:<br><input type=text name=kod><br>";
}
else
{
echo "<input type=hidden name=imie value=$kod>";
}
if ($miasto == "")
{
echo "Podaj miejscowość:<br><input type=text name=miasto><br>";
}
else
{
echo "<input type=hidden name=tresc value=$miasto>";
}
if ($sztuk == "")
{
echo "Podaj ilość:<br><input type=text name=sztuk><br>";
}
else
{
echo "<input type=hidden name=imie value=$sztuk>";
}

if (($imie == "") || ($nazwisko == "") || ($email == "") || ($ulica == "") || ($nrdomu == "") || ($kod == "") || ($miasto == "") || ($sztuk == ""))
{
echo "<input type=submit name=submit value=zamów>";
echo "<input type=reset name=reset value=od nowa>";
echo "</form>";//zamykamy formularz
}
else
{
$wiadomosc = "Imię: $imienNazwisko: $nazwiskonUlica: $ulicanNr Domu: $nrdomunKod Pocztowy: $kodnMiejscowość: $miastonIlość sztuk:$sztuknAdres e-mail zamawiającego: $emailn";
$potwierdzenie="Zamówił Pan/Pani:$imienNazwisko: $nazwiskonUlica: $ulicanNr Domu: $nrdomunKod Pocztowy: $kodnMiejscowość: $miastonIlość sztuk:$sztuknKsiążka zostanie dostarczona za pobraniem pocztowym w ciągu 5 dni nCena książki 30zł + koszty wysyłki.nW razie wątpliwości proszę o kontakt mail@mail.pl";
$header = "From: $imiernReply-To: $emailrn";
$firma= "From: Fatalna FikcjarnReply-To: $imiern";
mail ("mail@mail.pl", "Zamówienie", $wiadomosc, $header);
mail ($email, "Potwierdzenie", $potwierdzenie, $header);
echo "Dziękuję za zamówienie $sztuk egz. książki Fatalna Fikcja.<br>
W ciągu kilku godzin otrzymasz potwierdzenie zamówienia. ";
}
?>
scanner
Moja sugestia:
Sprawdź, czy wszystkie pola wymagane są wypełnione, jeśli nie, to:

napisz komuniakt o błędzie;
wyświetl cały formularz wypełniony danymi jakie podał user:
<input type="text" name="imie" value="<?php echo $_POST['imie'] ?">

Zaoszczedzisz tych wszystkich "else" to raz. Dwa - tak jak napisalem stosuj talice globalne ($_GET, $_POST...)

Pozatym nie pakuj wszystkiego w echo.
php wykorzystaj jako uzupelnienie HTML a nie odwrotnie.
Amiger
Dzieki za uwagi. Powalczę i zobaczymy co wypłodze.
Amiger
Czy możesz podpowiedzieć jak sprawdzić czy dany ciąg znaków zawiera @?
scanner
http://php.faq.pl/faq.html#4.14
Amiger
Jeszcze raz dzięki biggrin.gif . Mam nadzieję że nie zanudziłem na śmierć. Dzięks guuuuuru master. Nie sądziłem że można znaleźć takie perełki w sieci. Może pomógł byś mi w jeszcze jednej sprawie. Mój kolega ma małe wydawnictwo. Sam wydał około 100 książek. Chciał bym mu jakoś pomóc. Myślałem nad zorganizowaniem strony (html) na której odwiedzający może sobie przejrzeć fragment książki i zamówić ją za pobraniem. I tu problem. Nie jestem na tyle biegły bym sobie mógł poradzić z samodzielnym napisaniem całego sklepu internetowego. Nie wchodzi tu kwestia płacenia kartą czy innych fanaberii. Wysyłka za pobraniem i tyle. Myślałem nad napisaniem koszyka. Jednak wiedzy za mało. Czy może gdzieś w sieci znajduje się rozwiązanie tej kwestii? Jestem bardzo początkujący (czyt. Książka i ćwiczenie samodzielne), proszę o wyrozumiałość dla mojej ignorancji o Guruuuu master.
scanner
Naucz sie korzystac z wyszukiwarki. smile.gif
Co do sklepu: http://www.hotscripts.com/php/Scripts_and_...ams/E-Commerce/ - od cholery skryptów.

Takie proste cos, mozna tez samemu napisac. Ale obawiam sie, ze zajmie Ci to troche czasu... Lepiej na razie skorzystac z gotowca.
Amiger
Jak widać będę musiał rzeczywiście poćwiczyć wyszukiwarkę biggrin.gif laugh.gif
Mam zajęcie na długie zimowe wieczory. Zanim przyswoję sobie zdobytą wiedzę upłynie trochę wody. Mam nadzieję, że wesprzesz jeszcze czasem zielonego swoją wiedzą.
scanner
hyh... porownojac to co ja wiem, bo ludzi, ktorzy pisza na PHPPro to ja tez zielony jestem.
Ale jak bedzie można pomóc, to czemu nie. Tylko pamietaj: Zadawaj zawsze konkretne pytania, jelsi trzeba, pokaż jaki błąd występuje, pokaż odpowiedni fragment kodu (nie cale pliki), uzywaj formatowania: czyli jesli chcesz wstawic kod, kliknij na "code" u gory, wklej i kliknij jeszcze raz "code". to ulatiwa sprawe, bo wyrazniej odziela tresc posta od dodatkow.

Co do weryfikacji maila. Ja zastosowalem taki sposob, ze po sprawdzeniu wysylam majla na podany adres, zawierajacego link weryfikujacy (np:. ]http://www.server.pl/veryfi.php?token=[suma_kontrolna] gdzie [suma_kontrolna] to np. md5(adres_zamawiajacego) - takie techniki wykorzystuja rozne fora przy rejestracji.

Wkrotce na mojej stronie zaczne umieszczac rozne fragmetny moim zdaniem przydatnych kodow, moze znajdzie sie i tez cos dla ciebie. np. to co mam w tej chwili w sygnaturce moze wyluskac np. kilobajt tresci ksiazki i po dodadniu kilku linijek zrobic linka "czytaj dalej" - tajk jak to juz dziala u mnie na stronie.
Amiger
Masz rację powinienem jaśniej precyzować swoje pytania. Pokazałeś mi link do strony php faq gdzie była wyjaśniona kwestia e-maila. Czy powinienem dołączyć tą część kodu do swojego formularza? Czy powinien być to plik zewnętrzny, taki jak na przykład zamowienie.php, do którego odwołuję się w swoim formularzu? I jeszcze jedna najistotniejsza sprawa. Te pytania wynikają z tego że nie wiem nic na temat polecenia function. Co potwierdza że jestem jeszcze bardzo zielony. I szukam jej wyjaśnienia w manualu php, jednak do zrozumienia potrzeba czasu.[/code]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.