2017-06-30 1 views
0

Wenn ich an meinem lokalen Server arbeite, wirft es keine Probleme auf, aber online es irgendwie den Benutzer nach der Anmeldung nicht umadressiert,Kopfzeile ('Ort: /index.php'); funktioniert nicht

Ich bin ein Anfänger und suchte nach einem möglichen Grund dafür nicht zu arbeiten, und wahrscheinlich hat jemand dies bereits in korrekter Weise beantwortet ...

login.php

<?php 
    require_once 'header.php'; 


    $error = $user = $pass = ""; 

    if (isset($_POST['user'])) 
{ 
    $user = sanitizeString($_POST['user']); 
    $pass = sanitizeString($_POST['pass']); 

    if ($user == "" || $pass == "") 
    $error = "<span class='melding'>Iets vergeten?</span><br>"; 
    else 
    { 
    $result = queryMySQL("SELECT user,pass FROM members 
    WHERE user='$user' AND pass='$pass'"); 

    if ($result->num_rows == 0) 
    { 
    $error = "<span class='melding'>Gebruikersnaam/Wachtwoord 
       is niet correct.</span><br><br>"; 
    } 
    else 
    { 
     $_SESSION['user'] = $user; 
     $_SESSION['pass'] = $pass; 

     header ('Location: /index.php'); 

     } 
    } 
    } 

und wie für die header.php

<?php 
session_start(); 

    echo "<!DOCTYPE html><html><head>"; 


require_once 'functions.php'; 


if (isset($_SESSION['user'])) 
{ 
$user  = $_SESSION['user']; 

$loggedin = TRUE; 
$userstr = " ($user)"; 
} 
else $loggedin = FALSE; 

echo "<title>$appname</title><link rel='stylesheet' " . 
    "href='css/styles.css' type='text/css'>" . 
    "<link rel='shortcut icon' type='image/png' href='img/favicon.png' 
sizes='110x100'>" . 

    "<link href='photouploadjquery/fileinput.css' media='all' 
rel='stylesheet' type='text/css' />"  . 
    "<script 
src='http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'> 
</script>"  . 
    "<script src='photouploadjquery/fileinput.js' type='text/javascript'> 
</script>" . 
    "<script 
src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js' 
type='text/javascript'></script>" . 

    "<script src='javascript.js'></script>" . 

    "</head><body>"  ; 




if ($loggedin) 
{ 
echo showUserSmall($user); 
} 

    else 
{ 
    echo 

    file_get_contents ("includes/header.php"); 


} 

Vielen Dank für alle Vorschläge und Hilfe im Voraus,

+0

Es ist nicht Umleitung bedeutet .. irgendeinen Fehler, den Sie auf der Seite sehen .. überprüfen Quelltext, wenn nichts sichtbar ist auf Seite –

+0

Schritt 1: Aktivieren Sie richtige PHP-Fehler Berichterstattung, damit PHP Ihnen sagen kann, was falsch ist. – CBroe

+0

Wenn Sie mit PHP umleiten, kann keine vorherige Ausgabe (Echo, Druck) ausgeführt werden. – tilz0R

Antwort

3

Abgesehen von den "vergeten in te vullen" Nachrichten, beginnen Sie bereits eine Menge von HTML in header.php auszugeben.

sollten Sie das nicht tun, da es Ihren Server zwingt, den Header (contenttype = html etc) an den Browser zu senden.

ein Header-already sent Fehler eminent ist

So bewegen die Include-Zeile bis zur letzten Zeile von login.php

session_start() kann gehen login.php Oder besser unterscheiden zwischen a Header.php Datei für PHP und eine Header.php zum Starten einer HTML-Seite.

- Sie unterdrücken möglicherweise die eigentliche Fehlermeldung, aber hier: How to fix "Headers already sent" error in PHP es wird erläutert.

Nach dem Senden eines "Content-Type-Headers" ist es nicht mehr möglich, einen anderen Header zu senden. Umleiten des Browsers zu jeder Seite IST eine Überschrift, so gehen Sie ..

Verwandte Themen