Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz
Forum PHP.pl > Forum > Przedszkole
lukash82
Witam. Mam klopot ze sprawdzeniem danych wpisanych przez uzytkownika do formularza gdy ten bedzie chcial cos kupic w sklepie internetowym. Chodzi tu o to zeby nie wpisywal jakichs dziwnych rzeczy a np. imie czy nazwisko z duzej litery, bez cyferek itd. Formularz wyglada nastepujaco (plik nazywa sie powiedzmy form1.php:

I teraz gdy uzytkownik wpisze dane klika na buttona na dole i wtedy ma byc akcja typu, ze jesli dane sa zle wpisane to ma wrocic z powrotem do tego formularza i wywalic komunikat gdzie jest blad (cos jak np. przy zakladaniu maila i wyborze nicku) A jesli wszystko bedzie ok to przejdzie dalej (do pliku form2.php) np prezentujac wpisane dane jeszcze raz z opcja wroc gdyby uzytkownik sie jednak pomylil w kodzie pocztowym czy cus w tym stylu. Probowalem to zrobic wykorzystujac if, cos w tym stylu co umiescilem w pliku form2.php:
  1. <?php
  2.  
  3. if {
  4. if ( !ereg("^[A-Z][a-z]+$",$imie))
  5. printf("zle imie");
  6. else {echo "$imie";}
  7. if ( !ereg("^[A-Z][a-z]+$",$nazwisko))
  8. printf("zle nazwisko");
  9. else {echo "$nazwisko";}
  10. }
  11. else{
  12. --wyswietlanie danych jesli dobre--
  13. }
  14.  
  15. ?>

I wlasnie z tym mam problem bo nie wiem jak sie za to zabrac praktycznie bo teoretycznie to chyba jest dobre podejscie... Nie wiem jak przekazac te zle wpisane dane z powrotem do tamtego formularza (form1.php). Jesli ktos wie jak sie za to zabrac to prosze o pomoc. No chyba ze bylby inny sposob sprawdzenia...questionmark.gif Pozdrawiam
krzyszbi
witam
poczytaj sobie o sesjach a napewno coś sobie wykombinyjesz
ja torobie mniej więcej tak (ten kod jest zawarty w drugin pliku )
  1. <?php
  2.  
  3. if (empty($_POST['nazwa_pola']))
  4. {
  5. $_SESSION['info'] = 'Masz bląd, popraw';
  6. header('Location: plik1.php');
  7. }
  8.  
  9. ?>

pewnie ci o to biega alejak nie to pisz
lukash82
Oki. Powiedzmy, ze czesc juz dziala smile.gif tzn. nie pozwala przejsc dalej jesli pole jest puste. Jeszcze tylko jesli mozesz krzyszbi to napisz jak mam zrobic zeby przy danym zle wypelnionym polu wywalal ten blad.
Wyglada to mniej wiecej tak (tzn w tym pierwszym pliku form1.php)
  1. <tr>
  2. <td width="30%" class=r>Imię</td>
  3. <td width="70%" class=l><input type="text" name="imie" maxlength="30" size="30">
  4.  
  5.  
  6. </td>
  7. </tr>

Pozdr.
krzyszbi
witam
a więc jak chcesz pokaać ostrzeżenie to je dajesz w tym miejscu w którym ma sie ono pokazać, ja to robie mniej więcej tak
  1. <tr>
  2. <td width="30%" class=r>Imię</td>
  3. <td width="70%" class=l>
  4. <?php
  5. if (!empty($_SESSION['info']))
  6. echo $_SESSION['info'];
  7. ?>
  8. <input type="text" name="imie" maxlength="30" size="30">
  9. </td>
  10. </tr>

i tak mniej wiecej ja to mam zrobione(chociarz u mnie info o wynaganych polach pokazuje się na samej górze)
i tak na koniec dobrze jet jak bedziesz mial zapamiętanie i automatyczne wczytanie wcześniej wpisanych danych mniej więcej tak to zrobione
  1. <?php
  2. if (empty($_POST['nazwa_pola']))
  3. {
  4. $_SESSION['info'] = 'Masz bląd, popraw';
  5. $_SESSION['nazwa_pola'] = $_POST['nazwa_pola'];
  6. header('Location: plik1.php');
  7. }
  8.  
  9. ?>

a później w pliku z formularzem dajesz
  1. <?php
  2. if (!empty($_SESSION['info']))
  3. echo $_SESSION['info'];
  4. if (!empty($_SESSION['nazwa_pola']))
  5. echo'<input type="text" name="imie" maxlength="30" size="30" value="'.$_SESSION['nazwa_pola'].'" />';
  6. ?>

to tyle z mojej strony
lukash82
OK! Dziala biggrin.gif Dzieki za pomoc krzyszbi
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-2025 Invision Power Services, Inc.