• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] weitere Probleme mit Usersystem

K

Kyorax

Guest
Hallo Community,
ich habe neulich ein Usersystem auf meinen Testserver hochgeladen. Dabei sind Probleme aufgetreten, die ich auf meinem PC mit xampp nicht hatte. Dank bdt600 konnte ich eines bereits lösen, doch damit war es wohl doch nicht ganz getan: Der Registriervorgang ist in Ordnung, doch sobald man sich mit den Informationen einloggt, heißt es:
Login Valid!
Please Wait.... Invalid username and/or password

Ich habe das folgende in den Code eingesetzt und erhalte mit aktivierten Fehlermeldungen das darauf folgende:
PHP:
        $result = mysql_query("SELECT * FROM users WHERE username='$posted_username' AND password='$md5_posted_password'")
        or die ("MySQL-Error: " . mysql_error());
Ergebnis:
Warning: Cannot modify header information - headers already sent by (output started at /customers/c/6/1/xplodepvp.com/httpd.www/proc_login.php:25) in /customers/c/6/1/xplodepvp.com/httpd.www/proc_login.php on line 30

Hier ist nochmal der ganze Code der Seite:
PHP:
<?php
error_reporting(-1);
ini_set('display_errors', true);
session_start();

if (isset($_SESSION['user'])) {
    header ('location: index.php');
} else {
  
    if ($_POST['username']&&$_POST['password']) {
      
        $posted_username = $_POST['username'];
        $posted_password = $_POST['password'];
        $md5_posted_password = md5($posted_password);
      
        require('connect.php');
      
        $valid_user = 0;
      
        $result = mysql_query("SELECT * FROM users WHERE username='$posted_username' AND password='$md5_posted_password'")
        or die ("MySQL-Error: " . mysql_error());
      
        while($row = mysql_fetch_array($result))
            {
                echo "Login Valid!</br></br>Please Wait....";
                $valid = 1;
                $last_login_str = date('Y-m-d');
                mysql_query("UPDATE users SET last_login = '$last_login_str' WHERE username = '$posted_username'");
                $_SESSION['user']=$_POST['username'];
                header ('location: index.php');
            }
          
        if ($valid_user==0) {
            echo "Invalid username and/or password";
        }

        mysql_close($con);
      
    } else {
        echo "Both username and password are required.";
    }
  
}

?>
Die Schritte zum Debuggen von bdt600 habe ich bereits verwendet (danke nochmals), aber da ich noch ein ziemlicher Neuling bin, weiß ich nicht so recht wie ich das entstandene Problem beheben soll.
Auffällig ist noch, dass man beim Neuladen der Seite auf den Index.php umgeleitet wird und EINGELOGGT ist! Das selbe Problem tritt beim ausloggen ein! Erst erhält man die seltsame Meldung und befindet sich auf proc_logout / proc_login.php, beim Neuladen der Seite wird man umgeleitet und ist eingeloggt / ausgeloggt.

Kann mir jemand helfen? Danke im Voraus!
 
Zuletzt bearbeitet von einem Moderator:
Warning: Cannot modify header information - headers already sent by (output started at /customers/c/6/1/xplodepvp.com/httpd.www/proc_login.php:25) in /customers/c/6/1/xplodepvp.com/httpd.www/proc_login.php on line 30
Sollen wir wetten, dass du mit dieser Fehlermeldung bei google mehrere Mio. Treffer bekommst?!
Vor der Header-Anweisung darf nichts ausgeben werden, kein Leerzeichen, keine Leerzeile, kein Text, Nada! Die Fehlermeldung verrät dir aber, wo doch schon eine Ausgabe passiert:
output started at /customers/c/6/1/xplodepvp.com/httpd.www/proc_login.php:25
 
Und noch ein kleiner Tipp am Rande, myql_ ist deprecated, also veraltet. Falls du es nur zu Übungszwecken machst, sollte man lieber direkt mit mysqli oder PDO üben. Falls es produktiv gehen soll, dann erst recht.
 
Danke, habe das korrigiert! Also in Zukunft dein 10 Schritte Debug-Verfahren, falls ich mit der Fehlermeldung nichts anfangen kann, googeln und DANN erst Forum? :)
 
Die MySQL-Extension wird in den nächsten PHP-Versionen nicht mehr unterstützt, deshalb besser MySQLi nehmen. In den meisten Fällen kannst du aus mysql_* ein mysqli_* machen. Und dann noch mysql_connect anpassen, denn bei mysqli_connect wird direkt der Datenbankname übergeben und mysql_select_db entfällt.
 
Ich kriege irgendwie Probleme mit dem mysqli_query, muss ich dabei etwas beachten? wenn ich das einfach nur auswechsle erhalte ich als Fehlermeldung
"Warning: mysqli_query() expects at least 2 parameters, 1 given in /customers/c/6/1/xplodepvp.com/httpd.www/proc_login.php on line 20
Warning: mysqli_error() expects exactly 1 parameter, 0 given in /customers/c/6/1/xplodepvp.com/httpd.www/proc_login.php on line 21 MySQL-Error:"
habe das bereits gegoogelt, aber so wirklich schlau werde ich aus den Ergebnissen auch nicht
 
habe ich bereits verwendet, ich erhalte eine leere seite
EDIT: jetzt erhalte ich den gleichen Fehler wie vorhin, obwohl ich das $con eingefügt habe
EDIT EDIT: jetzt funktioniert es auf wundersame weise
 
Zurück
Oben