Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bardzo dziwny problem z rejestracją
.radex
post 23.03.2007, 17:50:33
Post #1





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


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ć ......?


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
UDAT
post 23.03.2007, 18:14:48
Post #2





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


Zapomniałeś przecinka między 'w' a 'u'.
I daj NOW() zamiast NOW.
Go to the top of the page
+Quote Post
.radex
post 23.03.2007, 18:17:19
Post #3





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


nadal nie działa!


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
UDAT
post 23.03.2007, 18:22:02
Post #4





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


Poszukaj kolejnej literówki powinno być '$pass', po drugie powinieneś w MySQL_Error() dostać czytelny komunikat.
Go to the top of the page
+Quote Post
.radex
post 28.03.2007, 18:46:38
Post #5





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


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?


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Kicok
post 30.03.2007, 10:20:23
Post #6





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 16:12