Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Weiterleitung nach Login mit header() funktioniert nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Weiterleitung nach Login mit header() funktioniert nicht

    Hallo, da ich einfach nicht weiterkomme, muss ich mich mal an euch wenden:

    Ich habe hier eine Seite index.php auf der per include() ein loginformular.php angezeigt wird. Wenn dieses Loginformular ausgefüllt wurde, werden die eingegeben Daten an login.php weitergeleitet und dort auf Richtigkeit überprüft. Wenn die Daten richtig sind, soll auf home.php weitergeleitet werden, wenn nicht zurück auf index.php.

    Leider bekomme ich nach der Angabe der Daten immer folgenden Fehler:
    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\test\login.php:1) in C:\xampp\htdocs\test\login.php on line 35
    Ich bin also davon ausgegangen, dass der Fehler in der login.php liegt. Hier der Code (Zeile 35 ist genau der erste header()):
    PHP-Code:
        <?php
            $server 
    'localhost';
            
    $benutzer 'root';
            
    $passwort '';
            
    $datenbank 'test';
        
            
    $verbindung = @mysqli_connect($server$benutzer$passwort);
        
        
            
            if (
    $verbindung){
                
    mysqli_select_db($verbindung$datenbank);
                if (
    mysqli_error($verbindung)){
                    echo 
    'Fehler: ' mysqli_error($verbindung);
                }else{
                    
    // Hier besteht eine gültige Verbindung mit der Datenbank
                        
    if (isset($_POST['user']) && $_POST['passwort']){
                            
    // user und passwort wurden ausgefüllt                            
                            
                        
    $user $_POST['user'];
                        
    $passwort md5($_POST['passwort']);    
                        
                        
    $sql 'SELECT passwort FROM user WHERE user="' $user '"';
                        
    $abfrage mysqli_query($verbindung$sql);
                        
    $result mysqli_fetch_array($abfrage);
                        
    $passwort_aus_db $result['passwort'];
                        


                            if (
    $passwort == $passwort_aus_db){
                                
    // Benutzerangaben stimmen
                            
                                
    $_SESSION['user'] = $user;
                                
                                
    header ("LOCATION: home.php");
                                
                            }else{
                            
                                
    header ("LOCATION: index.php");
                                
                            }

                        }
                            
                    
                
                }
            }else{
                echo 
    'Verbindungsfehler: ' mysqli_connect_error($verbindung);
            }
            
    mysqli_close($verbindung);
        
        
        
    ?>
    Und hier die loginformular.php
    PHP-Code:
    <?php 
        
        
    if(isset($_SESSION['user'])) {
        
            echo 
    'Hallo ' $_SESSION['user'];
            
        } else {
            
            
    ?>
            
                <div id="loginformular">
                <form method="post" enctype="multipart/form-data" action="login.php">
                <input name='user' type="text" value="User" /><br/>
                <input name='passwort' type="password" value="passwort" /><br/>
                <input type="submit" value='Login'>
                </form>
                </div>
                
                <div id="registrierungsaufforderung">
                <a href="registrierungsformular.php">registrieren!</a>
                </div>
            
            <?php
        

    ?>
    Danke im voraus.

    P.S.: Falls es eine bessere Möglichkeit zur Weiterleitung als header gibt, würde ich die natürlich auch gern nehmen.

  • #2
    Nimm mal die leerzeichen vor dem <?php weg.. (auch whitespace ist ein output)

    Kommentar


    • #3
      ja daran lags...

      oh man un ich dachte noch was soll denn da sein in line 1 da steht ja nix außer <?php Was mich das schon wieder Zeit gekostet hat...

      Naja, danke dir! Die Weiterleitung klappt jetzt wenigstens.

      Kommentar


      • #4
        Du hättest auch einmal nach dem Fehler suchen können. Wir haben sogar einen extra Wikibeitrag dazu: Headers already sent - PHP.de Wiki

        Kommentar

        Lädt...
        X