blackstar: Entwerte Sonderzeichen

Hallo zusammen
ich hab da nen Problem mit einer Datenbankabfrage PHP/MYSQL
ich möchte Die Daten aus DB TB1 in TB2 kopieren. Wenn ich jetzt $_POST
abfragen möchte klappt das nicht setzte ich jedoch statt $_POST einen wert aus TB1 direkt ein fuzt es.

$sql="INSERT INTO geloecht SET geloecht.name = (SELECT neu.name FROM neu where name = '"$_POST[namen]"'),geloecht.zeit = (SELECT neu.zeit FROM neu where name = '"$_POST[namen]"')"

danke schon mal im vorab
ps : bin noch neuling in php ;)

  1. Hello,

    ich hab da nen Problem mit einer Datenbankabfrage PHP/MYSQL
    ich möchte Die Daten aus DB TB1 in TB2 kopieren. Wenn ich jetzt $_POST
    abfragen möchte klappt das nicht setzte ich jedoch statt $_POST einen wert aus TB1 direkt ein fuzt es.

    Was bedeutet das?

    $sql="INSERT INTO geloecht SET geloecht.name = (SELECT neu.name FROM neu where name = '"$_POST[namen]"'),geloecht.zeit = (SELECT neu.zeit FROM neu where name = '"$_POST[namen]"')"

    Bahnhof.

    Kannst Du bitte nochmal gaaanz langsam erklären, was passieren soll
    Dann bitte erzählen, was stattdessen passiert und vo allem:

    Die Fehlermeldungen mitschicken!

    Wenn Du keine Fehlermeldungen hast, dann sorge als erstes mal für eine vollständige Entwicklungsumgebung, also für Einstellungen oder Anwisungen, die jede erhältliche Fehlermeldung oder Statusmeldung auch abholen und zur Anzeige bringen.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Danke für Dein Hilfeangebot

      ich hatte halt keine Fehlermeldung bekommen ;) deswegen stand ich bissl auf dem schlauch
      ich wollte Datensatz aus tabelle1 in tabelle2 kopieren mit den Felder name und zeit
      bei meiner Abfrage nach $_POST war nen syntaxproblem richtig muß es lauten:

      $sql="INSERT INTO geloecht SET geloecht.name = (SELECT neu.name FROM neu where name = '".$_POST['namen']."'),geloecht.zeit = (SELECT neu.zeit FROM neu where name = '".$_POST['namen']."')"

      damit der POST wert ausgewertet wird

      gruß Sven

      1. Hi Sven!

        ich wollte Datensatz aus tabelle1 in tabelle2 kopieren mit den Felder name und zeit

        Dann frag doch einfach die Daten aus Tabelle 1 ab und füge sie in Tabelle 2 ein.

        bei meiner Abfrage nach $_POST war nen syntaxproblem richtig muß es lauten:

        Was ist denn eine "Abfrage nach $_POST"?

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
      2. Hi

        Du solltest Niemals Werte aus einer vom Benutzer fälschbaren Variable ($_POST, $_GET usw.) direkt in die DB schreiben. Dein Programm wird dadurch anfällig auf SQL Injection.

        Mehr Info's hier:

        [url]http://de3.php.net/manual/de/security.database.sql-injection.php[/url]

      3. Hello,

        ich hatte halt keine Fehlermeldung bekommen ;) deswegen stand ich bissl auf dem schlauch
        ich wollte Datensatz aus tabelle1 in tabelle2 kopieren mit den Felder name und zeit
        bei meiner Abfrage nach $_POST war nen syntaxproblem richtig muß es lauten:

        $sql="INSERT INTO geloecht SET geloecht.name = (SELECT neu.name FROM neu where name = '".$_POST['namen']."'),geloecht.zeit = (SELECT neu.zeit FROM neu where name = '".$_POST['namen']."')"

        damit der POST wert ausgewertet wird

        Ich nehme an, dass dieser Thread noch Mitposter bekommen wird...

        1. schalte alle PHP-Fehlermeldungen ein

        error_reporting(E_ALL);
           ini_set('track_errors',1);

        sollte da erste zwei Zeilen in jedem Script, dass sich im Test befindet, bei üblichen Installationen reichen.

        2. Zeige Datenbank-Queries vor der Ausführung nochmals an
           echo $sql;
           könnte da bei Dir genügen.

        3. Hole alle Datenbank-Statusmeldungen ab
           $result = mysql_query($sql, $con);

        echo $result

        als Kurzanleitung

        usw...

        Sicherheitslücken in Deiner Vorgehensweise werden bestimmt auch noch besprochen werden

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau