Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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_Mysql - Fatal编程技术网

在php中创建会话和数据验证

在php中创建会话和数据验证,php,mysql,Php,Mysql,我创建了一个PHP脚本,用于从表中检索数据,并通过提交表单将选择后的数据存储到另一个表中。我在创建用于存储值和验证数据的会话时遇到问题。如何在下拉列表中选择项目时创建会话并验证数据 <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "leave-form"; $dbh = new PDO("mysql:host=$servername; dbname=$dbname", $user

我创建了一个PHP脚本,用于从表中检索数据,并通过提交表单将选择后的数据存储到另一个表中。我在创建用于存储值和验证数据的会话时遇到问题。如何在下拉列表中选择项目时创建会话并验证数据

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "leave-form";

$dbh = new PDO("mysql:host=$servername;
dbname=$dbname", $username, $password);

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

if (isset($_POST["submit"])) {

    try {

        $sql = "INSERT INTO authority (emp_name, repo_auth, contr_auth)
VALUES   ('" . $_POST["emp_name"] . "','" . $_POST["repo_auth"] . "','" . $_POST["contr_auth"] . "')";
        if ($dbh->query($sql)) {
            echo "<script type= 'text/javascript'>alert('New Record Inserted   Successfully');</script>";
        } else {
            echo "<script type= 'text/javascript'>alert('Data not successfully   Inserted.');</script>";
        }
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
}
?>

<div class="container">
    <h1>Admin</h1>
    <form name="registration" action="" method="post">
        <table>
            <tr>
                <td>Employee name:</td>
                <td>
                    <select name="emp_name">
                        <option value=""> -----------Select----------- </option> 
                        <?php
                        $stmt = $dbh->prepare('Select name from people');
                        $stmt->execute();
                        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                            echo '<option>' . $row['name'] . '</option>';
                        }
                        ?>
                    </select> 
                </td>
            </tr>

            <tr>
                <td>Manager:</td>
                <td>
                    <select name="repo_auth">
                        <option value=""> -----------Select----------- </option> 
                        <?php
                        $stmt = $dbh->prepare('Select name from people');
                        $stmt->execute();
                        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                            echo '<option>' . $row['name'] . '</option>';
                        }
                        ?>
                    </select> 
                </td>
            </tr>

            <tr>
                <td>Senior Manager:</td>
                <td>
                    <select name="contr_auth">
                        <option value=""> -----------Select----------- </option> 
                        <?php
                        $stmt = $dbh->prepare('Select name from people');
                        $stmt->execute();
                        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                            echo '<option>' . $row['name'] . '</option>';
                        }
                        ?>
                    </select> 
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <input type="submit" name="submit" value="Register" />
                    <input type="reset" name="cancel" value="clear"/>
                </td>
            </tr>
        </table>
    </form>
</div>

您可以这样做:

$_SESSION['session_name'] = $value;
会议: 会话是最重要的,这是PHP的一个非常简单的主要元素。您可以使用会话在其中存储值,然后可以跨PHP脚本的其他页面访问这些值。UnllkeCookie会话比Cookie安全得多,因为Cookie保存在客户端,并且可以进行操作,这会造成比Cookie更大的伤害在其他sie会话上的任何其他内容都是服务器端的。您可以在会话中存储一些值,但实际会话存储在服务器上。您无法对其进行操作,因此使用会话而不是cookie更安全,但在代码中的某些位置,这两个会话都有各自的角色相互使用

如何创建会话:

创建会话非常容易, 会话可以这样创建:

$_SESSION['session_name'] = $value;
第二,您现在可以通过以下方式在其他PHP脚本页面中访问会话:

$stored_value = $_SESSION['session_name'];
echo $stored_value;
注意:在尝试访问
$\u session
数组之前,以及在将任何输出发送到浏览器之前,请记住在这两个页面上运行
session\u start()
语句。只需添加
session\u start()
在您要使用会话设置会话或尝试检索会话的每一页的完整开头

会话的简单使用: 场景: 例如,我想在登录时创建一个会话,然后能够使用已建立的会话访问其他页面,直到会话被销毁。! 下面是我该怎么做:

登录页面(index.php或Login.php):

<?php
session_start(); 
// Add session_start() just right after the PHP Starting Tags 
// Or you will be getting Header Sent Already Error

if ($db_username == $input_username && $db_password == $input_password) {
    $_SESSION['user'] = $db_username;
    header("Location : home.php");
} else {
    echo "Username & Password Is Wrong";
}
?>
<?php
session_start();
$user =  $_SESSION['user'];
if (isset($user)) {
    echo "Welcome User : ".$user;
} else {
    // If Session is not there you will be redirected back to login page.!
    header("Location: login.php");
}
?>
<?php
session_start();
if (session_destroy()) {
    header("Location: login.php");
}
?>
现在,如果您想注销,只需访问
logout.php
页面,就可以像这样破坏会话:

注销页面(Logout.php):

<?php
session_start(); 
// Add session_start() just right after the PHP Starting Tags 
// Or you will be getting Header Sent Already Error

if ($db_username == $input_username && $db_password == $input_password) {
    $_SESSION['user'] = $db_username;
    header("Location : home.php");
} else {
    echo "Username & Password Is Wrong";
}
?>
<?php
session_start();
$user =  $_SESSION['user'];
if (isset($user)) {
    echo "Welcome User : ".$user;
} else {
    // If Session is not there you will be redirected back to login page.!
    header("Location: login.php");
}
?>
<?php
session_start();
if (session_destroy()) {
    header("Location: login.php");
}
?>

您可以这样做:

$_SESSION['session_name'] = $value;
会议: 会话是最重要的,这是PHP的一个非常简单的主要元素。您可以使用会话在其中存储值,然后可以跨PHP脚本的其他页面访问这些值。UnllkeCookie会话比Cookie安全得多,因为Cookie保存在客户端,并且可以进行操作,这会造成比Cookie更大的伤害在其他sie会话上的任何其他内容都是服务器端的。您可以在会话中存储一些值,但实际会话存储在服务器上。您无法对其进行操作,因此使用会话而不是cookie更安全,但在代码中的某些位置,这两个会话都有各自的角色相互使用

如何创建会话:

创建会话非常容易, 会话可以这样创建:

$_SESSION['session_name'] = $value;
第二,您现在可以通过以下方式在其他PHP脚本页面中访问会话:

$stored_value = $_SESSION['session_name'];
echo $stored_value;
注意:在尝试访问
$\u session
数组之前,以及在将任何输出发送到浏览器之前,请记住在这两个页面上运行
session\u start()
语句。只需添加
session\u start()
在您要使用会话设置会话或尝试检索会话的每一页的完整开头

会话的简单使用: 场景: 例如,我想在登录时创建一个会话,然后能够使用已建立的会话访问其他页面,直到会话被销毁。! 下面是我该怎么做:

登录页面(index.php或Login.php):

<?php
session_start(); 
// Add session_start() just right after the PHP Starting Tags 
// Or you will be getting Header Sent Already Error

if ($db_username == $input_username && $db_password == $input_password) {
    $_SESSION['user'] = $db_username;
    header("Location : home.php");
} else {
    echo "Username & Password Is Wrong";
}
?>
<?php
session_start();
$user =  $_SESSION['user'];
if (isset($user)) {
    echo "Welcome User : ".$user;
} else {
    // If Session is not there you will be redirected back to login page.!
    header("Location: login.php");
}
?>
<?php
session_start();
if (session_destroy()) {
    header("Location: login.php");
}
?>
现在,如果您想注销,只需访问
logout.php
页面,就可以像这样破坏会话:

注销页面(Logout.php):

<?php
session_start(); 
// Add session_start() just right after the PHP Starting Tags 
// Or you will be getting Header Sent Already Error

if ($db_username == $input_username && $db_password == $input_password) {
    $_SESSION['user'] = $db_username;
    header("Location : home.php");
} else {
    echo "Username & Password Is Wrong";
}
?>
<?php
session_start();
$user =  $_SESSION['user'];
if (isset($user)) {
    echo "Welcome User : ".$user;
} else {
    // If Session is not there you will be redirected back to login page.!
    header("Location: login.php");
}
?>
<?php
session_start();
if (session_destroy()) {
    header("Location: login.php");
}
?>


我没有找到任何与会话或验证相关的代码。您面临的问题是什么?因为我是一个新手,我不知道如何添加会话或在发现重复用户时验证代码警告:使用PDO时,您应该使用准备好的语句,并将任何用户数据作为单独的参数提供,因为您在这段代码中有严重错误。不要使用字符串插值或串联,而是使用。有关此问题和其他问题的指导,请参阅。我未找到任何会话或验证相关代码。您面临的问题是什么?因为我是一个新手,我不知道如何添加会话或在发现重复用户时验证代码警告:使用PDO时,您应该使用准备好的语句,并将任何用户数据作为单独的参数提供,因为您在这段代码中有严重错误。不要使用字符串插值或串联,而是使用。有关此问题和其他问题的指导,请参阅。现在,我想为每个字段创建会话,例如,如果用户从每个下拉列表中选择一个项目,但用户忘记从另一个下拉列表中选择一个项目,则必须提醒用户仅填写/选择该字段,因为其余项目是使用会话存储的,并且每个字段应具有唯一的名称,即我可以将我的报告经理和高级经理命名为相同的名称,我的firend也可以命名为相同的名称,即所有选定的下拉列表都具有相同的值,必须对其进行验证,并弹出一条消息,就像所有字段都不能显示一样same@tadman你瞎了吗??只是想知道你看不到他甚至不知道如何创建和添加会话,而你正在谈论laraval。。。!让我们称之为艰难的爱。PHP社区似乎对人们使用他们自己糟糕透顶的登录系统漠不关心,有些系统坏得很厉害,他们做的恰恰相反,他们让人们随意攻击你的服务器。Ruby有Rails,Python有Django,Node.js有Express,所有这些都是人们在解决类似问题时首先使用的。