Antworten auf deine Fragen:
Neues Thema erstellen

sql-Befehl: INSERT INTO .... funktioniert nicht

d3mueller

PC-Freak :D

Hi, habe wieder mal ein Problem^^:

Habe ein Formular, welches Daten (Kommentare von Benutzern) in eine Datenbank-Tabelle eintragen soll. Aber es funktioniert nicht. Es kommt auch keine Fehlermeldung, es kommt nur das fieldset "Fehler". Ich verstehs einfach nicht:

PHP:
if(isset($_POST['submit'])) {
$name = htmlentities($_POST['name']);
$mail = htmlentities($_POST['mail']);
$kommentar = htmlentities($_POST['kommentar']);
$insert_comment = $db->query("INSERT INTO `Kommentare` (`art_nr`, `name`, `mail`, `kommentar`, `freischaltung`) VALUES (`$id`, `$name`, `$mail`, `$kommentar`, `1`)");

if($insert_comment) {
echo "<fieldset class='information'>Kommentar gespeichert. Sobald er freigeschaltet wurde, erscheint er hier auf der Seite.</fieldset>";
} else {
echo "<fieldset class='fehler'>Fehler</fieldset>";
}

}

Die Variable $id ist vorher schon deklariert wurden (aus der URL). Die datenbankverbindung stimmt auch, Schreibfehler sehe ich keine und ich komm einfach nicht dahinter, was ich falsch gemacht habe.

Weiß jemand, woran es liegt?

Danke schon mal

LG


PS: Wie kann man Eingaben entschärfen, ohne alles HTML umgewandelt wird? Also z.B. soll der Benutzer einen Link posten können, aber er soll nichts schädliches in die Datenbank eintragen können.

Da htmlentities() ja alles umwandelt, könnte man kurz vor der Ausgabe, also wenn man die Werte schon aus der Tabelle ausgelesen hat, das wieder in HTML verwandeln, oder? Also mit html_entity_decode(). Oder geht das einfacher?
 

Duddle

Posting-Frequenz: 14µHz

AW: sql-Befehl: INSERT INTO .... funktioniert nicht

Es kommt auch keine Fehlermeldung, es kommt nur das fieldset "Fehler".
Wenn du selbst unzureichend definierst wie Fehler behandelt werden sollen brauchst du dich nicht über fehlende Fehlermeldungen wundern.

http://www.php.net/manual/en/mysqli.error.php

PS: Wie kann man Eingaben entschärfen,
http://de.wikipedia.org/wiki/SQL_Injection#PHP

z.B. soll der Benutzer einen Link posten können

http://de.wikipedia.org/wiki/BBCode


Duddle
 

d3mueller

PC-Freak :D

AW: sql-Befehl: INSERT INTO .... funktioniert nicht

Fehlermeldung:
Ja, bloß wie baue ich das da ein? mysqli_error; zu schreiben bringt iwie nichts. Da kommt nie eine Fehlermeldung.

SQL_Injection:
Das werde ich mal probieren.

bbcode:
Gute Idee. Danke :) Aber wie funktioniert das mit dem Parser-skript. Bei Google finde ich grad nichts brauchbares.
 

Monk2006

Nicht mehr ganz neu hier

AW: sql-Befehl: INSERT INTO .... funktioniert nicht

Lass Dir mal bei der Fehlerausgabe die SQL Anweisung mit ausgeben, und probiere die in phpmyadmin o.ä. direkt aus ... vielleicht gibt es da konkrete Fehlermeldung, was nicht stimmt.
(Evtl. eine Variable doch nicht belegt ?)

LG Moni
 

d3mueller

PC-Freak :D

AW: sql-Befehl: INSERT INTO .... funktioniert nicht

Das hier ist der sql-Befehl
Code:
INSERT INTO  `Kommentare` (  `art_nr` ,  `name` ,  `mail` ,  `kommentar` ,  `freischaltung` ) 
VALUES (

`12` ,  `test` ,  `test@test.de` ,  `kommentar` ,  `1`
)

Die 12 ist die $id, die in der URL angegeben wurde.

Fehlermeldung in phpmyadmin:

#1054 - Unknown column '12' in 'field list'


Das verstehe ich aber nicht.
 

Duddle

Posting-Frequenz: 14µHz

AW: sql-Befehl: INSERT INTO .... funktioniert nicht

http://www.schattenbaum.net/php/insert2.php:
Mit "VALUES" wird angegeben, was für Werte verwendet werden sollen. Da bei uns alles in Variablen gespeichert wird, werden diese Variablennamen in Hochkomma angeführt.

Aber wie funktioniert das mit dem Parser-skript. Bei Google finde ich grad nichts brauchbares
Blödsinn. Neben Formularen sind BBCodes so ziemlich die weitverbreitetsten PHP-Scripte (fertig oder in Tutorials beschrieben) die es gibt.


Duddle
 

m_c

Nicht mehr ganz neu hier

AW: sql-Befehl: INSERT INTO .... funktioniert nicht

Strings (alphanumerische Zeichen) werden in Hochkommas ' geschrieben. Ziffern und Zahlen erfolgen ohne einen "Begrenzer".
also 'test' und 0 nicht '0'

Werte als die Werte anlegen, wie sie in Wirklichkeit sind. Numerische Werte sind keine Strings.

Außerdem sollte man vermeiden reservierte Namen wie name als Spaltennamen zu nutzen.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.613
Beiträge
1.538.346
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben