久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PHP - setcookie();不工作

PHP - setcookie(); not working(PHP - setcookie();不工作)
本文介紹了PHP - setcookie();不工作的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我進行了一個登錄,它設置了一個 cookie 與推算的電子郵件地址的值,因此在 global.php 文件中,它使用以下方法存儲用戶數據的數組:

I've made a login, that sets a cookie with a value of the imputed email address, so in the global.php file, it stores an array of the users data using:

$email = $_COOKIE["PeopleHub"];
$getuserdata = mysqli_query($con, "SELECT * FROM Earth WHERE email='$email'");
$userdata = mysqli_fetch_array($getuserdata, MYSQLI_ASSOC);

沒有設置cookie,我知道這是因為我做了一個測試文件:

The cookie isn't being set, I know this because I made a test file:

echo $_COOKIE["PeopleHub"];

它只是做了一個空白頁.

It just made a blank page.

登錄代碼(設置cookie的地方):

The login code (where the cookie is set):

<?php 
include "global.php";    
?>
<h2>Login</h2>
<?php 
    echo "We currently have <b>" . $usercount . "</b> members, <b>" . $onlinecount . "</b> of which are online. "; 
?>
<br>
<br>
<?php 
    if(isset($_POST["email"])){ 
        $email = $_POST["email"];
        $password = sha1($_POST["password"]);
        $check = mysqli_query($con, "SELECT * FROM Earth WHERE `email`='$email' AND `password`='$password'");
        $check = mysqli_num_rows($check);
        if($check == 1){
        setcookie("PeopleHub", $email, 0, '/');
        echo "We logged you in!";
        }
        else { 
            echo "We couldn't log you in!";
        }
    }
?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
    Email <input name="email" placeholder="Email Address" required="" type="text"><br>
    Password <input name="password" placeholder="Password" required="" type="password"><br>
    <input type="reset" value="Start Over">
    <input type="submit" value="Login">
</form>

推薦答案

您必須在發送任何標題之前設置 cookie.

You have to set cookies before any headers are sent out.

來自手冊:

setcookie() 定義了一個與其他 HTTP 標頭一起發送的 cookie.與其他標頭一樣,cookie 必須在腳本的任何輸出之前發送(這是協議限制).這要求您在任何輸出之前調用此函數,包括和標簽以及任何空格.

setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including and tags as well as any whitespace.

這意味著您需要研究輸出緩沖如果您希望按原樣使用此代碼.

This means you will need to look into output buffering if you wish to use this code as is.

<?php

ob_start();
echo "Hello
";

setcookie("cookiename", "cookiedata");

ob_end_flush();

?>

根據global.php 的內容,這可能適合您.我所做的只是在調用 setcookie() 之前刪除任何輸出.如果 global.php 包含任何空格或 HTML 輸出,這將不起作用:

Depending on the contents of global.php, this might work for you. All I did was remove any output before setcookie() is called. If global.php contains any whitespace or HTML output in it this won't work:

<?php 
include "global.php";    

    if(isset($_POST["email"])){ 
        $email = $_POST["email"];
        $password = sha1($_POST["password"]);
        $check = mysqli_query($con, "SELECT * FROM Earth WHERE `email`='$email' AND `password`='$password'");
        $check = mysqli_num_rows($check);
        if($check == 1){
        setcookie("PeopleHub", $email, 0, '/');
        echo "We logged you in!";
        }
        else { 
            echo "We couldn't log you in!";
        }
    }
?>
<h2>Login</h2>
<?php 
    echo "We currently have <b>" . $usercount . "</b> members, <b>" . $onlinecount . "</b> of which are online. "; 
?>
<br>
<br>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
    Email <input name="email" placeholder="Email Address" required="" type="text"><br>
    Password <input name="password" placeholder="Password" required="" type="password"><br>
    <input type="reset" value="Start Over">
    <input type="submit" value="Login">
</form>

這篇關于PHP - setcookie();不工作的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Joining 2 tables in SELECT(MYSQL/PHP)(在 SELECT(MYSQL/PHP) 中加入 2 個表)
How to make lt;option selected=quot;selectedquot;gt; set by MySQL and PHP?(如何使lt;option selected=“selectedgt;由 MySQL 和 PHP 設置?)
Auto populate a select box using an array in PHP(使用 PHP 中的數組自動填充選擇框)
PHP SQL SELECT where like search item with multiple words(PHP SQL SELECT where like search item with multiple words)
json_encode produce JSON_ERROR_UTF8 from MSSQL-SELECT(json_encode 從 MSSQL-SELECT 產生 JSON_ERROR_UTF8)
MySQL ORDER BY rand(), name ASC(MySQL ORDER BY rand(),名稱 ASC)
主站蜘蛛池模板: 激情六月丁香 | 亚洲高清成人 | 国产精品成人一区二区三区夜夜夜 | 成人精品国产免费网站 | 亚洲精品一区国语对白 | 二区精品 | 国产精品国产三级国产aⅴ中文 | 国产视频在线观看一区二区三区 | 国产91在线播放 | 一区欧美 | 免费观看一级特黄欧美大片 | 欧美一级特黄aaa大片在线观看 | 日本午夜一区二区三区 | a在线v| 日韩美女一区二区三区在线观看 | 国产精品久久久久久久久久 | 亚洲激情视频在线 | 五月婷亚洲 | 国产高清久久 | 日韩毛片在线视频 | 日本一区二区高清不卡 | 九九热在线视频免费观看 | 中国三级黄色录像 | 久久久精品久久久 | 偷拍亚洲色图 | 欧美日韩国产一区二区 | 毛片在线视频 | 欧美精品片 | 国产欧美精品区一区二区三区 | 一区二区三区国产视频 | www.国产一区| 性高湖久久久久久久久3小时 | 色av一区二区| 91视频在线观看免费 | 国产精品视频在线播放 | 日操操夜操操 | 精品一二区| 亚洲女优在线播放 | 亚洲综合区 | 日韩高清在线观看 | 成人小视频在线观看 |