Frage von MinecrafterPG, 52

Wie kann ich diese Variable "leeren"?

Hi Leute,

ich habe hier dieses Script, das einen automatisch anmelden soll.

if(isset($_GET['code'])){
            $sql = "SELECT
                    User
            FROM
                    User_Linklogin
            WHERE
                    Code = '".mysql_real_escape_string(trim($_GET['code']))."' AND
                    Status = 'available'
           ";
    $result1 = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
if (mysql_num_rows($result1)==1){
            $sql = "SELECT
                    ID
            FROM
                    User
            WHERE
                    ID = '".$result1."'
           ";
    $result2 = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
    // wird die ID des Users geholt und der User damit eingeloggt
    $row = mysql_fetch_assoc($result2);
    // Prüft, ob wirklich genau ein Datensatz gefunden wurde
    if (mysql_num_rows($result2)==1){
         doLogin($row['ID'], isset($_POST['Autologin']));
         echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
         echo "Sie wurden erfolgreich eingeloggt.<br>\n".
              "Zur <a href=\"index.php\">Startseite</a>\n";
    }
    else{
         echo "Sie konnten nicht eingeloggt werden.2<br>\n".
              "Nickname oder Passwort fehlerhaft.<br>\n".
              "Zurück zum <a href=\"login.php\">Login-Formular</a>\n";
    }
}
else{
     echo "Sie konnten nicht eingeloggt werden.1<br>\n".
          "Nickname oder Passwort fehlerhaft.<br>\n".
          "Zurück zum <a href=\"login.php\">Login-Formular</a>\n";
}

}

Das Script funktioniert aber nicht, weil in der Variable $result1 ja Resource id #7 steht. Wie bekomme ich das jetzt hin, dass das Script funktioniert?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Kiboman, 36

1. das result bringt dir nichts ein paar zeilen darunter macht du es richtig mit fetch_assoc

du musst den inhalt für den ausgeführt query auch abrufen.

$bla = mysql_query(...)

$inhalt = mysqli_fetch_assoc($bla)

2. Mysql ist veraltet nutze mysqli oder PDO

Antwort
von triopasi, 36

In der Variable $result1 steht das, was die MySQL Abfrage zurückgegeben hat, das ist halt kein String oder sonstwas, sondern ein Objekt einer Klasse. Das musst du halt richtig auswerten, und nicht so wie du das machst!

Ich denke du meinst

ID = '". mysql_fetch_row($result1)[0] . "'";


Du solltest aber mysqli_ oder PDO statt mysql_ verwenden, da das veraltet ist und in PHP 7 entfernt wird!

Kommentar von MinecrafterPG ,

PDO hab ich auch schon in manchen Scripten verwendet. Wie ist das bei mysqli? Muss man da einfach nur überall ein i hinter setzen (ich hab da keine Ahnung von) 😀

Kommentar von Kiboman ,

fast,

die funktionen sind sogut wie die gleichen nur die zu übergebenen parameter haben sich bei einigen geändert aber im grunde musst du fast nur ein i dahinter machen

Kommentar von MinecrafterPG ,

Funktioniert alles soweit. Wenn ich jetzt aber zB 3 Ziffern des Linklogins (es sind 25) in zB eine 0 ändere, wird man trotzdem noch eingeloggt :(

Kommentar von Kiboman ,

du gehst die sache falsch an.

deine Logik hinter dem code ist nicht schlüssig und wesentlich komplizierter als es sein muss

Kommentar von MinecrafterPG ,

Wie soll ich's denn machen???

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten