Announcement

Collapse
No announcement yet.

INSERT klappt nicht / utf8 nicht übernommen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • INSERT klappt nicht / utf8 nicht übernommen

    Hallo zusammen,

    ich weiss leider nicht wo ich hier den Fehler gemacht habe.

    Code:
    <?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>&Auml;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&ouml;schen\" />
    				</td>
    			  </tr>
    			</table>
    			</form>";
    			
    }  ?>
    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:

    Code:
    mysql_query("SET NAMES 'utf8'", $db);
        mysql_query("SET CHARACTER SET 'utf8'", $db);
    Bin etwas Ratlos und würde mich über Hilfe freuen.

    //Craven-City
    Zuletzt editiert von craven-city; 06.11.2008, 14:59.

  • #2
    Ich tippe auf das register_globals Problem und verweise dich, mal in die PHP-Doku unter $_POST und $_GET nach zu sehen.
    "A common mistake that people make
    when trying to design something completely foolproof
    is to underestimate the ingenuity of complete fools.
    "
    >>> Douglas Adams, Mostly Harmless
    -------------------------------------------------------
    Techcrawler.de | JaMT | deCHK | Extra-Bonus-Shopping.de | Scour

    Comment

    Working...
    X