我对我的登录和注册脚本无法正常工作的问题感到非常恼火。最有趣的是,两个星期前我在另一台服务器的另一个网站上使用了完全相同的脚本,它的工作真棒!
问题
当我尝试注册或登录时,我没有被重定向到我应该是的页面。在register.php上,用户注册了(我可以在数据库中看到它),但是我没有被重定向到login.php,而是在“将你重定向到xxxx.php”的消息上崩溃了。 Here you can read my scripts
我接触了我的服务器(ipage)并询问他们的系统是否出现问题。我得到了3个不同的交叉答案:
1)我能够复制你的问题。我做了一些初步的故障排除,但无法找到问题的根本原因。 2)他们后来回答我说他们能够注册新用户并且没有问题登录 3)最后的答案是问题出在我的脚本上
我不确定这里发生了什么,因为脚本不起作用(与他们所说的相反)。我不知道他们是否在说谎,因为他们根本不好或无法找出问题的原因。无论如何,错误日志说明如下:
*“20131014T033118:url.org/folder/login.php PHP警告:session_start():无法发送会话cookie - 已经在/ hermes / bosweb26a / b366 / ipg中发送的输出(输出从/hermes/bosweb26a/b366/ipg.domainname/folder/folder/common.php:1开始)第77行的“.domainname / folder / folder / common.php”*
第77行是:header('Content-Type:text / html; charset = utf-8');.如果我把它拿出来,那么错误就会转移到另一条线......
假设我已经调试了脚本并且没有发现错误,这可能是由于服务器的质量问题吗? (PHP版本f.i。?)
答案 0 :(得分:0)
您可以将session_start()
放在第一行ok common.php
答案 1 :(得分:0)
只需切换session_start
和header('Content-Type: text/html; charset=utf-8')
:
// This initializes a session. Sessions are used to store information about
// a visitor from one web page visit to the next. Unlike a cookie, the information is
// stored on the server-side and cannot be modified by the visitor. However,
// note that in most cases sessions do still use cookies and require the visitor
// to have cookies enabled. For more information about sessions:
// http://us.php.net/manual/en/book.session.php
session_start();
// This tells the web browser that your content is encoded using UTF-8
// and that it should submit content back to you using UTF-8
header('Content-Type: text/html; charset=utf-8');
在<?php
作为common.php
的顶部之前,您是否有空格?如果你这样做,你需要将其删除。
答案 2 :(得分:0)
在调用session_start()
或回显任何内容之前,您需要确保调用header()
。所以在login.php中,您需要确保session_start()
位于页面顶部,或者您需要移动它以便在脚本中更早地调用它,至少在header()
之前调用它调用
答案 3 :(得分:0)
我个人在文件末尾的ob_start();
和session_start();
之后使用ob_flush()
;