2016-06-22 17 views
2

セッションでユーザー名を保存するためにphpを使用していますが、できません。私がしようとしているのは、フォームから出力を取得し、それをセッションに保存して、後で別のページにユーザー名を取得することです。 (私はログインフォームからデータを取得)セッションにデータを保存できません

のindex.php:(私はregsiterフォームからデータを取得)

if(isset($_POST['submit-login'])){ 


$uname = $_POST['uname']; 
$password = $_POST['password']; 
$password = md5($password); 

$result = mysqli_query($Conn, "SELECT * FROM `users` WHERE `Username` = '$uname' AND `Password` = '$password'"); 

$num_rows = mysqli_num_rows($result); 

if($num_rows > 0){ 

    if($uname == "admin"){ 
     echo "Hello, admin. Do you want to access to the "."<a href='database.php'>database?</a>"; 

     $name = mysqli_query($Conn, "SELECT `Name` FROM `users` WHERE `Username` = '$uname'"); 
     $lname = mysqli_query($Conn, "SELECT `Last Name` FROM `users` WHERE `Username` = '$uname'"); 
     $email = mysqli_query($Conn, "SELECT `Email` FROM `users` WHERE `Username` = '$uname'"); 
    } else{ 
    echo "Welcome ".$uname."! You are now logged in!"; 
    } 
} else { 
    echo "Sorry, your password and username do not match. Please try again"; 
} 

$_SESSION["uname"] = $_POST['uname']; 

} 

のindex.php:

if(isset($_POST['submit-register'])){ 


$uname = $_POST['uname']; 
$password = $_POST['password']; 
$password2 = $_POST['password2']; 
$email = $_POST['email']; 
$email2 = $_POST['email2']; 
$name = $_POST['fname']; 
$lname = $_POST['lname']; 

if($password2 == $password && $email2 == $email){ 
    $result = mysqli_query($Conn, "SELECT * FROM `users` WHERE `Username` = '$uname'"); 
    $num_rows = mysqli_num_rows($result); 


    if($num_rows > 0){ 
     echo "Sorry, that username is already taken."; 
    } else { 
     mysqli_query($Conn, "INSERT INTO `users` (`Name`, `Last Name`, `Username`, `Password`, `Email`, `Level`) VALUES ('$name', '$lname', '$uname', '$password', '$email', 0)") or die (mysqli_error($Conn)); 
     echo "Welcome ".$name." ".$lname." (".$uname.")! You are now registered. Log in, please."; 
    } 
} 

$_SESSION["uname"] = $_POST['uname']; 
} 

私。 php:

<?php 
session_start(); 

$uname = $_SESSION["uname"]; 
echo $_SESSION["uname"]; 

?> 

オンインデックスでは、コードが非常にうまく始まりました。

me.phpでは、エコーは何も印刷しません!

助けてください、あなたはエラーがどこにあるのですか教えてください。

また、私がクッキーでこれを行うことができれば、これは素晴らしいことです!しかし、私は方法がわからない...

ありがとう!

答えて

1

セッションにも書き込むには、session_start()を使用する必要があります。

index.phpには、先頭にsession_start();を追加してください。

+0

実際、私が言ったように、私はコードの開始点でセッションを開始します – Ardi

0

セッションに関係するすべてのファイルに対して、session_start()が必要です。

ところで、mysqli_の準備文をお読みください。現在のコードには脆弱性がたくさんあります。

+0

実際には、私が言ったように、index.php上では、コードの始まりでセッションを開始します – Ardi

+0

index.phpのコード。 – guest

関連する問題