Board logo

主題: [php] [求助]PHP 變數清除 [打印本頁]

發表人: cheng822    時間: 2006-5-1 02:10 PM     主題: [求助]PHP 變數清除

大家好...:<-色誘

我想尋問一下PHP變數的方式.

我在<?php下定了一個global $u 用來當checkbox的陣列名字. 用變數$r從mySQL叫出資料當checkbox的value. 寫法如下: (用迴圈跑完checkbox)

CODE:
[Copy to clipboard]
for ($s=0; $s < xxxx; $s++){
INPUT TYPE=CHECKBOX NAME=u[] value=$r[0]
}
用此方法可以將打勾的checkbox指向資料庫(mySQL)是同一筆資料.

判斷為

CODE:
[Copy to clipboard]
if (isset ($_POST['email'])){ <-有一個按鈕的name是email
for($i = 0 ; $i < sizeof($u); $i++) { <-判斷有幾個checkbox被打勾(此$u是checkbox u[]的陣列
$link4 = @mysql_connect(xxxxxxxx) <-連至mySQL
@mysql_select_db(xxxxx) <-選取mySQL的database
$result4 = mysql_query("SELECT email FROM member_user WHERE User_Id  = '$u[$i]' ") <-選取email如果database的User_Id有和$u[$i] 一樣
while($e = mysql_fetch_array($result4)){ <-將選取到的email資料寫入陣列$e
$address = $e[0]; <-變數$address 指向陣列$e[i]
}<-end of while
$mailsend = mail($address, $subject, $body, "From: $from");<-用mailsend function送出email(除了$address變數之前有提到. 剩下的被我省略)
print("Email for $u[$i] is sent." . "<br>");<-顯示email有寄給誰
}<-end of for loop
}<-end of if
我這樣寫的功能是判定打勾的checkbox可以從database找到user的email address然後用迴圈將email一封一封的寄出.

以上都可以正常寄出且資料無誤. 只是我發現當我F5 reload整個webpage時$u的資料還是在所以下面還是有寫Email for xxx is sent. 我試過用unset(golbal());可是還是沒用. 請問各位我要如何在寄完email後把$u的資料清除?

感激不盡~
發表人: Vic    時間: 2006-5-1 03:12 PM

又是我 @"@

你可以試在

CODE:
[Copy to clipboard]
}<-end of for loop
下加

CODE:
[Copy to clipboard]
unset($_POST['email']);
不過估計這方法不一定有效, 因為在F5時, POST的variable會再傳送至server, 不能做unset的動作.

建議 在完成 email傳送後, redirect到另一頁



CODE:
[Copy to clipboard]
}<-end of for loop
下加

CODE:
[Copy to clipboard]
header("Location: sendok.php");
至於sendok.php只需要有

CODE:
[Copy to clipboard]
<?php
echo "email傳送完畢";
?>
那F5也只會 reload sendok.php這一頁
發表人: cheng822    時間: 2006-5-2 01:33 PM

感謝熊大~

用unset($_POST['email']);沒有用~~想一想應該沒有可以直接清變數的方法...像有時po完文按F5會重覆po的意思應該一樣~

我是查到用refresh的方式可以清掉變數用法應該跟熊大給的差不多. 寫法是:

CODE:
[Copy to clipboard]
<?php
}<-end of if
print("<META HTTP-EQUIV=Refresh CONTENT=\"3; URL=http://xxx.xxx.xxx/yyy.php\">");
?>
content=x 設0就會直接refresh,設1就是1秒後refresh. 依此類推.
URL指到目前的page因為這樣user就可以在同一個page繼續做下一個事件




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0