Via Formular in MYSQL DB speichern.. funkt nicht :(

  • hab ein Script geschrieben mit PHP damit ich für meine XBOX Seite spiele-reviews in MYSQL DB speichern kann usw..

    jedoch wenn ich nun das komplette review speichern will tut sich nichts.. jedoch weiß ich nicht warum.. wenn ich beim Formular auf "Abschicken" drücke dann tut sich nichts... aber warum bloß?

    Gibts ne Beschränkung der Länger des Textes bei einem Formular? gibts ne beschränkung bei Texten in einer MYSQL DB?

    hier das Formular:


    und nun wie er es in die DB speichert...


    wär cool wenn mir wer helfen könnte.. liegt das Fehler nun im Script oder in der MYSQL DB? die Daten werden in der MYSQL DB als Longtext gespeichert...

  • hi!


    du solltest in der value klausel die apostrophe ( ' - einfaches Anführungszeichen ) bei den variablen weglassen.
    außer das datenfeld verlangt unbedingt nach einem einfachen anführungszeichen, dann würd ich die variante vorschlagen, strings mittels "concatation" zusammen zu basteln:

    PHP
    "start of any text '" . $var . "' and continue here ..."




    lg

  • die eingelesenen variablen ($titel etc) sind erst dann verfügbar, wenn du register_globals auf on setzt (siehe link).

    alternativ kannst du auf die variablen auch so zugreifen:
    $HTTP_GET_VARS['titel'] bzw
    $HTTP_POST_VARS['titel'] wenn du method=post setzt

    method=post würd ich dir übrigens schwer empfehlen, da deine beschreibungen bald zu lang für =get werden (get-anfragen werden über die addresse übergeben, z.b. schreib.php?titel=cooles+spiel&beschreibung=bla+bla+bla)

    die einfachen anführungszeichen kannst lassen, die müssen bei string/varchar werten sowieso da sein...

  • 1) brauchst Du das Formular nicht mit PHP aufzubauen, weil da sowieso keine Variablen drinnen vorkommen. Da brauchst Du Dir keine Mühe mit \"bla\" usw. machen. Auch wenn Du mal variablen einbauen solltest, kannst Du in einem PHP Skript kannst Du folgendes machen:

    <?php
    ... php Teil 1 ...
    ?>
    HTML teil
    <?php
    ... php Teil 2 ...
    ?>

    2) was gegen die einfachen Anführungszeichen sprechen soll, wenn Du einen String in die DB einfügen willst, verstehe ich nicht ganz. Du kannst sehr wohl einfach "start of any text '$var' and continue here ..." schreiben.

    3) longtext? Was willst Du da bitte speichern? ;) Schau mal hier. Ein longtext sind 4GB (!) an Zeichen!

    4) bei Schreibbefehlen an die Datenbank sollte man immer POST benutzen.

    5) langer Rede kurzer Sinn: Ich weiß jetzt auf den ersten Blick nicht, wo der Fehler liegen könnte. :D

    *** Make it idiot proof, and someone will build a better idiot. ***

  • seas konrad!

    weis zwar auch nicht genau, wo dein fehler liegt, aber probiers mal so:

    config.inc:

    <?php
    $dbHost = "";
    $dbUser = "";
    $dbPass = "";
    $dbName = "";

    $connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die(mysql_error());
    $selectDB = @mysql_select_db($dbName) or die(mysql_error());
    ?>

    php file:


    <?
    include("connect.inc");
    $sql = "INSERT INTO games (titel,genre, publisher, entwickler )VALUES ('$titel','$gerne','$publisher','$entwickler') ";
    $ergebnis=@mysql_query($sql, $connect) or die("Konnte keine Daten in die Datenbank schreiben!<br>");
    mysql_close($connect);
    ?>

    funkt bei mir immer!


    tipp:

    if ($db_verbindung)
    {
    echo "Daten erfolgreich eingetragen";
    }
    else
    {
    echo "nein";
    }

    solltest du nicht verwenden um zu überprüfen, ob die daten eingetragen wurden, da du ja nur überprüfst, ob du eine verbindung zu datenbank aufgebaut hast!


    hoffe ich konnte dir weiterhelfen!

    mfg,

    nixor!

  • Zitat von winf.wol

    method=post würd ich dir übrigens schwer empfehlen, da deine beschreibungen bald zu lang für =get werden (get-anfragen werden über die addresse übergeben, z.b. schreib.php?titel=cooles+spiel&beschreibung=bla+bla+bla)

    das war der Fehler.. vielen dank :D:thumb:

  • ad 1) hmm sstimmt.. ist wirklich eine reines HTML Forumlar.. da hast recht :)

    ad 3) ja ich dachte zuerst daß es an der DB liegt weil er lange Texte nicht speichern konnte... deswegen hab ich von Text auf Longtext umgestellt.. :)

    ad 4) das war auch der fehler.. werd ich auch in zukunft nur noch mit POST machen... danke für den Tipp...

  • Du mußt auf jeden Fall noch die Variablen vorm Einfügen in die DB durch addslashes() rennen lassen. Ansonsten kannst du keinen Text, der Apostrophe enthält, einfügen. Mag jetzt nicht lang drüber reden, auf jeden Fall mach folgendes:

    PHP
    mysql_query("INSERT INTO table (feld1, feld2) VALUES ('" . addslashes($variable1) . "', '" . addslashes($variable2) ."'";

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!