Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z przekazaniem zmiennej do sesji
Forum PHP.pl > Forum > Przedszkole
tomekn
Witam mam problem polegający na tym ze próbuję pobrać zmienną login, password,
email. Zmienna login i password przesyłane są przez formularz jadna zmienna
email pobierana jest z tabeli SELECT-em na podctawie zmiennej login i password.
Wszystko działa Ok tylko nie mogę wyświetlić zmiennej email.

Kod wygląda tak:
$baza = mysql_connect("...", "...", "...");
if ($baza) {
$wynik = mysql_select_db("...");
if ($wynik) {
$wynik=mysql_query("SELECT username, password FROM users WHERE
username='$login' and password='$haslo'");

if (mysql_num_rows($wynik)==1) return true;

mysql_select_db ($nbaza, $link);
$user_email = mysql_query("SELECT email FROM users WHERE username = '$login'", $link);
$row = mysql_fetch_array($user_email, MYSQL_NUM);

}
mysql_close($baza);
}
return false;
}
if (istnieje($_POST["login"],$_POST["haslo"])) { // zalogowanie
$_SESSION["zalogowany"]="tak";
$_SESSION["login"]=$_POST["login"];
$_SESSION["haslo"]=$_POST["haslo"];
$_SESSION["email"]=$row[0];
}
Wydaje mie się że problem tkwi w wierszu
$_SESSION["email"]=$wynik[2];
który ma pobrać zmienną email ale nie wiem jak sobie z tym poradzić. Dzięki za
pomoc.
tumczasty
na początku cytat z manuala:
Cytat
Instrukcja return(), wywołana z wnętrza funkcji, natychmiastowo zakańcza wykonywanie tej funkcji (...)

a w kodzie jest tak:
  1. <?php
  2. if (mysql_num_rows($wynik)==1) return true;
  3. ?>

dlatego dalsza część funkcji juz się nie wykona, a nawet gdyby, to zmienna $row nie jest dostępna poza funkcją, bo nie jest globalna. Proponuję też od razu pobierać z bazy mejla:
  1. <?php
  2. function istnieje($login,$haslo) {
  3. global $row;
  4. $baza = mysql_connect(&#092;"...\", \"...\", \"...\");
  5. if ($baza) {
  6.  $wynik = mysql_select_db(&#092;"...\");
  7.  if ($wynik) {
  8. $wynik=mysql_query(&#092;"SELECT email FROM users WHERE username='$login' and password='$haslo'\");
  9. if (mysql_num_rows($wynik)==1) {$row = mysql_fetch_array($wynik, MYSQL_NUM); return true;} else return false; 
  10.  }
  11. }
  12. return false;
  13. }
  14.  
  15. if (istnieje($_POST[&#092;"login\"],$_POST[\"haslo\"])) { // zalogowanie
  16.  $_SESSION[&#092;"zalogowany\"]=\"tak\";
  17.  $_SESSION[&#092;"login\"]=$_POST[\"login\"];
  18.  $_SESSION[&#092;"haslo\"]=$_POST[\"haslo\"];
  19.  $_SESSION[&#092;"email\"]=$row[0];
  20. }
  21. ?>

nie uprościłem kodu maksymalnie, żebyś mógł się w nim zorientować
(ładnie pokolorowało, prawda? też tak możesz mieć w swoich postach... winksmiley.jpg )
tomekn
Zrobilem tak jednak dalej mi nie działa. Co jest grane nieby banalna sprawa a juz walcze z tym trzeci dzień sad.gif

  1. <?
  2. //if ($_GET[\"login\"]==\"koniec\") { // wylogowanie
  3. // session_unset();
  4. // session_destroy();
  5. //}
  6. include('config.inc');
  7.  
  8. $login = $HTTP_POST_VARS[&#092;"login\"];
  9. $haslo = $HTTP_POST_VARS[&#092;"haslo\"];
  10. $email = $HTTP_POST_VARS[&#092;"email\"];
  11.  
  12. function istnieje($login, $haslo) {
  13. if ($login==&#092;"\" or $haslo==\"\") return false;
  14. $baza = mysql_connect(&#092;"...\", \"...\", \"...\");
  15. if ($baza) {
  16. $wynik = mysql_select_db(&#092;"...\");
  17. // if ($wynik) {
  18. // $wynik=mysql_query(\"SELECT username, password FROM users WHERE username='$login' and password='$haslo'\");
  19. // if (mysql_num_rows($wynik)==1)  return true;
  20.  
  21.  
  22. if ($wynik) {
  23. $wynik=mysql_query(&#092;"SELECT username, password, email FROM users WHERE username='$login' and password='$haslo'\");
  24. if (mysql_num_rows($wynik)==1) 
  25. {
  26. $row = mysql_fetch_array($wynik, MYSQL_NUM); 
  27. return true;
  28. }
  29.  else return false; 
  30. }
  31. //mysql_close($baza);
  32. }
  33. return false;
  34. }
  35. if (istnieje($_POST[&#092;"login\"],$_POST[\"haslo\"])) { // zalogowanie
  36. $_SESSION[&#092;"zalogowany\"]=\"tak\";
  37. $_SESSION[&#092;"login\"]=$_POST[\"login\"];
  38. $_SESSION[&#092;"haslo\"]=$_POST[\"haslo\"];
  39. $_SESSION[&#092;"email\"]=$row[2];
  40. }
  41. if ($_SESSION[&#092;"zalogowany\"]==\"tak\") {
  42.  
  43. echo &#092;"co to ten row = \";
  44. echo &#092;"$row[2]\";
  45. /*
  46. //**************************** sprawdzanie uprawnien
  47. mysql_select_db ('lzs', $link);
  48. $sql = \"SELECT uprawnienia FROM users WHERE username='\" . $_SESSION['login'] . \"'\";
  49. $uprawnienia = mysql_query($sql, $link);
  50. $row = mysql_fetch_array($uprawnienia, MYSQL_NUM);
  51. if ($row[0]==1) {
  52. $dodaj_log = mysql_query(\"INSERT INTO log ( Id , data , kto , operacja , opis ) VALUES ( '', '$dzisiaj', '$login, $ip, $nazwa', 'Udane zalogowanie admina do www', 'Data operacji: $dzisiaj, login: $login' )\", $link);
  53. header(\"Location: http://localhost/lzs/admin/admin_index.php\");
  54. }
  55. elseif ($row[0]==2) {
  56. $dodaj_log = mysql_query(\"INSERT INTO log ( Id , data , kto , operacja , opis ) VALUES ( '', '$dzisiaj', '$login, $ip, $nazwa', 'Udane zalogowanie usera do www', 'Data operacji: $dzisiaj, login: $login' )\", $link);
  57. header(\"Location: http://localhost/lzs/user/user_index.php\");
  58. }
  59. elseif ($row[0]==3) {
  60. $dodaj_log = mysql_query(\"INSERT INTO log ( Id , data , kto , operacja , opis ) VALUES ( '', '$dzisiaj', '$login, $ip, $nazwa', 'Udane zalogowanie viewera do www', 'Data operacji: $dzisiaj, login: $login' )\", $link);
  61. header(\"Location: http://localhost/lzs/user_viewer/user_index.php\");
  62. } else {
  63. $dodaj_log = mysql_query(\"INSERT INTO log ( Id , data , kto , operacja , opis ) VALUES ( '', '$dzisiaj', '$login, $ip, $nazwa', 'Próba logowania bez uprawnien', 'Data operacji: $dzisiaj, login: $login' )\", $link);
  64. echo \"<div align=center><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>Nie masz uprawnień do logowania się skontaktuj sie z administratorem\";
  65. echo \"<p align=center><a href=http://localhost/lzs/start.php>Powrót do strony logowania</a>\";
  66. }
  67. } else {
  68. echo \"<div align=center><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>Podałeœ złe hasło lub login\";
  69. echo \"<p align=center><a href=http://126.116.9.11/lzs/start.php>Spróbuj ponownie sie zalogować</a></p><br><br><br><br><br><br><br><br><br><br>\";
  70. */
  71. }
  72. ?>
tumczasty
a co z:
  1. <?php
  2. global $row;
  3. ?>

(3 linijka mojego kodu w poprzednim poście)

polecam

może teraz zadziała...
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.