【问题标题】:Cookie working local, but not online PHP MYSQL [duplicate]Cookie在本地工作,但不是在线PHP MYSQL [重复]
【发布时间】:2014-04-17 04:22:38
【问题描述】:

我正在使用一个登录系统,如果你像这样登录,你会得到一个 cookie:

此代码在 login.php 中:

if ($_SESSION['admintype']=="Admin") { 
        setcookie(Adminingelogd, date("F jS - g:i a"), $seconds);
        header("location:admin/E2/e2admin.php");
    } 

当你进入 e2admin.php 页面时,上面的代码如下:

if(!isset($_COOKIE['Admin'])) {
        header("location:../../index.php");
    }

因此,如果您没有 cookie,您将发送回索引页面。 在我的本地服务器上一切正常,但是当我上网并将其放在服务器上时出现错误:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at myURL/login.php:13) in myURL/login.php on line 14

还有:

Warning: Cannot modify header information - headers already sent by (output started at MyURL/login.php:13) in MyURL/login.php on line 42

这是我的整个 login.php 文件。

<?php
    session_start();

    include "connect.php";

    $dbhandle = mysql_connect($hostname, $username, $password) or die("Kan niet inloggen");

    $selected = mysql_select_db("alexander_voetbalstats", $dbhandle);

    $myusername = $_POST['inlognaam'];
    $mypassword = $_POST['wachtwoord']; 

    $myusername = stripslashes($myusername);
    $mypassword = stripslashes($mypassword);

    $query = "SELECT * FROM users WHERE Username='$myusername' and Password='$mypassword'";
    $result = mysql_query($query);
    $count = mysql_num_rows($result);
    //$resultt = mysql_query($sql);

    mysql_close();

    if($count==1){
        $seconds = 9999 + time();
        $row = mysql_fetch_array($result);
        $_SESSION['admintype'] = $row['admintype'];

        if ($_SESSION['admintype']=="Admin") { 
            //setcookie(E2ingelogd, date("F jS - g:i a"), $seconds);
            header("location:admin/E2/e2admin.php");
        } 
        else if ($_SESSION['admintype']=="Visitor") { 
            //setcookie(adminingelogd, date("F jS - g:i a"), $seconds);
            header("location:nieuwegebruiker.php");
        }
        else {
            header("location:index.php");
}

    }else{
        echo 'Incorrect Username or Password';
    }
?>

我做错了什么?

【问题讨论】:

  • 所以输出从第 13 行开始。原始脚本中的第 13 行是什么?我猜是一个警告,可能是关于已弃用的mysql_* 函数。你应该真正阅读 sql injection。并且永远不要存储纯文本密码,始终使用加盐哈希。
  • 所以你之前有输出。删除 / 把它放在标题调用之后。
  • 您的代码易受 SQL 注入攻击;你应该阅读how to prevent them in PHP

标签: php mysql cookies login admin


【解决方案1】:

我的&lt;?php 标记上方有空格,这就是问题所在。

现在解决了!

【讨论】:

    猜你喜欢
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多