Daten in die Datenbank schreiben
Sergey Tiessen
- php
Hallo,
ich habe folgendes Problem. Ich habe eine Online-Umfrage erstellt, die funktioniert auf meinem Rechner einwandfrei. Die Daten werden in MySQL-Datenbank geschrieben und dann ohne Probleme ausgewertet. Dasselbe funktioniert aber auf dem WindowsNT 4.0- Server nicht. Es wird zwar ein neuer Eintrag in die Datenbank geschrieben, aber ohne entsprechenden Werte. So sieht meine Code aus:
<?
include("include.php");
$handle = connect2db();
if($handle)
{
$result = @mysql_query("SELECT * FROM nachbefragung");
if($result){
$numrows = mysql_num_rows ($result);
$id = $numrows + 1;
}
else {
$id = 1;
}
$result = @mysql_query("INSERT INTO nachbefragung VALUES ('$PN'...'$Fr4_7') ");
if ($result) {
header("Location: ende.php");
}
else
{
echo "Die Verbindung fehlgeschlagen!" ;
}
}
?>
die Werte sollen aus HTML-Code eingelesen werden:
... class="textNormal">PersonalNr</td>
<td height="25" bgcolor="FFEACC" class="textNormal" width="374"><input name="PN" type="text" id="PN">...
... <input name=Fr1_1a type=radio value=1>
1 <img src="images/shim.gif" width="10" height="5">
<input name=Fr1_1a type=radio value=2>
2 <img src="images/shim.gif" width="10" height="5">
<input name=Fr1_1a type=radio value=3>
3 <img src="images/shim.gif" width="10" height="5">
<input name=Fr1_1a type=radio value=4>
4
</td>.........
Hat jemand eine Idee, woran es liegen konnte?
Danke und Gruß
Sergey
Hi,
$result = @mysql_query("INSERT INTO nachbefragung VALUES ('$PN'...'$Fr4_7') ");
ich sehe nirgendwo, dass Du die Variablen $PN oder $Fr4_7 deklariert hast, geschweige denn initialisiert. Oder anders gesagt: Wenn das _irgendwo_ funktioniert, herrscht dort ein Sicherheitsproblem.
Siehe Archiv.
Cheatah
Die Variablen sind in dem Formular:
<form name="form1" action="checkIndex.php" method="post"> <input type="hidden" name="id" value="<? echo $id...
und die sollen von checkIndex.php abgelesen werden. Auf dem localhost funktioniert das auch
Moin!
Die Variablen sind in dem Formular:
<form name="form1" action="checkIndex.php" method="post"> <input type="hidden" name="id" value="<? echo $id...
und die sollen von checkIndex.php abgelesen werden. Auf dem localhost funktioniert das auch
Es sollte aber besser nicht funktionieren.
Die POST-Daten stehen im Array $_POST. Bei PHP-Versionen vor 4.1 in $HTTP_POST_VARS. Und wenn du bei deinem lokalen Server in der PHP.INI mal register_globals auf OFF schaltest, wirst du wahrscheinlich das Verhalten des Live-Servers erreichen - und solltest dich dann daran orientieren.
Es ist außerdem empfehlenswert, die PHP-Versionen auf beiden Servern anzugleichen.
- Sven Rautenberg