Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> function() i zmienne w php :/, coś się gryzie...
-Alfons P. Imp-
post
Post #1





Goście







Mam mały problem. W skrypcie php mam (w linkach) określoną zmienną $u. (czyli np. zmien.php?u=alfons). I w poniższym skrypcie pierwsze echo $u wyświetla mi "alfons" bez problemu.
Jednak następne próby wyświetlenia tego $u (gdy pojawia się function()) kończą się niepowodzeniem... Czy function() 'kasuje' zmienne?

  1. <?php
  2. if( strlen( $_POST['haslo'] ) == 0 )
  3. {
  4. echo $u . "<br>";
  5. rejestracja();
  6. }
  7. else
  8. {
  9. if( strlen( $_POST['haslo'] ) < 4 )
  10. {
  11. echo "Twoje hasło jest za krótkie!";
  12. rejestracja();
  13. }
  14. else
  15. {
  16. if( eregi('@',$_POST['mail']) )
  17. {
  18. echo $u;
  19. unlink('users/' . $u);
  20. $fp = fopen( 'users/'. $u, 'w' );
  21. fwrite( $fp, 'u;'. md5( $_POST['haslo'] ) );
  22. fclose( $fp );
  23. $fp = fopen( 'users/'. $u, 'r' );
  24. $kod = fgets($fp);
  25. fclose( $fp );
  26. $tresc = "costam";
  27. mail($_POST['mail'],"xxx - rejestracja na strone",$tresc,"From: xxx@xxx.xxx");
  28. echo "Zmieniles/as haslo!<br><br>";
  29. echo "<b>Login:</b> " . $u['login'] . "<br><b>NoweHasło:</b> " . $_POST['haslo'] . "<br><b>Kod:</b> " . $kod. "<br><br>Na twój e-mail została wysłana wiadomosć <br>z powyższymi danymi.";
  30. }
  31. else 
  32. {
  33. echo "To chyba nie jest e-mail";
  34. rejestracja();
  35. } 
  36. }
  37. }
  38.  
  39. function rejestracja()
  40. { echo $u;
  41. echo "<form method='POST' action='zmien.php?u=$u'>";
  42. echo "<b>Hasło:</b> <input type='text' name='haslo'><br>";
  43. echo "<b>e-mail:</b> <input type='text' name='mail'>";
  44. echo "<br><input type='submit' value='Zmień hasło!'></form>";
  45. }
  46.  
  47.  
  48. ?>


P.S. niektóre echo $u są tylko do sprawdzenia, czy to działa. Później większość idzie do wykasowania.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zamiast echo $u; użyj echo $_GET['u'];. Tak jest poprawniej, bezpieczniej i napewno będzie wszędzie widoczne


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ociu
post
Post #3





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Ja troszke powytykam błędy.
  1. <?php
  2. if( strlen( $_POST['haslo'] ) == 0 )
  3. # lepiej dac:
  4. if(!isset($_POST['haslo']))
  5.  
  6. # ...
  7.  
  8. if( eregi('@',$_POST['mail']) )
  9. # a jak dam me@costam ?
  10. if(preg_match('/^(.+?)@(([a-z0-9.-]+?).[a-z]{2,5})$/i', $email))
  11. ?>


pozdrawiam
Go to the top of the page
+Quote Post
-Alfons P. Imp-
post
Post #4





Goście







Dzięki. smile.gif Teraz wszystko działa. I nawet dostałem więcej, niż prosiłem. smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 08:43