0

しばらくの間ウェブを見ていて、例に従おうとしました...

私がやりたいことは、ユーザーにログインさせてから、私がテストしたセッションを開始することですが、データベースからユーザー名やその他のデータ項目を取得するのに問題があります。

ユーザーは、ユーザー名とパスワードを使用してログインします。次に、このコードを使用して別のページに誘導されます...

<?php

session_start();
if(!session_is_registered(user_name));

$con = mysql_connect("****","****","****");
            if (!$con)
              {
              die('Could not connect: ' . mysql_error());
              }
       //Finds database
            mysql_select_db("****", $con);

$result = mysql_query("SELECT * FROM fyp_users;");


$first_name = $_SESSION['first_name'];
$_SESSION['views']=200;
header('location:../profile.php');


?>

セッションビューは単なるテストであり、ユーザーがログインしたときに番号を見つけて表示します。次に、first_name セッションを実行しようとしました。

これは、リダイレクトするページでもあります...

<?php 
$con = mysql_connect("****","****","****");
            if (!$con)
              {
              die('Could not connect: ' . mysql_error());
              }
       //Finds database
            mysql_select_db("****", $con);
?>
<?php
session_start( );

//$result = mysql_query("SELECT * FROM fyp_users;");

?>  

いくつかのHTML....

<?php

echo "Pageviews=". $_SESSION['views'];
echo "Welcome=" . $_SESSION['$first_name']


?>

名前が表示されないのですが、簡単に修正できるかどうかはわかりません。誰か助けてもらえますか?

- - - - - - - - - - - - - - - - - - - - - - アップデート - - - ----------------------------------

HTMLフォーム

<div class="login">
<form id="login" method="post" action="includes/checklogin.php">
<p>Login</p>
<p>Username</p>
<input name="user_name" id="user_name">
<p>Password</p>
<input name="password" id="password" type="password">
</br>
<input type="submit" name="Submit" value="Login">
</form>
</div>
<!--<img src="images/logo.png" alt="The Community">-->
</div>

checklogin.php

<?php

$con = mysql_connect("****","***","***");
            if (!$con)
              {
              die('Could not connect: ' . mysql_error());
              }
       //Finds database
            mysql_select_db("****", $con);

$user_name=$_POST['user_name']; 
$password=$_POST['password']; 

$user_name = stripslashes($user_name);
$password = stripslashes($password);
$user_name = mysql_real_escape_string($user_name);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM fyp_users WHERE user_name='{$user_name}' and       password='{$password}'";
$result=mysql_query($sql);



$count=mysql_num_rows($result);

if($count==1) {

session_register("user_name");
session_register("password"); 
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>

login_success,php

<?php

session_start();
if(!session_is_registered(user_name));

$con = mysql_connect("***","****","****");
            if (!$con)
              {
              die('Could not connect: ' . mysql_error());
              }
       //Finds database
            mysql_select_db("*****", $con);

$result = mysql_query("SELECT * FROM fyp_users;");


$first_name = $_SESSION['first_name'];
$password = $_SESSION['password'];
$_SESSION['views']=200;
header('location:../profile.php');


?>

profile.php

<?php
session_start();


echo "Pageviews=". $_SESSION['views'];
echo "Welcome=" . $_SESSION['first_name']


?>

ありがとうジェームズ

4

3 に答える 3

3

コードの最初の行に Session_start を含めます。コードでセッションを使用する場合、Session_start は必須です。それが行うことは、既存のセッションが存在する場合はそれを再開するか、セッションがまだ存在しない場合は新しいセッションを開始することです。

<?php
session_start();


echo "Pageviews=". $_SESSION['views'];
echo "Welcome=" . $_SESSION['first_name'];


?>
于 2013-08-21T23:14:48.703 に答える
1

次のページでセッションを開始した場合も使用します

session_start(); 

echo "Pageviews=". $_SESSION['views'];
echo "Welcome=" . $_SESSION['first_name']
于 2013-08-21T23:15:48.527 に答える
0
<?php
session_start(); //use this to invoke session variable usage

echo "Pageviews=". $_SESSION['views'];
echo "Welcome=" . $_SESSION['first_name']


?>



if(!session_is_registered(user_name)); // this statement seems incorrect

むしろあるべき

<?php

session_start();
if(!session_is_registered(user_name)) : // it should be colon with endif at end
// session_is_registered('user_name')  user_name should be within single quotes untill its DEFINED

$con = mysql_connect("****","****","****");
        if (!$con)
          {
          die('Could not connect: ' . mysql_error());
          }
   //Finds database
        mysql_select_db("****", $con);

$result = mysql_query("SELECT * FROM fyp_users;");

$first_name = $_SESSION['first_name'];
$_SESSION['views']=200;
header('location:../profile.php');

endif; // here is end if

?>

アップグレードされたバージョンのphpを使用していると思うので、次のような理由がもう1つあります。

session_is_registered(user_name)

この関数は PHP 5.3.0 で非推奨となり、PHP 5.4.0 で削除されました。

ソース: http://php.net/manual/en/function.session-is-registered.php

于 2013-08-21T23:14:07.730 に答える