Avatar billede wqazr Nybegynder
14. august 2004 - 19:20 Der er 9 kommentarer og
1 løsning

Column count doesn't match value count at row 1?

hey ... jeg får denne fejl:
Column count doesn't match value count at row 1

Når jeg prøver at oprette en bruger i mit system.. koden den opretter med er:

<?
include("sql.php");

if ($_POST['system'] == 'opret_bruger') {
$result = mysql_query("SELECT username FROM users WHERE username='" . $_POST['username'] . "'");
if(mysql_num_rows($result) > 0) echo'Der fandtes allerede en bruger med det ønskede brugernavn!';
else {
$password = $_POST['password'];
$password2 = $_POST['password2'];
if ($password != $password2) {
echo "De 2 koder er ikke ens!";
} else {
mysql_query("INSERT INTO users VALUES (username='".$_POST['username']."', password='".$_POST['password']."', email='".$_POST['email']."', ip='".$_POST['ip']."', profil='".$_POST['profil']."')") or die(mysql_error());
header("Location: login.php");
}
}
exit;
}
?>

Hvad er fejlen?? har rodet emd det 1 time nu..
Avatar billede jammerlab Nybegynder
14. august 2004 - 19:21 #1
Din INSERT der er problemet... jeg kender den ikke som du bruger den...

mysql_query("INSERT INTO noget (felt1,felt2) values ('$1,'$2')")or die (mysql_error());
Avatar billede Slettet bruger
14. august 2004 - 19:26 #2
Ja, som jammerlab siger, skal du lige rette lidt på din sql sætning.

mysql_query("INSERT INTO users (username, password, email, ip, profil) VALUES ('$_POST[username]','$_POST[password]','$_POST[email]', '$_POST[ip]', '$_POST[profil]')") or die(mysql_error());

Jeg kan se at du ikke bruger nogen form for kryptering på passwordet. Så med mindre dit password felt i databasen, er af typen md5 eller ligende, vil jeg opfordre dig til at bruge md5($_POST[password]); - hvilket øger sikkerheden merkant.
Avatar billede wqazr Nybegynder
14. august 2004 - 19:31 #3
kan du så sætte det der md5 på mit login også så?? der er også en lille fejl i men kan ik finde den:

if ($_POST['system'] == 'login') {
session_start();
$result = mysql_query("SELECT * FROM users WHERE username='" . $username . "' AND password='" . $password . "'") or die(mysql_error());
if(mysql_num_rows($result) == '0') {
include("menu_af.php");
echo 'Du har angivet et forkert brugernavn eller password!';
} else {
$row = mysql_fetch_array($result);
echo $row[userid]; //fx
$_SESSION[username] = $row[username];
$_SESSION[userid] = $row[id];
header("Location: index.php");
exit;
}
}
Avatar billede jammerlab Nybegynder
14. august 2004 - 19:33 #4
$result = mysql_query("SELECT * FROM users WHERE username='$username' AND password=' $password'") or die(mysql_error());
Avatar billede wqazr Nybegynder
14. august 2004 - 19:35 #5
virker ikke jammerlab
Avatar billede jammerlab Nybegynder
14. august 2004 - 19:36 #6
hvad siger den af fejl her?
Avatar billede Slettet bruger
14. august 2004 - 19:57 #7
Altså, når passwordet nu er krypteret i databasen, skal du ved login blot krypter det indtastet password, og sammenligne de to krypterede værdier.

dvs, at inden du SELECTER fra databasen blot laver en variabel ala:

$password = md5($_POST["password"]);

Så kan du bruge den til at tjekke, om værdien er den samme som i databasen. Hvis den passer, er det indtastet password korrekt.
Avatar billede wqazr Nybegynder
14. august 2004 - 20:18 #8
jammerlab den skriver bare Du har angivet et forkert brugernavn eller password! lige meget hvad..
Avatar billede wqazr Nybegynder
14. august 2004 - 20:31 #9
det hele virker nu :D takker :D smid lige et svar begge to så deler i !! :) :) :)
Avatar billede jammerlab Nybegynder
14. august 2004 - 20:54 #10
sort hehe :P skriv lige hvis der er noget der fucker igen så må vi jo lige hjælpe lidt til...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester