Login script tut nichts ?

Code46

Erfahrenes Mitglied
Hi Leute,

Ich versuche gerade ein login script zu schreiben,jedoch bekommen diese Error message :
Insertion Failed:Column count doesn't match value count at row 1

Dies ist mein Code:
Code:
<?php
include 'dbc.php';
$errors =array();
if (isset($_POST['doRegister']))
{

$user_ip = $_SERVER['REMOTE_ADDR'];


$pwd = md5($_POST['pwd']);


// Generates activation code simple 4 digit number
$activ_code = rand(1000,9999);

$fullname = $_POST['full_name'];
$usr_email = $_POST['usr_email'];
$user_name = $_POST['user_name'];
$user_postcode = $_POST['user_postcode'];



	$sql_insert = "INSERT into `users`
  			(`full_name`,`user_email`,`pwd`,`postcode`,`activation_code`,`user_name`
			)
		    VALUES
		    ('$fullname','$usr_email','$pwd','$user_postcode',now(),'$user_ip','$activ_code','$user_name'
			)
			";
			
mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());
$user_id = mysql_insert_id($link);  
$md5_id = md5($user_id);
}
?>
 
Zuletzt bearbeitet:
Die Fehlermeldung sagt doch ganz genau, wo das Problem liegt:

"Spaltenanzahl stimmt nicht mit Werteanzahl überein"

Wenn ich richtig gezählt habe, hast du 6 Spalten angegeben, die du mit 8 Werten füllen willst. Das geht natürlich nicht, weil du pro Spalte nur einen Wert einfügen kannst...
 
Sorry habe es gerade nochmal versucht ich bekomme diese Error message:

Insertion Failed:Duplicate entry 'meineemail@gmail.com' for key 'user_email'

Wenn ich in die Datenbank gucke sind alle werte eingetragen.

Habe das Problem gelöst. Danke :D

Habe aber da mal eine andere frage.

Warum muss man Variablen innerhalb des if(isset) statements schreiben ?
 
Jepp. Aber 'dublicate' bedeutet Doppelt. Also ist dieser EIntrag schon drin und wurde kein 2tes mal hinzugefügt.
 
Code46 hat gesagt.:
Warum muss man Variablen innerhalb des if(isset) statements schreiben ?

isset() prüft, ob eine Variable überhaupt vorhanden ist. Falls die Variable $keks nicht existiert, kannst sie in if ($keks) nicht ausgewertet werden, was zu einem PHP-Fehler führt.

In der Praxis ist das Error-Level aber meistens so hoch eingestellt, dass du die Meldung gar nicht siehst und der Ausdruck if($keks) einfach als false ausgewertet wird, falls $keks nicht initialisiert wurde. Es ist aber trotzdem schlechter Programmierstil und sollte daher vermieden werden.
 

Neue Beiträge

Zurück