2

重複の可能性:
_SESSION変数が機能しない

こんにちは私はそれが一般的な問題であることを知っています、しかし私は私のコードに何も悪いことはないと思います、しかし私はなぜ私の$ _SESSION['myusername']; 現在ログオンしているユーザーを表示していません。

以下は私のmain.phpです:

<?php
session_start();
if(isset($_SESSION['myusername'])){
header("location: index.php");
}
echo "Hello " .$_SESSION['myusername'];
?>

私のchecklogin.php

<?php
session_start();
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="dbscholaris"; // Database name 
$tbl_name="users"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$myusername = $_POST['myusername']; 
$mypassword = $_POST['mypassword']; 

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){

// Register $myusername, $mypassword and redirect to file "main.php"
$_SESSION["myusername"] = $myusername;
$_SESSION["mypassword"] = $mypassword; 
header("location:main.php");
}
else {
echo "Wrong Username or Password";
}
?>

私が欠けているものを見つけるのを手伝ってください。ありがとう

4

3 に答える 3

0

if(isset($ _ SESSION ['myusername']))ではなくif(!isset($ _ SESSION ['myusername']))を実行しているため、ページを表示できないことを説明します。 phpセッションmyusernameが存在しない場合は、index.phpに移動します。それ以外の場合は無視します。

于 2012-12-23T19:12:34.503 に答える
0

$myusernameと$mypasswordを$_SESSION次のようにエクスポートする必要があります。

$_SESSION["myusername"] = stripslashes($myusername);
$_SESSION["mypassword"] = stripslashes($mypassword);

割り当てを忘れました。mysql_real_esacpe_string()また、その変数を元に戻す必要があります。(または、エスケープされていないバージョンを以前に保存します)。

また、セッションが開始されていることを確認する必要があります。これは、次のいずれかで実行できます。

session_start();

読み取りまたは書き込みの前、または$_SESSIONphpiniディレクティブの設定による

session.auto_start = 1
于 2012-12-23T18:21:55.673 に答える
0

この最初のコードを試してください

    <?php
     session_start();
     if(isset($_POST['myusername'])){
    $_POST['myusername'] = $_SESSION['myusername'];
      header("location: index.php");
       }
      echo "Hello " .$_SESSION['myusername'];
    ?>
于 2012-12-23T18:49:33.760 に答える