Insert INTO funktioniert nur manchmal.

  • PHP

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Manawyrm.

    Insert INTO funktioniert nur manchmal.

    Hi da bin ich schon wieder,

    ich habe ein Artikel-System, was wie folgt einen Artikel erstellt, bzw einträgt:

    Quellcode

    1. $h1 = $_POST['headl'];
    2. $text = nl2br($_POST['article']);
    3. $from = $_POST['author'];
    4. $date = date("F j, Y, g:ia");
    5. if(!$h1 || !$text || !$from || !$date)
    6. {
    7. echo "<div class="alert alert-danger"><strong>Fehler</strong>: Du musst alle Felder ausfüllen.</div>";
    8. }
    9. else
    10. {
    11. $query = mysql_query("INSERT INTO news VALUES ('','$h1','$text','$from','$date')") or die;
    12. echo "<div class="alert alert-success"><strong>Erfolgreich</strong>: Artikel erstellt.</div>";
    13. }



    Wenn ich jetzt überall ausser beim Namen test eingebe, funktioniert es.
    Wenn ich aber einen etwas längeren Text schreiben möchte, passiert gar nichts.
    Habe das "or die" entfernt, wenn ich den Text dann schreibe, gibt er "Artikel erstellt" aus, aber eingetragen hat er nichts.

    Kann jemand helfen?


    Grüße
    Meine Projekte:

    WizSearch: 100%
    Ansehen
    Achtung, dein Script ist anfällig für SQL Injections! Bitte behebe diese Lücke sofort, bevor du etwas anderes machst.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Du musst bei dem INSERT die Spalten mitgeben also

    SQL-Abfrage

    1. INSERT INTO news (Spalte,Spalte,Spalte) VLUES (wert,wert,wert)

    Lukas schrieb:

    Achtung, dein Script ist anfällig für SQL Injections! Bitte behebe diese Lücke sofort, bevor du etwas anderes machst.
    Das ist ja Super. Wenn ich wüsste wo, dann wäre es schon längst behoben. Also wo bitte? mysql_real_escape_string vergessen?
    Niemand außer ich und ein Freund haben Zugriff auf diese Seite. Und die Seite ist auch noch mit einem Login geschützt, wo natürlich alles escaped wurde.
    Bin ein Anfänger in PHP, also ich weiß noch nicht soviel.


    @Patrick, hab ich probiert - funktioniert nicht.
    Meine Projekte:

    WizSearch: 100%
    Ansehen
    Ich verweise eigentlich nur ungerne einfach auf Google, aber du scheinst dir da ja keine Mühe gegeben zu haben.

    php fix sql injection => stackoverflow.com/questions/13…l-injection-fixing-in-php

    Nebenbei sind die mysql_*-Funktionen nicht mehr zu verwenden, da sie als deprecated markiert wurden und nicht mehr gewartet werden.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Lasse mal $_POST['headl'] '); DROP DATABASE news; (oder ähnlich) sein und überlege, was passiert.