Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.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_Html - Fatal编程技术网

如果未键入用户名/密码,则使页面无法访问。PHP

如果未键入用户名/密码,则使页面无法访问。PHP,php,html,Php,Html,嗯,我知道有很多这样的线。但他们在评论中说的每一句话我都试过了,没有任何结果。所以我想我必须在这里尝试一下 基本上,我在“login.html”中有一个登录表单,您可以在其中键入“Username(Name=userId)”和“Password”,它会将您重定向到“login.php”以确保用户名和密码已写入,如果是,它应该再次重定向到“hidden.php”。。如果我把它去掉,效果很好 <?php session_start(); if(!isset($_SESSION['User'])

嗯,我知道有很多这样的线。但他们在评论中说的每一句话我都试过了,没有任何结果。所以我想我必须在这里尝试一下

基本上,我在“login.html”中有一个登录表单,您可以在其中键入“Username(Name=userId)”和“Password”,它会将您重定向到“login.php”以确保用户名和密码已写入,如果是,它应该再次重定向到“hidden.php”。。如果我把它去掉,效果很好

<?php
session_start();
if(!isset($_SESSION['User']))
{
   header('location: login.php');
   exit();
}
?>

这是“hidden.php”顶部的一行

但在另一方面,如果人们只输入“/hidden.php”而不输入密码,它应该将您重定向到“Login.php”,这在任何情况下都不起作用。。我已经搜索了很多,找到了关于它的线索,但是没有一个在我的案例中起作用

<?php
    session_start();

    $serverName = "den1.mysql2.gear.host";
    $username = "lexidatabaseweb";
    $password =  "*";
    $db = "lexidatabaseweb";

    //Create connection
    $conn = mysqli_connect($serverName, $username, $password, $db);

    if(isset($_POST['userId']))
{
    $User=$_POST['userId'];
    $Pass=$_POST['passId'];

    $sql = "SELECT * from tbl_register WHERE Username= '".$User."' AND Password = '".$Pass."' limit 1";
    $result = mysqli_query($conn, $sql);

    if(mysqli_num_rows($result) == 1){
        header('location: hidden.php');
        exit();
    }
    else{
        echo" <label style='color:red;'> Wrong username / password.</label>";
        exit();
    }
}
else
{
    echo "Invalid request";
}

?>

您没有在登录页面中设置会话变量,因此请在检查正常后设置它

if(mysqli_num_rows($result) == 1){
    $_SESSION['User'] = $User;
    header('location: hidden.php');
    exit();
}
您还应该更改密码处理并阅读


还可以查看准备好的语句。

您没有在登录页面中设置会话变量,所以在检查确定后设置它

if(mysqli_num_rows($result) == 1){
    $_SESSION['User'] = $User;
    header('location: hidden.php');
    exit();
}
您还应该更改密码处理并阅读



同时查看准备好的语句。

mysqli_num_行($result)==1中设置会话,然后为会话销毁和执行文件创建logout.php文件,然后再次执行
hidden.php
文件。是否您正在查看该文件的缓存版本,该文件在您实现会话处理之前曾被请求过一次?@BilalAhmed如何销毁会话?我对php一无所知。@arkascha Idk这意味着什么,我对php一无所知:/set session in
mysqli\u num\u rows($result)==1
然后为session destroy和execute文件创建logout.php文件,然后再次执行
hidden.php
文件。是否您正在查看该文件的缓存版本,该文件在您实现会话处理之前曾被请求过一次?@BilalAhmed如何销毁会话?我对php完全陌生。@arkascha Idk这意味着什么,我对php很陌生!我解决了第一个问题。。但是现在我可以在页面顶部写“/hidden.php”,它会指引我找到它。如果没有loginOne,那么测试可能仍然有一个会话集-请确保在测试“未登录”部分之前可以清除会话。很抱歉询问,但是。。。我应该在哪个.php文件中执行此操作?我应该使用SeStIsApple()还是应该如何清除它?您可能需要在页面上注销链接——如果这有帮助的话,请考虑将其标记为“应答”。如果您对这些问题有满意的答案,还包括您之前提出的问题。哦!我解决了第一个问题。。但是现在我可以在页面顶部写“/hidden.php”,它会指引我找到它。如果没有loginOne,那么测试可能仍然有一个会话集-请确保在测试“未登录”部分之前可以清除会话。很抱歉询问,但是。。。我应该在哪个.php文件中执行此操作?我应该使用SeStIsApple()还是应该如何清除它?您可能需要在页面上注销链接——如果这有帮助的话,请考虑将其标记为“应答”。如果您对这些问题有满意的答案,还将涵盖您之前提出的问题。