Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: function() i zmienne w php :/
Forum PHP.pl > Forum > Przedszkole
Alfons P. Imp
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.
nospor
zamiast echo $u; użyj echo $_GET['u'];. Tak jest poprawniej, bezpieczniej i napewno będzie wszędzie widoczne
Ociu
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
Alfons P. Imp
Dzięki. smile.gif Teraz wszystko działa. I nawet dostałem więcej, niż prosiłem. smile.gif
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.