Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Edycja danych! Pomocy!
Forum PHP.pl > Forum > Przedszkole
maxil
Witam, mam problem ze zrobieniem edycji danych do konto tzn.
Mam system logowania opary na sessiach i chciałbym zrobić wyciąganie danych z bazy gdzie login jest równy loginowi na który użytkownik się zalogował czyli $_SESSION['user'] snitch.gif

więc próbowałem tak:

  1. <?php
  2. function edytdane() {
  3. $_SESSION['user'] = $log;
  4. $db = db();
  5. $zapytanie = &#092;"select * from panel_users where user='$log'\";
  6. $wynik = mysql_query($zapytanie, $db);
  7. if (!$wynik)
  8. {
  9. Nie udało się odczytać danych użytkownika!
  10.  
  11. ';
  12. }
  13. $wiersz = mysql_fetch_row($wynik);
  14. $user = $wiersz[1];
  15. $pass = $wiersz[2];
  16.  
  17.  <table border="0" align="center">
  18.  <tr><td><b><center>Login:</cente></b></td><td><b><center>Hasło:</center></b></td></tr>';
  19.  echo "<tr><input type='hidden' name='id'  value=$id><td><input type='text' name='user'  value='$user'></td><td><input type='text' name='pass'  value='$pass'></td></tr>';
  20. }
  21. ?>


niewyszło angrysmiley.gif

więc spróbowałem tak:

  1. <?php
  2. function edytdane() {
  3. $db = db();
  4. $zapytanie = &#092;"select * from panel_users where user=($_SESSION['user'])\";
  5. $wynik = mysql_query($zapytanie, $db);
  6. if (!$wynik)
  7. {
  8.  <table border="0" align="center">
  9.  <tr><td><b><center>Login:</cente></b></td><td><b><center>Hasło:</center></b></td></tr>';
  10.  echo "<tr><input type='hidden' name='id'  value=$id><td><input type='text' name='user'  value='$user'></td><td><input type='text' name='pass'  value='$pass'></td></tr>';
  11. }
  12. $wiersz = mysql_fetch_row($wynik);
  13. $user = $wiersz[1];
  14. $pass = $wiersz[2];
  15.  
  16. echo '
  17. <table border="0" align="center">
  18. <tr><td><b><center>Login:</cente></b></td><td><b><center>Hasło:</center></b></td></tr>';
  19. echo "<tr><input type='hidden' name='id' value=$id><td><input type='text' name='user' value='$user'></td><td><input type='text' name='pass' value='$pass'></td></tr>;
  20. }
  21. ?>


również nie za działało wywaliło mi tylko stupit argument tiredsmiley.gif

nie jestem za bardzo oblatany jeśli chodzi o SESSIE logowania
więc proszę o pomoc w rozwiązaniu tego problemu, myślę że odpowiedź jaką uzyskam będzie przejrzysta dla mnie i innych osób, które będą czytać ten temat. Na pewno uzyskana odpowiedź przyda się nie tylko mi, lecz innym osobą również. snitch.gif

Z góry dziękuje za pomoc i pozdrawiam
Rafal Filipek
1) zaskocz mnie swoja wizja tego co robi ta linijka :
Kod
$_SESSION['user'] = $log;

2) czemu wstawiasz sesje w nawiasach ?
Kod
$zapytanie = "select * from panel_users where user=($_SESSION['user'])";

radze poczytac jak sie pisze zapytania sql.
3) takie informacje sa bezwartosciowe.
Cytat
również nie za działało wywaliło mi tylko stupit argument

4) w jezyku polskim sa sesje.
230005
Pozwolę sobie wytłumaczyć o co przedmówcy chodziło winksmiley.jpg .

$_SESSION['user'] = $log; - jeśli nie przekazałeś wartości $log do funkcji, to jest pusta, a jak rozumiem chciałeś, żeby do zmiennej sesji user zapisywało się to co jest w log, która to zmienna jest loginem, który wpisuje user, tak? snitch.gif To nie miało prawa się udać, a pozatym pierwszy kod jest chyba ok.
krzysiekk
witam
prosze zobacz czy ta linijka zwraca połączenie
  1. <?php
  2. $db = db();
  3. ?>


bo prawdopodobnie nie
matixrr
  1. <?php
  2. $_SESSION['user'] = $log;
  3. ?>

Tu chyba próbował sesje zapisać do $log a wyszło mu odwrotnie ze to $log zapisywał do sesji...

Czyli poprawnie:
  1. <?php
  2. $log = $_SESSION['user'];
  3. ?>
piotrooo89
a

  1. <?php
  2. ?>


jest w kodzie bo jakoś nie widać.
maxil
więc tak linia:

  1. <?php
  2. $db = db();
  3. ?>


zwraca połączenie, ponieważ stosuje ją w wielu skryptach i działa poprawnie


@edit:

Wydaje mi się że problem tkwi w lini:

  1. <?php
  2. $log = $_SESSION['user'];
  3. ?>


gdyż ona nie zapisuje nicku z sesji do $log. sciana.gif
troszkę przerobiłem kod i widzę że $log jest pusty i dane nie zostają wyciągnięte z bazy sql.
więc jak bym mógł prosić o pomoc w przerobieniu tej linii aby działała poprawnie był bym wdzięczny snitch.gif
Rafal Filipek
zobacz na to co ci napisał piotrooo89. startujesz gdzieś sesję wcześniej ?
maxil
tak nawet dla pewności dopisałem do tego kodu więc mój kod wygląda aktualnie tak:

  1. <?php
  2. function edytdane() {
  3. $login  = $_SESSION['pass'];
  4. $db = db();
  5. $zapytanie = "select id, user, pass, nick, gg from panel_users where user='$login'";
  6. $wynik = mysql_query($zapytanie, $db);
  7. if (!$wynik)
  8. {
  9. echo '<center><b><br>Nie udało się odczytać danych użytkownika!<br><br></b></center>';
  10. }
  11. $wiersz = mysql_fetch_row($wynik);
  12. $user = $wiersz[1];
  13. $pass = $wiersz[2];
  14. $nick = $wiersz[3];
  15. $gg = $wiersz[4];
  16. <br><br><font size="3"><table border="0" align="left">
  17. <tr><td>Twój nick:</td><td><b>'.$nick.'</b><br></td></tr>
  18. <tr><td>Login:</td><td><b>'.$user.'</b><br></td></tr>
  19. <tr><td>Hasło:</td><td><b>'.$pass.'</b><br></td></tr>
  20. <tr<td>Numer GG:</td><td><b>'.$gg.'</b><br></td></tr>
  21. </table></font>';
  22. }
  23. ?>
piotrooo89
a zrób tak:
  1. <?php
  2. function edytdane() {
  3. $login  = $_SESSION['pass'];
  4. echo $login;
  5. }
  6. ?>


i powiedz co widać.
Rafal Filipek
czy na pewno trzymasz login w tej zmiennej sesyjnej questionmark.gif
Kod
$login  = $_SESSION['pass'];

bo jak dla mnie to logiczne jest przetrzymywanie w $_SESSION['pass'] zahaszowanego hasła O.o
maxil
na pewno, ponieważ jak dla sprawdzenia zrobiłem sobie

  1. <?php
  2. echo 'Twój login to: '.$_SESSION['user'].'';
  3. ?>


to pokazało mi login który wpisałem w polu login
piotrooo89
ale
$_SESSION['user'] != $_SESSION['pass']

to są dwie zupełne inne rzeczy...

  1. <?php
  2. function edytdane() {
  3. $login  = $_SESSION['login'];
  4. $db = db();
  5. $zapytanie = "select id, user, pass, nick, gg from panel_users where user='$login'";
  6. $wynik = mysql_query($zapytanie, $db);
  7. if (!$wynik)
  8. {
  9. echo '<center><b><br>Nie udało się odczytać danych użytkownika!<br><br></b></center>';
  10. }
  11. $wiersz = mysql_fetch_row($wynik);
  12. $user = $wiersz[1];
  13. $pass = $wiersz[2];
  14. $nick = $wiersz[3];
  15. $gg = $wiersz[4];
  16. <br><br><font size="3"><table border="0" align="left">
  17. <tr><td>Twój nick:</td><td><b>'.$nick.'</b><br></td></tr>
  18. <tr><td>Login:</td><td><b>'.$user.'</b><br></td></tr>
  19. <tr><td>Hasło:</td><td><b>'.$pass.'</b><br></td></tr>
  20. <tr<td>Numer GG:</td><td><b>'.$gg.'</b><br></td></tr>
  21. </table></font>';
  22. }
  23. ?>
maxil
$_SESSION['login'] nic nie da, gdyż po zalogowaniu sesja jest otwierana jako $_SESSION['user']
piotrooo89
Cytat(maxil @ 21.02.2009, 20:31:53 ) *
$_SESSION['login'] nic nie da, gdyż po zalogowaniu sesja jest otwierana jako $_SESSION['user']


literówka mi sie wkradła... miało być tu:

  1. <?php
  2. $login  = $_SESSION['login'];
  3. ?>


to:

  1. <?php
  2. $login  = $_SESSION['user'];
  3. ?>


rusz głową trochu...
maxil
zobacz mój pierwszy post, jest tak samo jak ty napisałeśexclamation.gif
piotrooo89
czy to:

  1. <?php
  2. $_SESSION['user'] = $log;
  3. ?>


jest == temu?
  1. <?php
  2. $login  = $_SESSION['user'];
  3. ?>


bo mi się nie wydaje. i nie krzycz na mnie, staram Ci się pomóc.
maxil
wiem i za to jestem wdzięczny snitch.gif
mój kod wygląda tak:

  1. <?php
  2. function edytdane() {
  3. $login  = $_SESSION['user'];
  4. $db = db();
  5. $zapytanie = "select id, user, pass, nick, gg from panel_users where user='$login'";
  6. $wynik = mysql_query($zapytanie, $db);
  7. if (!$wynik)
  8. {
  9. echo '<center><b><br>Nie udało się odczytać danych użytkownika!<br><br></b></center>';
  10. }
  11. $wiersz = mysql_fetch_row($wynik);
  12. $user = $wiersz[1];
  13. $pass = $wiersz[2];
  14. $nick = $wiersz[3];
  15. $gg = $wiersz[4];
  16. <br><br><font size="3"><table border="0" align="left">
  17. <tr><td>Twój nick:</td><td><b>'.$nick.'</b><br></td></tr>
  18. <tr><td>Login:</td><td><b>'.$user.'</b><br></td></tr>
  19. <tr><td>Hasło:</td><td><b>'.$pass.'</b><br></td></tr>
  20. <tr<td>Numer GG:</td><td><b>'.$gg.'</b><br></td></tr>
  21. </table></font>';
  22. }
  23. ?>
piotrooo89
Cytat(maxil @ 21.02.2009, 20:52:47 ) *
mój kod wygląda tak:


i co błąd jakiś, biała strona, coś pisze?
maxil
tym razem błąd nie wywala ale nie wyciąga danych z bazy ;/
piotrooo89
zakładam że połączenie jest OK.

  1. <?php
  2. $zapytanie = "SELECT id, user, pass, nick, gg FROM panel_users WHERE user='$login'";
  3. $wynik = mysql_query($zapytanie, $db) or die(mysql_error());
  4. ?>


może jakiś błąd?
maxil
żadnych błędów. połączenie z bazą jest gdyż sprawdziłem
Lion_87
a tak z czystej ciekawości zapytam się czy wywołujesz w ogóle tą funkcje?
maxil
oczywiście że tak, przecież idiotą nie chyba nie jestem sadsmiley02.gif

teraz już chyba wiem o co z tym chodzi prawdopodobnie jest coś nie tak z zapytaniem, gdyż $login zwraca mój login który jest zapisany w zmiennej $_SESSION['user']

nareszcie udało się!! działa jak należy!!
kod wygląda teraz tak:

  1. <?php
  2. function edytdane() {
  3. $login = $_SESSION['user'];
  4. $db = db();
  5. $zapytanie = "select user, pass, nick, gg from panel_users where user='$login'";
  6. $wynik = mysql_query($zapytanie, $db);
  7. if (!$wynik)
  8. {
  9. echo '<center><b><br>Nie udało się odczytać danych użytkownika!<br><br></b></center>';
  10. }
  11. $wiersz = mysql_fetch_row($wynik);
  12. $user = $wiersz[0];
  13. $pass = $wiersz[1];
  14. $nick = $wiersz[2];
  15. $gg = $wiersz[3];
  16. test: '.$login.'
  17. <br><br><font size="3"><table border="0" align="left">
  18. <tr><td>Twój nick:</td><td><b>'.$nick.'</b><br></td></tr>
  19. <tr><td>Login:</td><td><b>'.$user.'</b><br></td></tr>
  20. <tr><td>Hasło:</td><td><b>'.$pass.'</b><br></td></tr>
  21. <tr<td>Numer GG:</td><td><b>'.$gg.'</b><br></td></tr>
  22. </table></font>';
  23. }
  24. ?>


problem tkwił w zapytaniu i w ułożeniu wierszy teraz śmiga jak marzenie yahoo.gif
Wszystkim dziękuje za zaangażowanie laugh.gif
Pozdro dla wszystkich myślę że temat nadaje się do zamknięcia!!
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.