0

ユーザーが電子メールとパスワードを入力して送信できるログインページがあり、システムはデータが正しいかどうかをチェックし、プロファイルページを表示し、そうでない場合はデータが正しくないことをユーザーに通知するメッセージを表示します。

しかし、問題は、 header("Location:profile.php");を配置した場合です。システムは機能しませんが、データが正しいことをユーザーに通知するメッセージをエコーすると、ブラウザはこのメッセージを問題なく表示します

login.php

<?php
session_start();
ob_start();
error_reporting(E_ALL);
require_once('include/connect.php');
//$message = ""; 
if(!empty($_POST['email']))
{

$email = $_POST['email'];
$pass = $_POST['pass'];

$email = strip_tags($email);
$pass = strip_tags($pass);
$email = mysql_real_escape_string($email);
$pass = mysql_real_escape_string($pass);
//$pass = md5($pass);

$sql=mysql_query( "SELECT user_id, email_address, first_name FROM user WHERE email_address='$email'AND password='$pass'LIMIT 1") or die("error in user table");
$login_check = mysql_num_rows($sql);

  if($login_check > 0)
  {
      $row = mysql_fetch_array($sql);

          $id = $row['user_id'];
          $_SESSION['user_id'] = $id;

          $firstname = $row['first_name'];
          $_SESSION['first_name']= $firstname;

          $email = $row['email_address'];
          $_SESSION['email_address']= $email;

          mysql_query("UPDATE user SET last_log_date=now() WHERE user_id='$id'");

        //$message = "correct email and passworddd!!";  
          header("Location:profile.php");
          exit();     
  }//close if 
  else
  {
      //$message = "incorrect Email or Password!!";
      //exit();
  }
}//close if

?>  

profile.php

<?php
session_start();
 require_once('include/connect.php'); 


if(isset($_GET['user_id']))
{
    $id=$_GET['user_id'];
    var_dump($id);

}
elseif(isset($_SESSION['user_id']))
{
    $id= $_SESSION['user_id'];
}

else
{
    print "Important  data  are missing";
    print_r($_SESSION);
    exit();

}

$sql = mysql_query("SELECT * FROM user  WHERE user_id='$id'") or die(mysql_error());
$row = mysql_fetch_array($sql);

   $firstname=$row['first_name'];
   $lastname=$row['last_name'];
   $birth_date=$row['birth_date'];
   $registered_date=$row['registered_date'];
   //***************for upload img*****************//
   $check_pic="members/$id/image01.jpg";
   $default_pic="members/0/image01.jpg";
   if(file_exists($check_pic))
   {
       $user_pic="<img src=\"$check_pic\"width=\"100px\"/>";
   }
   else
   {
       $user_pic="<img src=\"$default_pic\">";
   }
   echo $id, $firstname, $birth_date;
?>
4

4 に答える 4

0

そこにjavascriptを使用して、プロファイルページにリダイレクトできます。php header() 関数の前に印刷するなどの小さな間違いが問題を引き起こす可能性があるため..そこでより良いユーザーjavascriptを使用してください。

以下のコードで確認してください

?>
<script>
window.location.href="profile.php";
</script>
<?
于 2013-05-08T05:15:47.930 に答える
0

profile.php のこの行に疑問があります

require_once('include/connect.php');

profile.php のパスが間違っている場合は、

header(Location: "xyz/profile.php");

この相対パスが正しいことを確認してください!

于 2013-05-08T05:24:22.400 に答える
0

ob_end_flush()PHPの終了タグの前に使用?>

于 2013-05-08T05:13:18.953 に答える
0

これを試して。

<?php
session_start();
ob_start();
error_reporting(E_ALL);
require_once('include/connect.php');
//$message = ""; 
if(isset($_POST['email']))
{

 $email = $_POST['email'];
 $pass = $_POST['pass'];

 $email1 = mysql_real_escape_string(strip_tags($email));
 $pass1 = mysql_real_escape_string(strip_tags($pass));
 //$pass = md5($pass);

 $sql = mysql_query("SELECT user_id, email_address, first_name FROM user WHERE email_address='$email1' AND password='$pass1' LIMIT 1") or die("error in user table");
 $login_check = mysql_fetch_assoc($sql)

if($login_check)
{
   $row = $login_check;

      $id = $row['user_id'];
      $_SESSION['user_id'] = $id;

      $firstname = $row['first_name'];
      $_SESSION['first_name']= $firstname;

      $email = $row['email_address'];
      $_SESSION['email_address']= $email;

      mysql_query("UPDATE user SET last_log_date=now() WHERE user_id='$id'");

    //$message = "correct email and passworddd!!";  
      header("Location: profile.php");
      exit();     
}//close if 
else
{
  //$message = "incorrect Email or Password!!";
  //exit();
}
}//close if

?>  
于 2013-05-08T05:28:23.600 に答える