B Beck Medlem sedan apr. 2002 8 inlägg Trådstart 3 okt. 2002 14:41 #1 Har någon ett bra svar varför koden nedan inte fungerar på IIS.
När jag försöker lägga till data från mitt formulär så får jag ett felmeddelande typ: Ett fel har uppstått i programmet Inetinfo.exe och kommer att avslutas. Kollar jag sedan i databasen så har den lagt till 27 poster av det jag skrev i formuläret.
Jag provade sedan koden hos en polare som har Apache och där funkade det perfekt. Vi båda har Php version 4.2.3
Vad kan det var för fel?
<?php
$conn = mysql_connect("localhost", "", "") or die(mysql_error());
mysql_select_db("zunda", $conn) or die(mysql_error());
if (isset($_POST['submit'])){
$sql = "INSERT INTO players (number, f_name, l_name, born, position) VALUES(
'{$_POST['nr']}',
'{$_POST['f_namn']}',
'{$_POST['e_namn']}',
'{$_POST['fodd']}',
'{$_POST['f_position']}'
)";
mysql_query($sql);
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
if (isset($_POST['andra'])){
$sql = "UPDATE players SET
number='{$_POST['nr']}',
f_name='{$_POST['f_namn']}',
l_name='{$_POST['e_namn']}',
born='{$_POST['fodd']}',
position='{$_POST['f_position']}'
WHERE player_id='{$_POST['id']}'";
mysql_query($sql);
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
if (isset($_GET['delete'])){
$sql = "DELETE FROM players WHERE player_id='{$_GET['delete']}'";
mysql_query($sql);
header("Location: ".$_SERVER['PHP_SELF']);
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<title>Admin Spelarlista</title>
</head>
<body>
<h1>Administration av spelarlista</h1>
<table cellpadding="3">
<tr>
<th>Namn</th>
<th>Nummer</th>
<th>Födelsedatum</th>
<th>Position</th>
</tr>
<?php
$sql = "SELECT * FROM players ORDER BY number";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)){
echo "<tr>\n";
echo "<td>".$row['f_name']." ".$row['l_name']."</td>\n";
echo "<td>".$row['number']."</td>\n";
echo "<td>".$row['born']."</td>\n";
echo "<td>".$row['position']."</td>\n";
echo "<td><a href=\"{$_SERVER['PHP_SELF']}?change={$row['player_id']}\">Ändra</a></td>\n";
echo "<td><a href=\"{$_SERVER['PHP_SELF']}?delete={$row['player_id']}\"
onclick=\"return confirm('Radera {$row['f_name']} {$row['l_name']} ?')\">Radera</a></td>\n";
echo "</tr>\n";
}
?>
</table>
<?php
if (isset($_GET['change'])){
$sql = "SELECT * FROM players WHERE player_id='{$_GET['change']}'";
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0){
$row = mysql_fetch_array($result);
foreach($row as $key => $val){
$value[$key] = $val;
}
}
echo "<h2>Ändra uppgift</h2>\n";
} else {
$value = array("number"=>"", "f_name"=>"", "l_name"=>"",
"born"=>"", "position"=>"");
echo "<h2>Ny uppgift</h2>\n";
}
?>
<form action="<?=$_SERVER['PHP_SELF'] ?>" method="post">
<?php
if (isset($value['player_id'])){
echo "<input type=\"hidden\" name=\"id\" value=\"{$value['player_id']}\">\n";
}
?>
<table>
<tr>
<td>Nummer:</td>
<td><input type="text" name="nr" value="<?=$value['number'] ?>"></td>
</tr><tr>
<td>Förnamn:</td>
<td><input type="text" name="f_namn" value="<?=$value['f_name'] ?>"></td>
</tr><tr>
<td>Efternamn:</td>
<td><input type="text" name="e_namn" value="<?=$value['l_name'] ?>"></td>
</tr><tr>
<td>Födelsedatum:</td>
<td><input type="text" name="fodd" value="<?=$value['born'] ?>"></td>
</tr><tr>
<td>Position:</td>
<td><input type="text" name="f_position" value="<?=$value['position'] ?>"></td>
</tr><tr>
<td colspan="2" align="center">
<input type="submit" name="<?php
if (isset($_GET['change'])) echo "andra"; else echo "submit";
?>" value="Spara">
</td>
</tr></table>
</form>
</body>
</html>
Det är ju det att PHP är mest användbart under ex. Apache...
Vi kan gott säga att Opensource rular!!
Hade själv problem med PHP under IIS, så jag byte till Apache funkade mycket bättre.. inga problem alls!!!
Kan inte riktigt säga vad problemet är men kolla gärna i
Event log!!!
Där brukar det mesta stå!!