Warum funktioniert dieses billige 3 zeilen code nicht?

curzon777

Grünschnabel
$con = mysql_connect("xxx.com.mysql","xxx","PWD");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("log", $con);

$sql="INSERT INTO nametable (who, what)
VALUES
($_GET["who"],$_GET["what"])";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con)




Bekomme nur das:
Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/8/8/e/xxx.com/httpd.www/test.php on line 28
 
Hi curzon777 und herzlich Willkommen hier im Forum.

Bitte schreibe die Codeteile das nächste mal innerhalb von [code=php]...[/code], so dass es einfacher zu lesen ist. Ausserdem wäre noch hilfreich, welche Zeile genau die Zeile 28 aus der Fehlermeldung ist.

Zu deinem Problem:
PHP:
$sql="INSERT INTO nametable (who, what)
VALUES
($_GET["who"],$_GET["what"])";

1. Du verwendest die GET Variablen ohne Prüfung -> SQL-Injection
2. Du verwendest innerhalb deines Strings Anführungszeichen -> Syntax Error

Schreibs so, dann gehts:
PHP:
$who = mysql_real_escape_string($_GET['who']);
$what = mysql_real_escape_string($_GET['what']);

$sql = "INSERT INTO nametable (who, what)
VALUES
('" . $who . "', '" . $what . "')";

Grüße,
BK
 

Neue Beiträge

Zurück