Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Skrypt rejestracji
Forum PHP.pl > Forum > Przedszkole
solandsol12
Witam,

od pewnego czasu próbuje coś klecić w języku PHP. Obecnie pracuję nad stworzeniem skryptu rejestracji użytkowników. Poradziłem sobie ze wszystkim, lecz nie działa jedna rzecz, a mianowicie: sprawdzanie dostępności nazwy użytkownika, skrypt pomimo tego, iż już takowa nazwa użytkownika istnieje w bazie tworzy kolejnego o takiej samej.

Oto kod PHP:

  1. <?php
  2. $dbhost = 'localhost';
  3. $dbuser = '';
  4. $dbpass = '';
  5. $dbname = '';
  6.  
  7. $dbc = @mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Nie moge połączyć sie z bazą danych. Przepraszamy z kłopoty');
  8. mysql_select_db ($dbname) or die ('Problemy z baza danych. Przepraszamy z kłopoty');
  9.  
  10. echo '<form action="index.php" method="post">
  11. logi: <input type="text" name="login"> <br/><br/>
  12. hasło: <input type="text" name="haslo"> <br/><br/>
  13. <input type="submit">
  14. </form>
  15. '; 
  16.  
  17.  
  18. if($_POST[login]<>''||$_POST[haslo]<>'')
  19. {
  20.  
  21. $sql =  &#092;"SELECT * FROM `uzytkownicy` WHERE login = '{$_POST[login]}'\";
  22. $result = mysql_query($sql)
  23.  
  24. if($result){
  25. $login = $_POST[login];
  26. $haslo = md5($_POST['haslo']);
  27. mysql_query(&#092;"INSERT INTO `uzytkownicy` ( `id` , `login` , `haslo` ) VALUES ('NULL', '$login', '$haslo')\") or die('Wystąpił błąd!');
  28. }
  29.  
  30. else {
  31. echo 'login jest zajety';
  32. }
  33. }
  34. ?>


Pozdrawiam.
Piotrek Maszko.
l0ud
$result zawsze będzie, o ile zapytanie się powiodło (mogło nie zwrócić wyniku). Poczytaj o funkcjach typu mysql_fetch_array i tej, która Cię interesuje: mysql_num_rows() :

http://pl2.php.net/manual/pl/function.mysql-num-rows.php
(porównaj jej wynik do 0)

Poza tym, chyba w pierwszym warunku powinno być && a nie || ? smile.gif
melkorm
  1. $sql = "SELECT * FROM `uzytkownicy` WHERE login = '{$_POST[login]}'";
  2. $result = mysql_query($sql)


musisz podtym dodać :
  1. <?php
  2. $result = mysql_num_rows($result);
  3. ?>
solandsol12
Melkorm - niestety nic to nie dało.

Pozdrawiam.
ArekJ
a może daj:

  1. <?php
  2.  
  3.  $result = mysql_query($sql);
  4.  
  5.      if (!$result) {
  6.  
  7.          error('Błąd w zapytaniu SQL');
  8.  
  9.      }
  10.  
  11.      if (@mysql_result($result,0,0)>0) {
  12.          error('Wybrany login jest zajęty. \n'.
  13.          'Proszę wpisać inny login. ');
  14.      }
  15. ?>


a tylko to error to moja funkcja. Więc jak coś to wstaw tam jakąś z PHP gotową...
melkorm
może zamiast
  1. $sql = "SELECT * FROM `uzytkownicy` WHERE login = '{$_POST[login]}'";


daj:

  1. $sql = 'SELECT * FROM `uzytkownicy` WHERE login = '.$_POST['login'];


Nie wiem czy to pomoże ;P
solandsol12
ArekJ: Zadziałało, wielkie dzięki winksmiley.jpg

Pozdrawiam.
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.