[php] Suchfunktion in SQL



  • Wenn man die datei mit
    www.diedomain.de/index.php?id=2
    aufruft, will ich die zielurl aus der tabelle aus der zeile 2 haben.
    Leider geht der code unten nicht. Ich frage, weil ich komplett keine fehlermeldung bekomme. Es wird einfach eine leere seite geladen.
    Was ist da falsch? Kann mir da wer helfen?

    <?php
    /*
     CREATE TABLE sitedb (
        ID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
        Username VARCHAR(100) NOT NULL,
        zielurl VARCHAR(100) NOT NULL 
    );
    */
    
    if (!mysql_connect(*********)) {
        die ('Konnte keine Verbindung zur Datenbank aufbauen');
    }
    mysql_select_db(********); 
    
    // www.domain.com/index.php?id=xxxx
    // urseite. weiterleitung bsw. $zielurl = google.de
    $_GET['id']; // gibt 'site' aus
    
        $sql = 'SELECT
                    zielurl 
                FROM
                    sitedb
                WHERE
                    id = ?';
    
        if (!$id == $sql) {
            return 'Der Link ist falsch.';
        }
    
        echo '<!Doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"'; 
        echo '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
        echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">';
        echo '<head>';
        echo '</head>';
        echo '<body>';
        echo $zielurl;
        echo '</body>';
        echo '</html>'
    
        $result = $db->query($sql);
    if (!$result) {
        die ('Etwas stimmte mit dem Query nicht: '.$db->error);
    }
    var_dump($db, $result);    
    ?>
    


  • oO

    das KANN nicht funktionieren...

    <?php
    /*
     CREATE TABLE sitedb (
        ID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
        Username VARCHAR(100) NOT NULL,
        zielurl VARCHAR(100) NOT NULL
    );
    */
    
    if (!mysql_connect(*********)) {
        die ('Konnte keine Verbindung zur Datenbank aufbauen');
    }
    mysql_select_db(********);
    
    // www.domain.com/index.php?id=xxxx
    // urseite. weiterleitung bsw. $zielurl = google.de
    
    $_GET['id']; // die Zeile macht garnichts
    
        $sql = 'SELECT
                    zielurl
                FROM
                    sitedb
                WHERE
                    id = ?'; // warum '?'? und achte dringend auf SQL-Injections!!!!
    
        if (!$id == $sql) {
            return 'Der Link ist falsch.'; // die Logik hier auch
        }
    
        echo '<!Doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"';
        echo '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
        echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">';
        echo '<head>';
        echo '</head>';
        echo '<body>';
        echo $zielurl; // $zielurl wurde nie definiert/deklariert/initialisiert
        echo '</body>';
        echo '</html>'
    
        $result = $db->query($sql); // warum erst hier den query ausfuehren, wenn du oben bereits das Ergebnis willst?
    if (!$result) {
        die ('Etwas stimmte mit dem Query nicht: '.$db->error);
    }
    var_dump($db, $result);    
    ?>
    

Anmelden zum Antworten