3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php // Session starten session_start(); // Variablen deklarieren $_SESSION['angemeldet'] = false; $benutzername = ''; $passwort = ''; $fehlermeldung = ''; // Funktion zum verbinden zur Datenbank function db_connect() { // Zugangsdaten für die DB $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $dbname = 'testlogin'; // Verbindung herstellen und Verbindungskennung zurückgeben $conid = mysql_connect( $dbhost, $dbuser, $dbpass ) or die( 'Verbindungsfehler!' ); if (is_resource( $conid )) { mysql_select_db( $dbname, $conid ) or die( 'Datenbankfehler!' ); } return $conid; } // Prüfen ob ein Cookie existiert und zu einem gültigen User gehört if (isset( $_COOKIE['UserLogin'] )) { // Wert aus dem Cookie mit dem Wert in der Datenbank vergleichen $conid = db_connect(); $sql = "SELECT `id` FROM `login_fortgeschritten` WHERE `cookie_hash` = '" .mysql_real_escape_string( $_COOKIE['UserLogin'] ). "' AND `aktiviert` = 1"; $ergebnis = mysql_query( $sql, $conid ); // Stimmt der Cookie Hash überein, wurde 1 Datensatz gefunden if (mysql_num_rows($ergebnis) == 1) { // Wenn der Hash aus dem Cookie mit dem aus der DB übereinstimmt, // Session Variable setzen und auf die geheime Seite weiterleiten $_SESSION['angemeldet'] = true; header( 'location: geheim_fortgeschritten.php' ); exit; } } // Wenn das Formular abgeschickt wurde if (isset( $_POST['login'] )) { // Maskierende Slashes aus POST Array entfernen if (get_magic_quotes_gpc()) { $_POST = array_map( 'stripslashes', $_POST ); } // Benutzereingabe umladen, von Leerzeichen befreien und $benutzername = strtolower( trim( $_POST['benutzer'] ) ); $passwort = md5( trim( $_POST['passwort'] ) ); // Benutzereingabe mit User in der Datenbank vergleichen $conid = db_connect(); $sql = "SELECT `cookie_hash` FROM `login_fortgeschritten` WHERE LOWER(`benutzername`) = '" .mysql_real_escape_string( $benutzername ). "' AND `passwort` = '" .mysql_real_escape_string( $passwort ). "' AND `aktiviert` = 1"; $ergebnis = mysql_query( $sql, $conid ); // Stimmen die Benutzereingaben überein, wurde 1 Datensatz gefunden if (mysql_num_rows($ergebnis) == 1) { // Abfrageergebnis fetchen $usercookie = mysql_fetch_assoc( $ergebnis ); // Wenn die Anmeldung korrekt war Session Variable setzen, // COOKIE an Browser schicken und auf die geheime Seite weiterleiten $_SESSION['angemeldet'] = true; setcookie( 'UserLogin', $usercookie['cookie_hash'], time()+600 ); header( 'location: geheim_fortgeschritten.php' ); exit; } else { $fehlermeldung = '<h3>Die Anmeldung war fehlerhaft!</h3>'; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>phpBuddy.eu - Login Script</title> </head> <body> <?php // Falls die Fehlermeldung gesetzt ist if ($fehlermeldung) echo $fehlermeldung; ?> <form id="loginform" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <label for="benutzer">Benutzer: </label><input type="text" name="benutzer" id="benutzer" value="" /><br /> <label for="passwort">Passwort: </label><input type="password" name="passwort" id="passwort" value="" /><br /> <input type="submit" name="login" id="login" value="Anmelden" /> </form> </body> </html>
Output for 5.2.3 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>phpBuddy.eu - Login Script</title> </head> <body> <form id="loginform" method="post" action="/in/VtkK3"> <label for="benutzer">Benutzer: </label><input type="text" name="benutzer" id="benutzer" value="" /><br /> <label for="passwort">Passwort: </label><input type="password" name="passwort" id="passwort" value="" /><br /> <input type="submit" name="login" id="login" value="Anmelden" /> </form> </body> </html>
Output for 4.3.2 - 5.2.2
Warning: session_start(): Cannot send session cookie - headers already sent in /in/VtkK3 on line 4 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /in/VtkK3:4) in /in/VtkK3 on line 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>phpBuddy.eu - Login Script</title> </head> <body> <form id="loginform" method="post" action=""> <label for="benutzer">Benutzer: </label><input type="text" name="benutzer" id="benutzer" value="" /><br /> <label for="passwort">Passwort: </label><input type="password" name="passwort" id="passwort" value="" /><br /> <input type="submit" name="login" id="login" value="Anmelden" /> </form> </body> </html>
Output for 4.3.0 - 4.3.1
Warning: session_start() [http://www.php.net/function.session-start]: Cannot send session cookie - headers already sent in /in/VtkK3 on line 4 Warning: session_start() [http://www.php.net/function.session-start]: Cannot send session cache limiter - headers already sent (output started at /in/VtkK3:4) in /in/VtkK3 on line 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>phpBuddy.eu - Login Script</title> </head> <body> <form id="loginform" method="post" action=""> <label for="benutzer">Benutzer: </label><input type="text" name="benutzer" id="benutzer" value="" /><br /> <label for="passwort">Passwort: </label><input type="password" name="passwort" id="passwort" value="" /><br /> <input type="submit" name="login" id="login" value="Anmelden" /> </form> </body> </html>