1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

problem beim db schreiben

  • sentencedX
  • 7. Juli 2004 um 23:48
  • Unerledigt
  • sentencedX
    11
    sentencedX
    Mitglied
    Punkte
    1.290
    Beiträge
    221
    • 7. Juli 2004 um 23:48
    • #1

    hallo!

    hab mal wieder ein kleines problem. ich will eigentlich nur was in eine mysql-db schreiben - geht aber net
    die varibalen werden aus einer form befüllt - das worked. das sqlstatement stimmt auch. es wird nur nix in die db geschriebn *?*

    if (isset($add_title)) {

    $add_query= "INSERT INTO kontext (id2,name) VALUES ($topic_id,$add_title);";
    $error = mysql_error();
    if (!$result = mysql_query($add_query)) {
    print "$error";
    exit;
    }

    // bzw. das geht auch net
    $add_query = mysql_query($add_query) or die(mysql_error());
    if($add_query) echo "<br>passt!<br><br>\n";
    }

    [size=-2] Available for your projects at great expense and inconvenience [/size]

  • beefy
    13
    beefy
    Mitglied
    Reaktionen
    18
    Punkte
    1.683
    Beiträge
    304
    • 8. Juli 2004 um 01:21
    • #2
    Zitat von sentencedX

    die varibalen werden aus einer form befüllt - das worked.


    Hier wie so oft die Empfehlung, die vom Client empfangenen Variablen aus den "superglobal arrays" $_GET, $_POST, $_COOKIE, $_REQUEST, etc. auszulesen. Die "register globals"-Option von PHP (durch die automatisch globale Variablen mit den vom User angegebenen Namen erzeugt werden) ist ein Sicherheitsrisiko und sollte nicht verwendet werden.


    Zitat von sentencedX

    $add_query= "INSERT INTO kontext (id2,name) VALUES ($topic_id,$add_title);";


    Hier liegt der Fehler, wenn ich mich nicht ganz irre: du mußt die einzelnen Values in Hochkommas setzen! Ich nehme an, daß deine 2 Variablen diese nicht beinhalten. Richtig wäre also:


    PHP
    $add_query = "INSERT INTO kontext (id2, name) VALUES ('$topic_id', '$add_title')";


    Achja: Die query sollte eigentlich nicht mit einem Strichpunkt enden, nur zur Info.

    Du solltest dich außerdem mal mit dem Escapen von Strings beschäftigen, das heißt daß z.B. das Hochkomma ' durch \' ersetzt wird. Keinesfalls sollte User-Input ungeprüft an die Datenbank geschickt werden! Ansonsten könnte es große Probleme geben, falls $add_title durch den User z.B. auf "bla'bla" gesetzt werden würde. Siehe dazu addslashes() oder mysql_escape_string().


    Zitat von sentencedX

    $add_query= "INSERT INTO kontext (id2,name) VALUES ($topic_id,$add_title);";
    $error = mysql_error();


    mysql_error() hier aufzurufen macht nicht viel Sinn, da hast du ja noch garkeine mysql-Operation ausgeführt! Mach das lieber nach einem mysql_query().

  • beefy
    13
    beefy
    Mitglied
    Reaktionen
    18
    Punkte
    1.683
    Beiträge
    304
    • 8. Juli 2004 um 01:21
    • #3

    (Doppel-Post, meine Maustaste spinnt manchmal ;))

  • sentencedX
    11
    sentencedX
    Mitglied
    Punkte
    1.290
    Beiträge
    221
    • 8. Juli 2004 um 01:54
    • #4

    danke! hatte vor addslashed einzubauen, wenns prinzipell mal alles worked. thx!

    [size=-2] Available for your projects at great expense and inconvenience [/size]

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung