我有2個腳本/頁面,都使用會話數據。這是PHP中的錯誤還是奇怪的行爲?
第1頁是一個包含一些數據的表格,其中一條數據是一個電子郵件地址。此頁面只有在$_SESSION['email'] == '[email protected]'
的情況下才可以訪問。在表格的每一行的第1頁上都有一個按鈕,用於向腳本/頁面2發送AJAX調用,該腳本通過電子郵件發送相應的電子郵件地址。
在第2頁有另一個檢查$_SESSION['email'] == '[email protected]'
。
然後它設置$email = $_POST['email']
並調用一個mail()函數。該腳本執行後,它會自動將$_SESSION['email']
更改爲$email
。
我已將變量名稱從$email
更改爲$sendToEmail
並解決了此問題。
我的問題是爲什麼它這樣做?這是一個錯誤還是一個功能?
編輯:
這是mail.php代碼在它的全部。
<?php
session_start();
define("_VALID_PHP", true);
require_once('init.php');
if ($_SESSION['email'] == '[email protected]') {
if (isset($_POST['iid'])) {
$iid = $_POST['iid'];
if (isset($_POST['email'])) {
$sendToEmail = $_POST['email'];
$query = $db->query("SELECT id FROM esns WHERE iid='$iid' AND status=0");
if (mysql_num_rows($query) > 0) {
$data['success'] = false;
$data['msg'] = "Email cannot be sent until all ENS's are checked for this invoice.";
}
else {
$query = $db->query("SELECT uid, md5 FROM invoice WHERE id='$iid'");
$row = $db->fetch($query);
$uid = $row['uid'];
$md5 = $row['md5'];
$query = $db->query("SELECT email FROM users WHERE id='$uid'");
$row = $db->fetch($query);
if ($row['email'] == $email) {
$clean = array();
$bad = array();
$invalid = array();
$query = $db->query("SELECT esn, status, carrier FROM esns WHERE iid='$iid'");
$headers = "From: [email protected]";
$subject = "New Message from site.com";
$body = "Hello";
$mail = mail($sendToEmail,$subject,$body,$headers);
if (!$mail) {
$data['success'] = false;
$data['msg'] = "There was an error sending the email.";
}
else {
$query = mysql_query("UPDATE invoice SET paid=2 WHERE id='$iid'");
$data['success'] = true;
}
}
else {
$data['success'] = false;
$data['msg'] = "There was an mismatch with the emails. The posted email does not belong to this invoice.";
}
}
}
else {
$data['success'] = false;
$data['msg'] = "Post data not sent/recieved correctly: `email` is no set.";
}
}
else {
$data['success'] = false;
$data['msg'] = "Post data not sent/recieved correctly: `iid` is no set.";
}
}
else {
$data['success'] = false;
$data['msg'] = "Your are not logged in as an administrator.";
}
echo json_encode($data);
?>
請發佈您的代碼。你可能在某個地方有一個「require」的地方。它不是PHP。 –
你在你的代碼中有語法錯誤 - > $ body =「Hello; – genesis
這是因爲我編輯了這個部分,不想發佈實際的$ body。 –