• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

INSERT INTO Code sorgt für Fehlermeldung

xXxPeterPanxXx

Neues Mitglied
Hi,
ich hab mal wieder ein Problem:(. Diesmal erhalte ich folgende Fehlermeldung:Parse error: syntax error, unexpected T_STRING in /is/htdocs/wp1158326_JHB43K6EP5/www/coder/admin/eintraege.php on line 34

Das ist der entscheidene PHP Code der für die Fehlermeldung sorgt:

PHP:
<?php
INSERT INTO eintraege(name, nameurl, kategorie, tutorial, time) VALUES("$_POST['name']", "$_POST['nameurl']", "$_POST['kategorie']", "$_POST['tutorial']", timestamp());
?>

Könnt ihr mir helfen?

Danke im Vorraus!!!

MfG xXxPeterPanxXx
 
Also so wie du das gepostet hast, kann es nicht gehen. INSERT ist kein gültiger PHP-Befehl.

Richtig währe es zb. den SQL-Befehl in eine Variable zu setzen, Beispiel:
PHP:
<?PHP
$sqlbefehl = "INSERT INTO `eintraege` 
  (`name`, `nameurl`, `kategorie`, `tutorial`, `time`) 
  VALUES
  (".$_POST['name'].", ".$_POST['nameurl'].", ".$_POST['kategorie'].", ".$_POST['tutorial'].", date())";
?>
Mfg
 
Mhh Danke!!!

Ich habs nun abgeändert und etwas escaped, aber ich erhalte nun folgende Fehlermeldung:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /is/htdocs/wp1158326_JHB43K6EP5/www/coder/admin/eintraege.php on line 34

PHP:
$sql = "INSERT INTO eintraege(name, nameurl, kategorie, tutorial, time) VALUES(\"$_POST['name']\", \"$_POST['nameurl']\", \"$_POST['kategorie']\", \"$_POST['tutorial']\", timestamp())";

MfG xXxPeterPanxXx
 
Nun, statt Quotes würde ich Hochkommas verwenden. zb:

Code:
VALUES('".$_POST['name']."', '".$_POST['nameurl']."', '".$_POST['kategorie']."', '".$_POST['tutorial']."', timestamp())
bzw auf deiner Art:
Code:
VALUES('$_POST['name']', '$_POST['nameurl']', '$_POST['kategorie']', '$_POST['tutorial']', timestamp())
Würde beides gehen.

Mfg
 
So nun habe ich diesen Code
PHP:
$sql = "INSERT INTO eintraege(name, nameurl, kategorie, tutorial, time) VALUES('$_POST['name']', '$_POST['nameurl']', '$_POST['kategorie']', '$_POST['tutorial']', timestamp())";
und erhalte immernoch diese Fehlermeldung:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /is/htdocs/wp1158326_JHB43K6EP5/www/coder/admin/eintraege.php on line 34
 
nun nocheinmal:
PHP:
$sql = "INSERT INTO eintraege(name, nameurl, kategorie, tutorial, time) VALUES(''.$_POST['name'].'', ''.$_POST['nameurl'].'', ''.$_POST['kategorie'].'', ''.$_POST['tutorial'].'', timestamp())";
Nu müsste es eig gehen :D
 
nun nocheinmal:
PHP:
$sql = "INSERT INTO eintraege(name, nameurl, kategorie, tutorial, time) VALUES(''.$_POST['name'].'', ''.$_POST['nameurl'].'', ''.$_POST['kategorie'].'', ''.$_POST['tutorial'].'', timestamp())";
Nu müsste es eig gehen :D
Eigentlich schon, aber ich erhalte immernoch genau die gleiche Fehlermeldung.
 
@rexini, deine Punkte und doppelte Hochkommas im Statement machen keinen Sinn, da du ja auch mit einem Quote gestartet hast. ( inphp = "outcode".phpcode."outcode"; etc ... )
So geht es:
PHP:
$sql = "INSERT INTO `eintraege` (`name`, `nameurl`, `kategorie`, `tutorial`, `time`) VALUES('".$_POST['name']."', '".$_POST['nameurl']."', '".$_POST['kategorie']."', '".$_POST['tutorial']."', date())";
Grad getestet.

Mfg
 
Man sollte niemals POST / GET-Werte direkt in die Datenbank schreiben.
Diese sollten vorher immer mit mysql_real_escape_string($string, $dblink) abgesichert werden. Ansonsten kommt der böse Hacker und zerschießt dir die gesamte Datenbank.

Sicherer wäre:

Code:
<?php
$name = mysql_real_escape_string($_POST['name'], $dblink);
$nameurl = mysql_real_escape_string($_POST['nameurl'], $dblink);
$kategorie = mysql_real_escape_string($_POST['kategorie'], $dblink);
$tutorial = mysql_real_escape_string($_POST['tutorial'], $dblink);
$time = timestamp();

$query = "INSERT INTO eintraege(`name`, `nameurl`, `kategorie`, `tutorial`, `time`) VALUES('".$name."', '".$nameurl."', '".$kategorie."', '".$tutorial."', '".$time."')";
?>
Ersetze dabei $dblink gegen die Variable, die deine DB-Verbindung beinhaltet.
 
Zuletzt bearbeitet:
Man sollte niemals POST / GET-Werte direkt in die Datenbank schreiben.
Diese sollten vorher immer mit mysql_real_escape_string($string, $dblink) abgesichert werden. Ansonsten kommt der böse Hacker und zerschießt dir die gesamte Datenbank.
Auch wenn der ganze Code im abgesicherten Admin Bereich steht?

Ich kriege den timestamp nicht hin. Hier ist der momentane Code:
PHP:
mysql_query("INSERT INTO `eintraege` (`name`, `nameurl`, `kategorie`, `tutorial`, `time`) VALUES('".$_POST['name']."', '".$_POST['nameurl']."', '".$_POST['kategorie']."', '".$_POST['tutorial']."', '".`time()`."')");

Könnt ihr mir dabei noch helfen?


MfG xXxPeterPanxXx
 
Versteh ich nicht ganz. Ich wolllte es so machen, aber das funktioniert nicht.
PHP:
mysql_real_escape_string($_POST['name'], $_POST['nameurl'], $_POST['kategorie'], $_POST['tutorial'])
mysql_query("INSERT INTO `eintraege` (`name`, `nameurl`, `kategorie`, `tutorial`, `time`) VALUES('".$_POST['name']."', '".$_POST['nameurl']."', '".$_POST['kategorie']."', '".$_POST['tutorial']."', '".`time()`."')");
 
So schwer kann doch Copy&Paste gar nicht sein ?!
Ich hab Dir funktionierenden Code hingeschrieben, das musst Du nur kopieren und bei Dir ohne Änderung einfügen!
 
Uppps:???:

Ich include die Datenbankdaten jedesmal, darum habe ich das hier versucht:

PHP:
$dblink = include("../config.inc.php");
jedoch ohne erfolg.
 
PHP:
$dblink = include("../config.inc.php");

Dieser Ausdruck ist ja auch absoluter Unsinn. Auch die Quelltextausschnitte, die Du in Deinen vorherigen Posts mitgeschickt hast, lassen darauf schließen, dass Du noch ein absoluter PHP-Neuling bist (kein Problem - jeder fängt mal klein an).
Ich denke aber, bevor Du Dich soweit wagen solltest und mit Datenbanken arbeitest, solltest Du erst einmal ein gewisses Grundverständnis für PHP entwickeln. Arbeite mal paar Tutorials durch und lerne.
 
Zurück
Oben