Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pomimo if'a tworzy plik.
Przemo_
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

Ostrzeżenie: (0%)
-----


Bry (IMG:http://forum.php.pl/style_emoticons/default/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.

Ten post edytował Przemo_ 21.05.2008, 16:35:25
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Shili
post
Post #2





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Przemo_
post
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 1
Dołączył: 12.06.2007

Ostrzeżenie: (0%)
-----


zdefiniowane miałem,tylko nie wkleiłem po prostu całego kodu.

//dodałem else i jest już OK, plus leci (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Niby lekki błąd a jednak (IMG:http://forum.php.pl/style_emoticons/default/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

Ten post edytował Przemo_ 21.05.2008, 17:04:35
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:05