Hallo zusammen,
ich weiss leider nicht wo ich hier den Fehler gemacht habe.
PHP
<?php
echo "mode: $mode<br /><br />\n";
if ($mode == 'search')
{
echo "<p><h1>Questsuche</h1></p>
<p> Bitte gebe hier die Überschrift zu der Quest ein </p>
<form method=\"post\" action=\"\">
<b>Quest Name:</b> <input type=\"text\" name=\"titel\" value=\"\" /> <input type=\"submit\" name=\"search\" value=\"Suchen\" />
</form>";
}
elseif ($mode == 'insert')
{
$qid = mysql_real_escape_string($_POST['qid'], $db);
$name = mysql_real_escape_string($_POST['name'], $db);
$titel = mysql_real_escape_string($_POST['titel'], $db);
$eintrag = mysql_real_escape_string($_POST['eintrag'], $db);
$SQL = "INSERT INTO Gaestebuch (Datum, qid, Name, Titel, Eintrag) VALUES ('NOW()', '$qid', '$name', '$titel', '$eintrag')";
mysql_query($SQL, $db) or die($abfrage."<br />".mysql_errno($db).": ".mysql_error($db));
if ($mysql_affected_db == 1) {
echo "Eintrag wurde erfolgreich vorgenommen! <a href=\"?qid=$qid\">zum Eintrag</a>";
}
else {
echo "FEHLER!";
}
}
elseif ($mode == 'posted_search')
{
mysql_query("SET NAMES 'utf8'", $db);
mysql_query("SET CHARACTER SET 'utf8'", $db);
$abfrage = "SELECT qid, titel FROM `Quests` WHERE `titel` LIKE '%".mysql_real_escape_string($_POST['titel'])."%'";
$result = mysql_query($abfrage, $db) or die($abfrage."<br />".mysql_errno($db).": ".mysql_error($db));
echo "<p><h1>Ähnliche Quests</h1></p>";
while ($row = mysql_fetch_array($result))
{
echo "<a href=\"?qid=".$row['qid']."\">".$row['titel']."</a><br />\n";
}
}
elseif ($mode == 'quest')
{
// get quest data
$abfrage = "SELECT qid AS questID,
titel,
beschreibung,
npc_abgeben,
npcid_nehmen,
gold
FROM Quests
WHERE qid = '".intval($_GET['qid'])."'";
$result = mysql_query($abfrage, $db) or die(mysql_error());
$row = mysql_fetch_array($result);
// begin show quest
echo "<table width=\"100%\">
<tr><td><b>QuestID:</b></td><td>".$row['questID']."</td></tr>
<tr><td><b>Quest:</b></td><td>".$row['titel']."</td></tr>
<tr><td><b>Beschreibung:</b></td><td>".$row['beschreibung']."</td></tr>
<tr><td><b>Questgeber:</b></td><td>".$row['npcid_nehmen']."</td></tr>
<tr><td><b>Belohnung:</b></td><td>".$row['gold']."Gold</td></tr>
<tr><td><b>Quest Abgeben:</b></td><td>".$row['npc_abgeben']."</td></tr>
</table><br />";
// end show quest
// get guestbook data
$abfrage = 'SELECT * FROM Gaestebuch WHERE qid = '.$row['questID'];
$result = mysql_query($abfrage, $db) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
// show post
if ($row['Titel'] != NULL)
{
echo '<table width="100%">';
echo '<tr><td><b>' . $row['Titel'] . '</b></td></tr>';
echo '<tr><td>' . $row['Eintrag'] . '</td></tr>';
echo '<tr><td>Eintrag von <b>' . $row['Name'] . '</b> am <b>' . $row['Datum'] . '</td></tr>';
echo '<tr><td><hr></td></tr>';
echo '</table>';
}
}
// end guestbook data
echo "<form method=\"post\" action=\"\">
<input type=\"hidden\" name=\"qid\" value=\"".intval($_GET['qid'])."\" />
<table border=\"0\">
<tr>
<td><b>Name:</b></td>
<td><input type=\"text\" name=\"name\" maxlength=\"50\" value=\"".addslashes($_POST['name'])."\" /></td>
</tr>
<tr>
<td><b>Titel des Eintrages:</b></td>
<td><input type=\"text\" name=\"titel\" maxlength=\"40\" value=\"".addslashes($_POST['titel'])."\" /></td>
</tr>
<tr>
<td><b>Eintrag:</b></td>
<td><textarea cols=\"30\" name=\"eintrag\" rows=\"5\">".htmlspecialchars($_POST['eintrag'])."</textarea></td>
</tr>
<tr>
<td align=\"center\" colspan=\"2\">
<input type=\"submit\" name=\"insert\" value=\"Eintragen\" />
<input type=\"reset\" value=\"Löschen\" />
</td>
</tr>
</table>
</form>";
} ?>
Alles anzeigen
Jedesmal wenn ich die Abfrage abschicke läd er die Seite neu, macht aber keinen Eintrag.
Des Weiteren verstehe ich nicht, warum meine Suche nicht in utf8 ausgegeben wird, denn die DB steht auf utf8 und ganz oben include ich den header, welcher ebenfalls utf8 ist. Auch ist die Seite in utf8 gespeichert und beim Selcet habe ich:
Bin etwas Ratlos und würde mich über Hilfe freuen.
//Craven-City