RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [php] [求助]PHP 變數清除   字型大小:||| 
cheng822
鐵驢友〔初級〕
等級: 4


今日心情

 . 積分: 28
 . 文章: 20
 . 收花: 17 支
 . 送花: 12 支
 . 比例: 0.71
 . 在線: 1452 小時
 . 瀏覽: 24654 頁
 . 註冊: 7171
 . 失蹤: 1007
 . taiwan
#1 : 2006-5-1 02:10 PM     只看本作者 引言回覆

大家好...:<-色誘

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

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

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

判斷為

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的資料清除?

感激不盡~



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9409
 . 精華: 28
 . 文章: 9949
 . 收花: 79211 支
 . 送花: 10986 支
 . 比例: 0.14
 . 在線: 2902 小時
 . 瀏覽: 187021 頁
 . 註冊: 8011
 . 失蹤: 19
 . 大熊國
#2 : 2006-5-1 03:12 PM     只看本作者 引言回覆

又是我 @"@

你可以試在

}<-end of for loop
下加

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

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



}<-end of for loop
下加

header("Location: sendok.php");
至於sendok.php只需要有

<?php
echo "email傳送完畢";
?>
那F5也只會 reload sendok.php這一頁



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
cheng822
鐵驢友〔初級〕
等級: 4


今日心情

 . 積分: 28
 . 文章: 20
 . 收花: 17 支
 . 送花: 12 支
 . 比例: 0.71
 . 在線: 1452 小時
 . 瀏覽: 24654 頁
 . 註冊: 7171
 . 失蹤: 1007
 . taiwan
#3 : 2006-5-2 01:33 PM     只看本作者 引言回覆

感謝熊大~

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

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

<?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繼續做下一個事件



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-4-27 11:37 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.021858 second(s), 6 queries , Qzip disabled