我对PHP非常陌生。编码我的第一个网站。
index.php
<?php
session_start();
?>
<!DOCTYPE html>
<html lang="en">
<form action="authenticate.php" method="post">
//form inputs
</form>
</body>
</html>
该表单调用authenticate.php:
<?php
session_start();
//Authenication work
//...
// line 43 here
if(!$authen){
include_once("index.php");
}
else{
header('Location: main.php');
exit();
}
?>
无论何时我运行网站并登录,只要单击表单中的提交按钮,我便会在浏览器中重定向到{而不是重定向到main.php
{1}},我看到了:
图片中的文字:
authenticate.php
我的Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/html/projet/authenticate.php:1) in /var/www/html/projet/authenticate.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/projet/authenticate.php:1) in /var/www/html/projet/authenticate.php on line 51
代码(应该重定向到该页面):
main.php
到目前为止我尝试过的事情:
<?php session_start(); ?>
<html>
<head>
...
之前和<?php
之后修剪所有可能的空白我越来越绝望了。 请注意,相同的网站和文件在wampserver上本地工作,但是当我将它们放在服务器上时,会发生。
我想念什么吗?抱歉,我完全不熟悉PHP ,而且我正在学习。
还有问题:
答案 0 :(得分:2)
有2种类型的UTF-8编码类型。一种带有BOM(字节顺序标记),另一种没有。如果您未指定 without 字节顺序标记,则存在问题。它应该没有BOM。
您需要重新保存所有没有它的文件。
参考文献:
字节顺序标记是看不见的字符集,也可以说明在标头之前的输出。