我有一个fwrite()
功能来创建电子邮件激活链接。我需要为该链接使用cookie。首先我输入:
if ($filecheck == "F") {
$file = $getuseremailresult['username'] . rand() . rand() . ".php";
$filename = "../" . $file;
$link = "http://new.connectionsocial.com/users/LoginRegisterName/" . $file;
$handle = fopen($file, "w") or die("<h1 style='text-align: center; color: red;'>There has been an error creating the activation link. Please try again later.</h1>");
$content = "
include_once('ConnectionDB.php');
$cookie = sha1($_COOKIE['TemporaryCookie']);
?>
";
fwrite($handle, $content);
mysqli_query($connection, "UPDATE userfilescheck SET FileCreated='T'");
}
到目前为止一切都很好。但是,当我将其添加到$content
:
$cookie = sha1($_COOKIE['TemporaryCookie'];
整个页面确实消失了,没有任何代码可以工作。我应该逃避$cookie
值的一部分,还是只是解析错误?
答案 0 :(得分:2)
我不知道这是否是整个问题,但是......
$ cookie = sha1($ _ COOKIE [&#39; TemporaryCookie&#39;];
...缺少右括号。它应该是......
$ cookie = sha1($ _ COOKIE [&#39; TemporaryCookie&#39;]);
答案 1 :(得分:1)
将我的评论转换为答案。
首先在$cookie = sha1($_COOKIE['TemporaryCookie']);
之外声明$content
,同时确保已创建并存在Cookie,然后在$cookie=$cookie;
内执行$content
。
您可以尝试的另一件事是heredoc或nowdoc http://php.net/manual/en/language.types.string.php
正如你在评论中提到的那样,我确实想到了但在评论中没有提到的是用一条黑名单来逃避变量。