Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 开会失败_Php_Session - Fatal编程技术网

Php 开会失败

Php 开会失败,php,session,Php,Session,我试图在提交这两个表单时使用php mysqli创建一个注册和登录页面,用户被重定向到main.php,其中标题菜单有home、inbox等菜单,但如果未登录的用户访问main.php,他们将看到注册和登录菜单。但是这里我的header.php无法识别会话。登录后,用户标题菜单应更改为主页、收件箱等,但登录后仍显示注册登录菜单 register.php 在我看来,在header.php中,如果isset$\u SESSION['userid']始终为false。你应该有一个更好的方法来做这件事。

我试图在提交这两个表单时使用php mysqli创建一个注册和登录页面,用户被重定向到main.php,其中标题菜单有home、inbox等菜单,但如果未登录的用户访问main.php,他们将看到注册和登录菜单。但是这里我的header.php无法识别会话。登录后,用户标题菜单应更改为主页、收件箱等,但登录后仍显示注册登录菜单

register.php


在我看来,在header.php中,如果isset$\u SESSION['userid']始终为false。你应该有一个更好的方法来做这件事。比如:

因为您有两个场景可以使用/设置会话或cookie,即

1当用户注册/注册时

2当用户登录/登录时

对于场景1

在数据库中插入新记录的查询完成后。使用会话,或者我更喜欢设置一个cookie来存储用户信息,并将他/她重定向到main.php

例如:

$reg_query = "INSERT INTO signup(First_Name, Last_Name, Gender)
 VALUES('$fname', '$lname', '$gender')";
$reg_run = mysqli_query($con, $reg_query);
        $Month = 86400 + time(); 
     setcookie('user', $uname, $Month);  
      echo "The cookie has been set."; 

header("Location:main.php");
$log_que = "SELECT * FROM login WHERE username = '$user' AND password = '$pass' ";
$log_run = mysqli_query($con, $log_que);

$row = mysql_fetch_array($log_run);
$user_db = $log_row['username'];
$pass_db = $log_row['password'];

if($user == $user_db && $pass == $pass_db)
{
    echo "LOGGED IN!"; 
     $Month = 86400 + time(); 
     setcookie('user', $user, $Month); 
      header("Location:main.php");
}
<?php         

if(isset($_COOKIE['user']))
          {  
            unset($_COOKIE['user']); 
            setcookie('user', '', time() - 3600, 'login.php');
            setcookie('user', '', time() - 3600, 'signup.php');
            echo "<script type='text/javascript'>alert('YOU HAVE LOGGED OUT!')</script>";
          }
         header("refresh:1; url=welcomepage.php");
?>
对于场景2

在成功检查/匹配用户是否已注册后。设置cookie并将他/她移动到main.php

例如:

$reg_query = "INSERT INTO signup(First_Name, Last_Name, Gender)
 VALUES('$fname', '$lname', '$gender')";
$reg_run = mysqli_query($con, $reg_query);
        $Month = 86400 + time(); 
     setcookie('user', $uname, $Month);  
      echo "The cookie has been set."; 

header("Location:main.php");
$log_que = "SELECT * FROM login WHERE username = '$user' AND password = '$pass' ";
$log_run = mysqli_query($con, $log_que);

$row = mysql_fetch_array($log_run);
$user_db = $log_row['username'];
$pass_db = $log_row['password'];

if($user == $user_db && $pass == $pass_db)
{
    echo "LOGGED IN!"; 
     $Month = 86400 + time(); 
     setcookie('user', $user, $Month); 
      header("Location:main.php");
}
<?php         

if(isset($_COOKIE['user']))
          {  
            unset($_COOKIE['user']); 
            setcookie('user', '', time() - 3600, 'login.php');
            setcookie('user', '', time() - 3600, 'signup.php');
            echo "<script type='text/javascript'>alert('YOU HAVE LOGGED OUT!')</script>";
          }
         header("refresh:1; url=welcomepage.php");
?>
现在,在main.php上应该应用如下检查:

<?php
if(isset($_COOKIE['user']))
{
        echo '<nav id = "navigation">
    <ul>
         <li><a href = "welcome.php">Home</a></li>
         <li><a href = "index.php">View</a></li>
         <li><a href = "myprofile.php">Profile</a></li>
    </ul>
</nav>
<div id = "line"></div>';
}
else
{
echo '<nav id = "navigation">
    <ul>
         <li><a href = "welcome.php">Home</a></li>
         <li><a href = "index.php">View</a></li>
         <li><a href = "login.php">Login</a></li>
         <li><a href = "signup.php">Signup</a></li>
    </ul>
</nav>
<div id = "line"></div>';
}   
?>
注意:研究mysqli/PDO以及如何避免SQL注入/XSS。 如果你正在使用会话。只需将cookie替换为会话即可 并在注销页面上正确取消设置/销毁它们


你为什么要开始上课;在一个文件中两次?好的,我删除了第二次会话,但这段代码有什么问题请大家注意..thnks for help bro,但仍然不起作用我的登录代码使用的main.php与您使用的完全相同。@Harman在if语句之后从哪里得到“$un”和“$pswd”?此外,您正在使用不推荐使用的“mysql\u fetch\u array;”将其更改为“mysqli\u fetch\u array;”相反,$un和$pswd是我用来将数据插入注册页面的users表中的变量。它也有问题,所以这就是问题所在吗?以前我使用单个页面进行注册和登录,但现在我使用单独的页面,很抱歉将其更改为mysqli aswell@Harman将action=更改为空或将上面发布的php写入main.php。只要你按下提交按钮,它就会把你带到main.php,因此不会运行上面写的php.thnks brother现在一切正常,但当我在登录表单中输入错误的密码时,浏览器会弹出在用户重定向到main.php之前记住密码,我想这与代码无关?