Ergebnis 1 bis 2 von 2

Thema: INSERT klappt nicht / utf8 nicht übernommen

  1. #1
    Youngster
    Registriert seit
    24.02.2007
    Beiträge
    10
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard 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
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Bandit
    Gast

    Standard AW: INSERT klappt nicht / utf8 nicht übernommen

    macht aber keinen Eintrag
    Dann wird das Script vermutlich nicht an diese Stelle kommen. Das kann man aber ganz leicht herausfinden, in dem man sich mal alle relevanten Daten per echo ausgeben lässt.

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Ähnliche Themen

  1. anmeldung klappt nicht
    Von tim im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 07.09.2007, 21:34
  2. Änderungen in der Plonecostum.css werden nicht übernommen
    Von Silvermoon im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 6
    Letzter Beitrag: 23.04.2007, 11:28
  3. Stylesheet nicht übernommen?
    Von Alanon im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 09.01.2007, 15:07
  4. css wird nicht übernommen
    Von agentorange6 im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 02.02.2006, 23:13
  5. Hilfe - das klappt so nicht
    Von Minksi im Forum HTML & CSS Forum
    Antworten: 4
    Letzter Beitrag: 15.07.2005, 17:13

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •