PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Komme nicht weiter, eintragen über formular


Bösewicht
2011-10-06, 14:18:50
So langsam liegen meine nerven echt blank.
Jetzt hab ich schon so viele Möglichkeiten ausprobiert und mich dumm und dämlich gesucht aber jeder Ansatz gibt bei mir einen anderen Fehler aus.

Aktuell krieg ich diese Meldung
Error ...

Der Eintrag war leider nicht erfolgreich! Column count doesn't match value count at row 1

Kann mir wer helfen ich weiß nicht weiter.


<?php

include('header.php');


if(isset($_GET['id'])){

$id = clean_it($_GET['id']);

$abfrage = mysql_query("SELECT name, passwort FROM user WHERE id='$id'");
$row = mysql_fetch_object($abfrage);
}


if(isset($_POST['submit'])){

$name = clean_it($_POST['name']);
$passwort = clean_it($_POST['passwort']);

if(empty($name) || empty($passwort)){

echo "<div class=\"error\"><h2>Error ...</h2>\n";
echo "<p>Bitte Danke alle Felder ausfuellen!</p>\n</div>\n";

}else{

if(($_GET['action']) == 'edit'){

$eintragen = mysql_query("UPDATE user SET name='$name', passwort='$passwort' WHERE id='$id' ");

}else{

$eintragen = mysql_query("INSERT INTO user (name, passwort) VALUES ('$name','$passwort', now())");

}

if($eintragen){

header("Location: admin.php");

}else{
echo "<div class=\"error\"><h2>Error ...</h2>\n";
echo "<p>Der Eintrag war leider nicht erfolgreich! ".mysql_error()."</p>\n</div>\n";
}

}

}

?>

<form action="" method="post">
<label>Name</label>
<input type="text" name="name" value="<?php echo $row->name; ?>" /><br />
<label>Passwort</label>
<input type="text" name="passwort" value="<?php echo $row->passwort; ?>" />
<br /><br />

<input type="submit" value="Eintragen" name="submit" class="button"/>
</fieldset>
</form>

<?php
include('footer.php');
?>

DR.DEATH
2011-10-06, 14:47:00
Das Problem wird wohl in dem einen Else-Zweig liegen:
$eintragen = mysql_query("INSERT INTO user (name, passwort) VALUES ('$name','$passwort', now())");

Entweder du lässt das ",now()" weg oder du setzt, da es wohl ein Datum sein soll, bei der Spaltendefinition noch eine Spalte hinzu. Zum Beispiel "(name, passwort, datum)" .

Die Fehlermeldung besagt halt, dass du mehr oder weniger Spalten einfügen willst, als angegeben/vorhanden sind.

Bösewicht
2011-10-06, 14:59:23
Das Problem wird wohl in dem einen Else-Zweig liegen:
$eintragen = mysql_query("INSERT INTO user (name, passwort) VALUES ('$name','$passwort', now())");

Entweder du lässt das ",now()" weg oder du setzt, da es wohl ein Datum sein soll, bei der Spaltendefinition noch eine Spalte hinzu. Zum Beispiel "(name, passwort, datum)" .

Die Fehlermeldung besagt halt, dass du mehr oder weniger Spalten einfügen willst, als angegeben/vorhanden sind.
Man du bist ein Genie!!!
Mein Held..
Es klingt blöd aber ich habe dafür gut 12 stunden am stück verbracht und nichts ist bhei rausgekommen...
Ich hab das now selber schon 10x gelöscht allerdings immer so , now())
und nicht so
, now()
Für mich hat das )") kein sinn gemacht.
Es geht unglaublich und ich konnte die ganze nacht niemand fragen und hab mein urlaub verschwendet:mad:

Danke, gib mir dein paypal acc oder was auch immer und du kriegst nen euro oder zwei;D

Sephiroth
2011-10-07, 18:48:39
Deine clean_it Funktion escaped dann hoffentlich die Eingabedaten?

aoe_forever
2011-10-07, 23:01:11
Deine clean_it Funktion escaped dann hoffentlich die Eingabedaten?

Wollte sowas ähnliches posten.

Bei der Klammerproblematik hilft normalerweise schon der Editor (Notepad++, Eclipse oder Aptana)...

Bösewicht
2011-10-31, 16:35:15
Deine clean_it Funktion escaped dann hoffentlich die Eingabedaten?
Jetzt bin ich grade erst an de punkt angekommen wo ich deine Frage überhaupt verstehe.
Die clean_it ist laut Tutorial nur Platzhalter z.b für Verschlüsselung.
Ich hab da jetzt md5 eingetragen.
zumindest beim Passwort.
Login und Nickname sind unterschiedliche spalten in der tabelle.
Man hört ja immer sei sicherer.

Die Sache mit dem Notpad ++ ist ja eine Geniale Idee... das Teil Rockt ja ohne ende ich nutze nichts anderes mehr, danke.

Meine größte sorge sind zur Zeit Injections
Das ist zwar für die Clan Seite an der Ich übe noch kein Thema aber spätestens das Projekt was als nächstes kommt wird etwas größer und kann bis zu 1000 Leute groß werden.
Spätestens da sollte der Code sicher sein