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

如何在PHP中执行代码

如何在PHP中执行代码,php,Php,如果我的问题很简单,请原谅。请看下面的代码。我知道发生了什么事 <?php session_start(); if($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST['username']; $login = $_POST['login'];} else {echo "Connection Error";} if(checking the fields is co

如果我的问题很简单,请原谅。请看下面的代码。我知道发生了什么事

    <?php

    session_start();

if($_SERVER["REQUEST_METHOD"] == "POST") {

    $username = $_POST['username'];

    $login = $_POST['login'];}

    else {echo "Connection Error";}

    if(checking the fields is correct) {

    //check it in database and if there is, assign the client session to the $_SESSION['username']

    $_SESSION['username'] = $username;

    //Login success 

}

变量
$\u POST['username']
$\u POST['login']
仅在用户发送POST请求时可用

我建议您这样重写代码:


如果您真的关心安全性,您就不应该自己实现身份验证。攻击类型很多,可能更复杂,您可以抵抗。

使用任何身份验证系统(或web框架),这将使您免于许多问题

理想情况下,应该在“连接错误”后终止,或者应该是最后一次条件检查,这意味着您的所有检查和登录成功都应该在if($\u SERVER[“REQUEST\u METHOD”]==“POST”)。我同意@codeSun,但在上述情况下,$\u POST数组保持为空,因此数据库验证肯定会失败,因此,$\u会话中不会记录任何内容。