MySQL Daten werden nicht eingetraken / ausgegeben

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Hallo,
    ich versuche mich grade an MySQL.
    Ich möchte es endlich hin bekommen es hin zu bekommen. :D
    Also ich habe hier drei Dateien.
    eintraken.html

    HTML
    <body><form action="speichern.php" method="post"> <br />Name:<input type="text" name="name" style="width:200px;"><br />Betreff<input type="text" name="betrefft" style="width:200px;"> <br />Text<textarea name="text"></textarea><br /><input type="submit" value="Absenden"></body>


    So die geht glaube ich zumindest.
    So dann habe ich hier die speichern.php

    PHP
    <?php$name = $_POST['name'];$betreff = $_POST['betreff'];$text = $_POST['text'];$dbname="name";$dbhost="localhost";$dbuser="name";$dbpass="pass";mysql_connect($dbhost,$dbuser,$dbpass);mysql_select_db($dbname);mysql_query("CREATE TABLE MySQL (id int(255) NOT NULL auto_increment,name varchar(100) NOT NULL,betreff varchar(100) NOT NULL,text varchar (150) NOT NULL,PRIMARY KEY (id) );");mysql_close();echo "Die Tabelle wurde angelegt";$dbname="name";$dbhost="localhost";$dbuser="name";$dbpass="pass";mysql_connect($dbhost,$dbuser,$dbpass);mysql_select_db($dbname);$eintrag = "INSERT INTO MySQL (name, betreff, text) VALUES ('$name', '$betreff', '$text')";$eintragen = mysql_query($eintrag);?>


    So die Tappele wird angelekt aber ob Text drin ist weiß ich nicht glaube ich nicht.
    Da ich bei phpmyadmin dort nicks sehe.
    Also dann habe ich hier noch die indes.php.


    Da wird halt nicks ausgegeben. Hoffe auf hilfe und bitte nivht wieder anmekern.
    Ich kann das halt noch nicht aber wills lernen und man muss halt fragen.

  • Erstmal: Du legst bei jedem Absenden des Formulars die Tabelle neu an. Das wird auf jedenfall spätestens beim </div_prefs>zweiten mal zu nem Fehler führen.
    Dann is im HTML-Formular ein Rechtschreibfehler.
    Wenn du das mit der Tabelle erstmal behobe hast, nochmal ausprobieren. Außerdem: escapen nicht vergessen. Hier is ein MySQL-Injection und ein daraus resutierender XSS-Angriff total einfach.

  • Also dann wollen wir mal^^
    Erstens finde ich es unsinnig eine Tabelle MySQL zu nennen (wo bleibt da der Sinn)?
    Zweitens: Wie Leon schon gesagt bringt es Fehler die Tabelle jedes mal neu zu erstellen.
    Drittens brauchst du nur einmal eine Verbindung zur Datenbank herstellen, und diese dann erst am Ende des Skriptes schließen. Das führt zwar zu keinen Fehlern ist aber unnötig.
    Wenn nichts angzeigt wird, kannst du Fehler mit

    PHP
    echo mysql_error();

    ausgeben.


    Bei deiner index Datei kapier ich folgendes schon mal nicht: woher bekommst du den Namen?
    Desweiteren ist dein sql-syntax falsch. (kann man das wirklich klein schreiben? ich schreib das immer groß, muss doch, oder?)
    Wenn du nur das ausgeben willst, wo der name gleich ist, muss das so ausehen

    SQL
    SELECT * FROM table WHERE name = '$name'


    Desweiteren kann nichts ausgegen werden, da keine Variable $daten deklariert worden ist.


    E: Mit escapen entfernt man bösartige Dinger aus einem String, einfach ausgedrückt.

    PHP
    $string_new = mysql_real_escape_string($string_old);
  • zu 1.ich habe die Tabelle so genant weil es nur ein Test ist weil ich es lernen will.
    zu 2. Erledigt.
    zu 3. okay hab ich gemacht.
    zu 4. Wie Namen?
    zu 5. kapier ich nicht.
    zu 6. muss das dann so aussehen?


    zu 7. wie nicht ausgebgeben kann.
    zu 8. muss ich das einfacdh irgendwo einfügen?

  • so??

  • Also.
    Ich habe nun volgene Code.
    index.php

    PHP
    <?php$dbname="unseretest";$dbhost="localhost";$dbuser="unseretest";$dbpass="Render02";mysql_connect($dbhost,$dbuser,$dbpass);mysql_select_db($dbname);$abfrage = "SELECT * FROM MySQL";$ausgabe = mysql_query($abfrage);while ($daten = mysql_fetch_assoc($ausgabe))echo"<b>Name: </b>".$daten["name"]."<br />";echo"<b>Betreff: </b>".$daten["betreff"]."<br />";echo"<b>Text: </b>".$daten["text"]. "<br />";?>


    speichern.php

    PHP
    <?php$name = $_POST['name'];$betreff = $_POST['betreff'];$text = $_POST['text'];$dbname="unseretest";$dbhost="localhost";$dbuser="unseretest";$dbpass="Render02";mysql_connect($dbhost,$dbuser,$dbpass);mysql_select_db($dbname);$eintrag = "INSERT INTO MySQL (name, betreff, text) VALUES ('$name', '$betreff', '$text')";$eintragen = mysql_query($eintrag);mysql_close();echo "Ihre Daten wurden erfolgreich eingetraken sie k&ouml;nnen sie jetzt angucken. <a href='index.php'>klickt...</a>";?>

    und eintraken.html

    HTML
    <body>
    <form action="speichern.php" method="post"> <br />
    Name:<input type="text" name="name" style="width:200px;"><br />
    Betreff<input type="text" name="betreff" style="width:200px;"> <br />
    Text<textarea name="text"></textarea><br />
    <input type="submit" value="Absenden">
    </body>


    Da geht eigendlich auch alles. Alles wurde in der Tabelle eingetraken.
    Nur es wird nicht ausgegeben.

  • Für was schreib ich hier eigentlich Beiträge?


    PHP
    while ($daten = mysql_fetch_assoc($ausgabe))
    {
    echo"<b>Name: </b>".$daten["name"]."<br />";
    echo"<b>Betreff: </b>".$daten["betreff"]."<br />";
    echo"<b>Text: </b>".$daten["text"]. "<br />";
    
    
    
    
    }


    Ach und es heißt eintragen mit g