[GastForen Programmierung/Entwicklung PHP und MySQL Fehlersuche

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Fehlersuche

darksmilie
Beiträge gesamt: 88

2. Feb 2005, 15:04
Beitrag # 1 von 3
Bewertung:
(692 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich möchte aus einem Formular daten an meine db hochschicken, aber er gibt mir immer ein Fehler aus, das was im sql-satz nicht stimmt.
Vielleicht findet einer von den fehler, den ich ausversehen eingebaut habe.

Quelltext:

<?php

include("connect.php");
mysql_select_db($db,$dbhandle) or die ("konnte nicht verbunden werden");
if($send ==1)
{
$sql = "INSERT INTO mannschaft(mannsname) VALUES(\"$_POST[mannsname]\");";
mysql_query ($sql,$dbhandle) or die ("konnte nicht verbunden werden");

$sql = "INSERT INTO verein(vername) VALUES(\"$_POST[vername]\");";
mysql_query ($sql,$dbhandle) or die (mysql_error);
mysql_query("UPDATE mannschaft SET ver_id='$verein.id' WHERE verein.vername ='$vername'") or die ("$sql");
}

?>

<html>
<head>
<title>Anmeldung</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

<?php

echo "<table width=\"78%\" border=\"1\">";

echo "<form action=\"$PHP_SELF\" method=\"POST\" name=\"mannschaftanmelden\">";

echo "<tr style=\"background: #FFFFFF; font-size: 12px;\">";

echo "<td>Mannschaftsname</td>";
echo "<td><input type=\"text\" name=\"mannsname\" size=\"15\"></td></tr>";
echo "<tr><td>Vereinszugehörigkeit</td>";
echo "<td><input type=\"text\" name=\"vername\" size=\"15\"></td>";

echo "<td>[ <a href=\"$php_self?open=schutzeanmelden&send=1\">Anmelden</a> ]</td>";

echo "</tr>";

echo "</form>";

echo "</table>";

?>

</body>
</html>

Fehlermeldung:

INSERT INTO verein(vername) VALUES("");

Die namen der Tabellen und der Tabellenspalten aus der DB passen.
X

Fehlersuche

Foggy
Beiträge gesamt: 48

2. Feb 2005, 21:46
Beitrag # 2 von 3
Beitrag ID: #141550
Bewertung:
(692 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
$sql = "INSERT INTO mannschaft(mannsname) VALUES('" . $_POST["mannsname"] . "');";

Du kannst nicht Super Globale Variablen einfach in einen von " Angeführten String setzen...
Entweder du definierst erst eine "normale" Variable mit dessen Inhalt
also so:
$mannsname = $_POST["mannsname"];
und dann
echo "Mannschaftsname: $mannsname";
Oder du verbindest den String mit der SuperGlobalen mit einem PUNKT so wie ich das in der ersten Zeile gemacht habe:

echo "Mannschaftsname: " . $_POST["mannsname"] . "sonstnochwas";


als Antwort auf: [#141396]

Fehlersuche

Pozor
Beiträge gesamt: 892

3. Feb 2005, 00:09
Beitrag # 3 von 3
Beitrag ID: #141586
Bewertung:
(692 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

verwende NIE die Daten direkt die vom User kommen -> sql injection!
immer mit mysql_escape_string($variable) sicherstellen, dass dies nicht
möglich ist.
Beim Ausgeben, die slahses einfach wieder entfernen mit stripslashes()
http://www.php.net/mysql_escape_string
http://www.php.net/stripslashes

Gruss Stefan

"KISS - KEEP IT SIMPLE, STUPID"
Ein paar Debuggingtricks:
http://www.boelsterli.biz/test/hds/debugging.php


als Antwort auf: [#141396]