Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bardzo dziwny problem z rejestracją
Forum PHP.pl > Forum > Bazy danych > MySQL
.radex
Mam problem - norma. Ale jest to dla mnie szczególnie dziwne bo kiedyś także tego kodu używałem i działał luz.

fragment kodu

...
  1. <?php
  2. //pomijamy ewentualne błędy
  3.  
  4. //$md5pass = md5($pass);
  5. //$registerQuery =
  6. mysql_query("INSERT INTO users (`username` , `password` , `email` , `regtime` , `status` , `type`)
  7. VALUES ('$login' , MD5($pass) , '$email' , NOW , 'w' 'u' )");
  8. echo mysql_errno() . ": " . mysql_error(). "n";
  9. ?>

...

i zwraca mi
Kod
1136: Column count doesn't match value count at row 1
- i nie wiem co to znaczy.

całego kodu chyba nie bedę musiał dawać ......?
UDAT
Zapomniałeś przecinka między 'w' a 'u'.
I daj NOW() zamiast NOW.
.radex
nadal nie działa!
UDAT
Poszukaj kolejnej literówki powinno być '$pass', po drugie powinieneś w MySQL_Error() dostać czytelny komunikat.
.radex
jednak działało, tylko zapomniałem skopiować plik biggrin.gif

hmm..... kontunuję temat bo wcześniej działało przez jakiś czas a ostatnio się coś spaprało...

Fragment kodu:
  1. <?php
  2. $mysql = mysql_connect('localhost','root','');
  3. mysql_select_db('igk-t');
  4.  
  5. .... kod ....
  6.  
  7. //pomijamy ewentualne błędy
  8.  
  9. //$md5pass = md5($pass);
  10.  
  11. $username2 = mysql_escape_string(htmlspecialchars($login));
  12. $registerQuery = mysql_query("INSERT INTO users (`username` , `password` , `email` , `regtime` , `status` , `type`)
  13. VALUES ('$username2' , MD5($pass) , '$email' , NOW() , 'w', 'u' )");
  14. echo mysql_errno() . ": " . mysql_error(). "<br>";
  15. if ($registerQuery) echo 'Rejestracja zakończona pomyślnie'; else echo 'Nieudana rejestracja, Błąd składni. Połączenie z bazą danych zerwane. Za problem
    y techniczne przepraszamy.'
    ;
  16. ?>


I khaki błąd: 1054: Unknown column 'vb' in 'field list', gdzie vb jest tym co jest wpisane w polu hasło. (MD5'ciuję dopiero na wyjściu, jako kod sql)

jedynie dodałem to(ale to nie tego wina chyba:
$username2 = mysql_escape_string(htmlspecialchars($login));

I tak przy okazji. Czy mysql_escape_string robi coś więcej niż zamienia ' na \' (bo to sam htmlspchs robi) - bo nie wiem czy używanie go ma sens. A kiedyś na jakimś forum kolesie zalecali ale skoro i tak użuwam htmlspchs?
Kicok
1. htmlspecialchars() nie zamienia ' na \'
2. Brakuje ci apostrofów przy: MD5($pass) i baza danych myśli, że twoje hasło to nazwa jakiejś kolumny
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.