Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pomimo if'a tworzy plik.
Forum PHP.pl > Forum > Przedszkole
Przemo_
Bry winksmiley.jpg

Mam problem odnośnie sprawdzania czy Pole POST zostało wypełnione.
Jeśli nie to wywala errora, że wystąpił błąd. Jednak tak czy siak tworzy mi plik tekstowy ( który powinien robić )

  1. <?php
  2. if ($_GET['action'] == 'register') {
  3. if(strlen($imie)<2){
  4. echo '<center>Podane imię jest za krótkie, bądź nie wpisałeś żadnego<br /></center>';
  5. }
  6. if(strlen($nazwisko)<2){
  7. echo '<center>Podane nazwisko jest za krótkie, bądź nie wpisałeś żadnego<br /></center>';
  8. }
  9. if(strlen($pass)<2){
  10. echo '<center>Podane hasło jest za krótkie, bądź nie wpisałeś żadnego<br /></center>';
  11. }
  12. if(!preg_match('[0-9]', $imie)){
  13. echo '<center>W imieniu nie możesz podać cyfry</center>';
  14. }
  15. if(!preg_match('[0-9]', $nazwisko)){
  16. echo '<center>W nazwisku nie możesz podać cyfry</center>';
  17. }
  18. else
  19. if (!$sprawdz_plik) {
  20. //stworzenie pliku
  21. $data = fopen($plik, 'w+');
  22.  
  23. $tresc = "Key=$pass";
  24.  
  25. //dodanie danych
  26. fwrite($data, $tresc);
  27. //zamkniecie pliku
  28. fclose($data);
  29. //jesli rejestracja sie powiedzie
  30. echo '<center>Postać zarejestrowano pomyślnie.<br />';
  31.  
  32.  
  33. }
  34. //jesli rejestracja sie nie powiedzie
  35. else
  36. echo '<center>Podany nick jest już zarejestrowany!<br /></center>';
  37. echo '<center><a href="register.php?action=reg">Powrót</a></center>';
  38.  
  39. }
  40. ?>


Formularz jest zawarty w GET Action=reg
Nastepnie po kliknięciu wyślij przenosi mnie na action=register, którego kod wyżej podałem.

Domyślam się, że tak się dzieje, ponieważ źle dodałem if'a ( warunek ) jednak nie wiem gdzie.

$sprawdz_plik - jest to zmienna, w której znajduje się funkcja sprawdzająca czy dany plik istnieje.

I teraz moje pytania :
1)Co zmienić jeśli w imieniu i nazwisku występują cyfry ( chcę by error wyskakiwał )
2)Dlaczego gdy wpisze cyfry to wyskakuje error, że imie, nazwisko, są za krotkie badz mają w sobie cyfry oraz, że hasło jest puste - wyskakuje także Zarejestrowano Pomyślnie a tak nie powinno być - po czym tworzy plik tekstowy..

Z góry thx.
Shili
Po pierwsze nie masz żadnych przypisań typu $zmienna = $_POST['dane z formularza'];

Po drugie, nie pisz samych ifów, tylko else if.
Teraz nawet jeśli imię będzie za krótkie to i tak będzie próbowało stworzyć plik w przypadku gdy nazwisko nie będzie miało cyfr. Bo else odnosi się do ostatniego ifa jaki napotka.
Przemo_
zdefiniowane miałem,tylko nie wkleiłem po prostu całego kodu.

//dodałem else i jest już OK, plus leci smile.gif Niby lekki błąd a jednak smile.gif

BTW.
Dodałem te else
potem zmieniłem preg_match na !preg_match i jak wpisuje cyfry w pola to rejestruje się....
jakieś pomysły?

EDIT
z pomocą przyszła mi funkcja is_numeric
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.