【发布时间】:2016-04-14 03:49:47
【问题描述】:
我知道这里有很多具有相同标题和问题的问题,但我检查了我的所有语法,我真的不知道为什么这不再起作用(前一段时间,它确实起作用了)。
<?php
include_once("../../database/db_connect.php");
include '../../chromephp-master/ChromePhp.php';
date_default_timezone_set('Europe/Amsterdam');
session_start();
ChromePhp::log('Start...');
if(!isset($_SESSION['username']) && !isset($_SESSION['password'])) {
ChromePhp::log('Nothing in the SESSION.');
if(isset($_POST['submit'])){
ChromePhp::log('Lets have a look at the data...');
(...)
ChromePhp::log('Login successful!');
header('Location: news.php');
} else {
ChromePhp::log('Empty form.');
}
} else {
header('Location: news.php');
}
?>
我的表格如下:
<form method="post" action="site/users/login" >
<input type="text" name="username" value="Gebruikersnaam" /><br /><br />
<input type="password" name="pwrd" value="Wachtwoord" /><br /><br />
<input type="submit" name="submit" value=" Log in " />
</form>
表单与 PHP 代码在同一页面上;我将操作指向“站点/用户/登录”,因为在 HTML 页面的头部,我设置了<base href="../../">。
当我提交表单时,页面重新加载并且日志显示“开始...”,然后显示“会话中没有任何内容”。最后是“空表单”。
我做错了什么?感谢所有帮助!
编辑:这是我的 htaccess 文件的内容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
【问题讨论】:
-
尝试在提交按钮的值中不包含
&nbsp;。您不应该将 html 实体放在 value 属性中。如果需要,请用纯空格替换它们。 -
从你所说的'日志说“开始......”,然后“会话中没有任何内容。”'看来你的代码甚至没有到达“isset($_POST [' submit'])" 语句,您确定您没有登录或密码数据的会话吗?您可以使用 var_dump($_SESSION); 进行验证
-
@ezzarghili 确实如此,因为它说“空表单”,这是
if语句的else部分(输出“空表单”)。它只是失败了,仅此而已(为什么我不知道)。 -
@RayoVerweij 在输入任何
if语句之前先执行var_dump($_POST);,它包含什么? -
你试过不同的浏览器吗?
标签: php html forms session post