我进行了登录,设置了一个带有估算电子邮件地址值的cookie,因此在global.php文件中,它使用以下命令存储用户数据数组:
$email = $_COOKIE["PeopleHub"];
$getuserdata = mysqli_query($con, "SELECT * FROM Earth WHERE email='$email'");
$userdata = mysqli_fetch_array($getuserdata, MYSQLI_ASSOC);
cookie尚未设置,我知道这是因为我做了一个测试文件:
echo $_COOKIE["PeopleHub"];
它只是做了一个空白页。
登录代码(设置cookie的位置):
<?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, 然后再 发送任何标头。
从手册:
setcookie()定义要与其他HTTP标头一起发送的cookie。与其他标头一样,必须在脚本的任何输出之前发送cookie(这是协议限制)。这要求您在所有输出(包括和标记以及任何空格)之前都先调用此函数。
这意味着如果您希望按原样使用此代码,则需要研究输出缓冲。
<?php
ob_start();
echo "Hello\n";
setcookie("cookiename", "cookiedata");
ob_end_flush();
?>
根据的内容global.php
,这 可能
适合您。我所做的只是在setcookie()
调用之前删除了所有输出。如果global.php
其中包含任何空格或HTML输出,则将不起作用:
<?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>
问题内容: 我最近在属性“ Same Site”上阅读了“ RFC 6265”,我看了一些有关2016年4月的文章,Chrome 51和Opera 39已经实现了“ same-site”属性… 我想知道当前的PHP是否支持使用此属性创建cookie? 问题答案: [ 重要更新: 正如@caw在下面指出的那样,此hack 将在PHP 7.3中崩溃。现在就停止使用它,以保护自己免受不愉快的意外!或至少
我正在尝试设置cookie以从AWS Cloudfront查看私有内容 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-custom-policy.html 他们给出了一个示例cookie头: 我创建了以下php代码 但曲奇并没有设定好。只
问题内容: 我有一个页面test.php,其中包含以下代码: 我有一个页面,SetCookie.php,其中包含以下代码: 当单击test.php的按钮时,我使用XMLHttpRequest来调用我的SetCookie.php页面。该页面将执行,因为如果我向其添加回显,则会在xmlhttp响应中得到它。但是,TestCookie似乎没有设置。 如果在text.php中,我执行与SetCookie.
问题内容: '; ob_flush(); flush(); 我有专用的服务器,因此可以进行更改。我正在运行apache和nginx作为代理服务器。 问题答案: 您正在使用,而没有,因此没有需要冲洗的东西。 它还取决于Web服务器和代理及其设置。 您应该禁用Nginx的缓冲(添加到配置文件并重新启动Nginx) 另外,检查您的 php.ini是否 包含和。
我从安装了这个版本http://ffmpeg.org/releases/ffmpeg-2.5.3.tar.bz2 还尝试了yum版本,但对于youtube-dl来说还不够新。 我尝试了,PHP/Apache仍然找不到ffmpeg。 Apache用户在CentOS 6.5上运行PHP脚本<打电话给我的youtube dl。以根用户身份从php命令行调用php(使用FFmpeg) 调用my youtu
我已经配置了php.ini和sendmail.iniXAMPP发送电子邮件和它的工作罚款。现在,当我改变PHP中的代码使用SMTP它不工作...它使用相同的主机,相同的smtpSecurity,相同的端口,相同的电子邮件作为XAMPP和它不工作... 和我的php代码 错误:服务器-