Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestracja uzytkownikow a logowanie
Forum PHP.pl > Forum > Bazy danych > MySQL
M45t3r
Witam, otoz napisalem taki skrypcik rejestrowania uzytkownikow, wszystko pieknie ladnie, ale mam 2 pytania:

ten skrypt weyglada tak: (to nie jest caLy kod

  1. <?php
  2. else if($akcja=='rejestracja')
  3. {
  4. if(empty($fr))
  5. {
  6. include ('config.php');
  7. echo '
  8. <form action='user.php?akcja=rejestracja&fr=zatwierdz' method='post'>
  9. Login: <input type='text' name='login' />
  10. <br><br>
  11. Hasło: <input type='password' name='haslo' />
  12. <br><br>
  13. Adres e-mail: <input type='text' name='mail' />
  14. <br><br>
  15. Adres obrazka: <input type='text' name='avatar' />
  16. <br><br>
  17. Info o sobie:
  18. <br> <textarea name='info' rows='12' cols='60'>Tutaj napisz coś o sobie</textarea>
  19. <br><br>
  20. <input type='submit' value='Zarejestruj się'>
  21. </form>
  22. ';
  23. }
  24. elseif ($fr=='zatwierdz')
  25. {
  26. $query = 'INSERT INTO `uzytkownicy` VALUES (NULL, \"'.$login.'\"\"'.$haslo.'\"\"'.$mail.'\"\"'.$avatar.'\"\"'.$info.'\") ';
  27. $result = mysql_query($query);
  28. if($result)
  29. {
  30.  'Zostałeś zarejestrowany';
  31. }
  32.  
  33. ?>


i teraz jak zrobic, zeby haslo do bazy trafialo zakodowane snitch.gif md5 albo base64...lepiej md5, i jakie zapytanie jest potrzebne do zalogowania się userow. Wiem, ze to mozna nazwaz wyzsza szkola jazdy, no, ale coz, zabralem sie za to...i chcialbym to skonczycz
Legro
Może tak :

jak masz twoje zapytanie sql

  1. <?php
  2.  
  3. $query = 'INSERT INTO `uzytkownicy` VALUES (NULL, \"'.$login.'\"\"'.MD5($haslo).'\"\"'.$mail.'\"\"'.$avatar.'\"\"'.$info.'\") ';
  4.  
  5. ?>



questionmark.gif
Skobi
a co do zalogowania to wykonaj zapytanie podobne do poniższego:

  1. <?php
  2.  
  3. $strQuery = &#092;" SELECT * FROM uzytkownicy where login = '\".$_POST['login'].\"' AND haslo = '\".md5($_POST['haslo']).\"' \";
  4.  
  5. ?>
dag
Pamiętaj o SQL Injection.
M45t3r
ok cos zaczelo wychodzic snitch.gif moze pokaze snitch.gif

  1. <?php
  2. else if($akcja=='loguj')
  3. {
  4. if(empty($fl))
  5. {
  6. echo '
  7. <form action='user.php?akcja=loguj&fl=zaloguj' method='post'>
  8. Twój login: <input type='text' name='login' />
  9. <br><br>
  10. Twoje hasło: <input type='password' name='haslo' />
  11. <br><br>
  12. <input type='submit' value='Zaloguj się'>
  13. </form>';
  14. }
  15. elseif($fl=='zaloguj')
  16. {
  17. $query = &#092;" SELECT * FROM uzytkownicy where login = '\".$_POST['login'].\"' AND haslo = '\".$_POST['haslo'].\"' \";
  18. $result = mysql_query($query);
  19. if($result)
  20. {
  21. echo 'Zostałeś zalogowany';
  22. }
  23. else {echo'bledny login lub haslo';}
  24. }
  25. }
  26. ?>


tylko, ze jak wpisze samo user.php?akcja=loguj&fl=zaloguj nie wyswietla sie napisa, bleny login lub haslo, tylko ze zostalem zalogowany snitch.gif moze ktos pomoc mi rozwiazac ten blad ?
nospor
mysql_query zwraca false gdy zapytanie bledne. Gdy zapytanie poprawne to zwraca ci identyfikator wyniku, nawet jesli zapytanie nie zwrocilo zadnych rekordów. Tak więc powinienes sprawdzac czy zwrocono ci jakies rekordy:
  1. <?php
  2.  
  3. //....
  4. $result = mysql_query($query);
  5. if($result && mysql_affected_rows($result) > 0)
  6. {
  7. echo 'Zostałeś zalogowany';
  8. }
  9. else 
  10. {
  11.  echo'bledny login lub haslo';
  12. }
  13.  
  14.  
  15. ?>
M45t3r
Warning: mysql_affected_rows(): supplied resource is not a valid MySQL-Link resource in c:\usr\krasnal\www\fcb\user.php on line 87


taki blad mam

linia 87 to


  1. <?php
  2. if($result && mysql_affected_rows($result) > 0) 
  3. ?>
nospor
A sorki, pomylilem funkcje. ma być mysql_num_rows
  1. <?php
  2.  
  3. //....
  4. $result = mysql_query($query) or die(mysql_error());
  5. if($result !== false) 
  6. {
  7.   if (mysql_num_rows($result) > 0)
  8.   {
  9.   echo 'Zostałeś zalogowany';
  10.   }
  11.   else 
  12.   {
  13.      echo'bledny login lub haslo';
  14.   }
  15. }
  16. else
  17.    echo "zle zapytanie";
  18.  
  19. ?>
M45t3r
Tak teraz działa snitch.gif a jeszcze takie jedno pytanko, jak zrobic, zeby skrypt rozroznial czy user jesst zalogowany czy nie snitch.gif czyli np. jak bylby zalogowany pojawia sie (np. w index.php) napis jestes zalogowny, a jak jest niezalogowany to np witaj gosc questionmark.gif
nospor
Do tego najleipiej uzyc sesji. gdy gostek się zaloguje zapamięteać jego np. dane w sesji. Każdy skrypt(strona) na początku będzie sprawdzaŁ czy takie dane w sesji są. Jeśli są to widatj uzytkowniku, jak nie ma to witaj gościu.
O sesji było mulutm razy na forum. Poszukaj, pooczytaj, wykonaj biggrin.gif
M45t3r
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\usr\krasnal\www\fcb\header.php:21) in c:\usr\krasnal\www\fcb\user.php on line 71

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\usr\krasnal\www\fcb\header.php:21) in c:\usr\krasnal\www\fcb\user.php on line 71



.. cos czuje klopoty....
nospor
Cytat
headers already sent by
problem milion razy poruszany na forum. poszukaj.

daj na początku skryptu ob_start();
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.