2017-03-20 5 views
1

Der aktuelle unten beschriebene Code funktioniert nicht. Ich möchte den Benutzernamen in Sitzung speichern und auf der Homepage anzeigen. Dies ist der Code, den ich verwende, um den Benutzernamen zu speichern und anzuzeigen. Dies führt zur Startseite, wenn der Benutzername korrekt ist.PHP-Sitzung funktioniert nicht in meinem Code

<input type="text" name="username" placeholder="Username" /> 
<input type="password" name="password" placeholder="Password" /> 
<input type="submit" name="submit" class="btn btn-success" value="Login" /> 
<?php 
session_start(); 
$error=''; 
if (isset($_POST['submit'])) 
{ 
    $username = $_SESSION['username']; 
    $username = $_SESSION['login_user']; 
    if (empty($_POST['username']) || empty($_POST['password'])) 
    { 
     echo "<script type='text/javascript'>alert('Username or Password is invalid')</script>"; 
    } 
    else 
    { 
     $username=$_POST['username']; 
     $password=$_POST['password']; 
     $con = mysqli_connect("mysql.site","username","password","database"); 
     $username = stripslashes($username); 
     $password = stripslashes($password); 
     $username = mysqli_real_escape_string($username); 
     $password = mysqli_real_escape_string($password); 
     $query = mysqli_query($con,"select * from userprofile where password='$password' AND username='$username'"); 
     $rows = mysqli_num_rows($query); 
     if ($rows == 1) 
     { 
     $_SESSION['username']=$username; 
     $_SESSION['login_user']=$username; 
     if (isset($_POST['rememberme'])) { 
     setcookie('username', $_POST['username'], time()+60*60*24*365); 
     setcookie('password', md5($_POST['password']), time()+60*60*24*365); 
     } 
     else 
     { 
     setcookie('username', $_POST['username'], false, '/account', 'www.example.com'); 
     setcookie('password', md5($_POST['password']), false, '/account', 'www.example.com'); 
     } 
     header('Location: home.php'); 
    } 
    else 
    { 
    echo "<script type='text/javascript'>alert('Invalid Username & Password')</script>"; 
    header('Location: home.php'); 
    } 
    mysqli_close($con); 
    } 
    } 
    ?> 

Dieser Code wird zur Seite login (index.php) navigieren, wenn die Sitzung leer ist. es funktioniert

home.php

<?php 
if (!isset($_SESSION)) { 
    session_start(); 
} 
if(!$_SESSION['username']) { 
    header('Location: index.php'); 
    exit; 
} 
?> 

Dieser Code funktioniert jetzt nicht, aber wenn ich diesen Code löschen.

if(!$_SESSION['username']) { 
     header('Location: index.php'); 
     exit; 
    } 
+0

kann Ihre Anfragen annehmen ändern arbeiten gut und Sie bekommen alles, was Sie aus der Datenbank benötigen. Deklarieren Sie den session_start() am Anfang Ihrer Seite. bring den HTML-Code unter dem PHP-Code herunter. Es sollte funktionieren. –

Antwort

2

so etwas wie dies versucht, den ersten if Zustand entfernen, dann die zweite if Bedingung

<?php 
    session_start(); 
    if(!isset($_SESSION['username'])) { 
     header('Location: index.php'); 
     exit; 
    } 

?> 
+1

Wenn ich diese Zeilen lösche "if (! Isset ($ _ SESSION ['username'])) {header ('Location: index.php'); exit;}; von home.php wird von der Anmeldeseite nach Hause umgeleitet – Udhayakkrishna

+0

Wenn ich den obigen Code verwende, wird es nicht vom Login nach Hause umgeleitet – Udhayakkrishna

+0

Überprüfen Sie, ob '$ _SESSION ['username']' einen Wert hat, entfernen Sie das 'if' dann echo es einfach – Swellar

Verwandte Themen