Witam. Mam skrypt:
<?php
if($_POST['login'] && $_POST['pass'])
{
include('config.php');
mysql_connect(DB_HOST, DB_USER, DB_PASS)or die("Nie można nawiązać połączenia z bazą"); //połączenie z bazą danych
mysql_select_db(DB_NAME)or die("Wystąpił błąd podczas wybierania bazy danych");
$zapytanie = "INSERT INTO `konta` (`konto_id`, `konto_login`, `konto_haslo`, `konto_stan` , `konto_dokasacji`) VALUES ('', '".htmlspecialchars($_POST['login']) ."', '". htmlspecialchars($_POST['pass']) ."', '0', '0')";
if(mysql_query($zapytanie))
{
echo 'Dodano poprawnie.';
}
else
{
echo 'Nie dodano.';
}
}
else
{
echo '
Login:
Hasło:
';
}
?>
Co jest w nim nie tak?? Nie wykonuje się zapytanie.
kutar
(Kutar 0)
25 Maj 2008 11:46
#2
W pierwszym polu, które wprowadzasz, zamiast pustki w apostrofach wpisz (pomijajać apostrofy) NULL.
... VALUES (NULL, '".htmlspecialchars($_POST['login']) ."' ...
jak nie to sprawdź co zwróci mysql_error()
adpawl
(adpawl)
25 Maj 2008 17:04
#3
Sprawdź:
$login=htmlspecialchars($_POST['login']);
$pass=htmlspecialchars($_POST['pass']);
$zapytanie = "INSERT INTO konta (konto_login, konto_haslo, konto_stan , konto_dokasacji) VALUES ('$login', '$pass', '0', '0')";
Zakładając że konto_id ma ustawione na auto_increment
Co więcej, polecał bym w bazie nie zapisywać hasła w jawnej postaci tylko jego hash.
edit_
Sorry, w pośpiechu nie wywaliłem konto_id z listy kolumn.
Airborn, dzięki za zwrócenie uwagi.
Airborn
(Airborn)
25 Maj 2008 17:16
#4
adpawl , hm nie możesz podać więcej kolumn niż danych, jeżeli faktycznie konto_id jest autoformatowane, to albo należy je pominąć przy wyliczaniu kolumn, albo przypisać mu NULL