2016-12-17 65 views
-1

我是新進的PHP,我不知道該怎麼辦,請大家幫幫忙:d腓Formmailer與EXTERN關鍵詞過濾

 <?php 
$blacklist = fopen ("blacklist.txt", "a+"); 
$PHP_SELF = $_SERVER['PHP_SELF']; 

if (empty ($_POST['name']) == TRUE 

or 

empty ($_POST['id']) == TRUE 

OR 

empty ($_POST['baby']) == TRUE) 

{ 

echo '<form id="begleiter" action="'. $PHP_SELF .'#begleiter" method="POST">'; 

if ($_POST['name'] == "") { 

if ($_POST['gesendet'] == 1) { 

echo "<i>Bitte gib deinen Namen an &hearts;</i><br>";} 
} 

echo '<table width="300"><tr><td><b>Name:</b></td> <td><input type="text" name="name" value="'.$_POST['name'].'"></td>'; 

if ($_POST['id'] == "") { 

if ($_POST['gesendet'] == 1) { 

echo "<i>Du hast deine ID vergessen &hearts;</i><br>";} 
} 

echo '<td><b>ID:</b></td> <td><input type="text" name="id" value="'.$_POST['id'].'"></td></tr>'; 

if ($_POST['baby'] == "") { 

if ($_POST['gesendet'] == 1) { 

echo "<i>Dein Baby brauch einen Namen!</i><br>";} 
} 

while ($inhalt = fgets ($blacklist, 4096)) 
{ 
    $inhalt = trim ($inhalt); 

if ($_POST['baby'] == trim($inhalt)) { 
if ($_POST['gesendet'] == 1) { 
echo "<i>Der Name ist leider schon vergeben! Such dir bitte einen anderen aus!</i><br>";} 
} 

echo "$inhalt"; 
} 

fclose($blacklist); 

echo '<tr><td colspan="2" align="center"><b>Wie soll es heißen?:</b></td> <td colspan="2" align="center"><input type="text" name="baby" value="'.$_POST['baby'].'"></td></tr>'; 


echo '<input type="hidden" name="gesendet" value="1">'; 

echo '<tr><td colspan="4" align="center"><br><button type="submit" value=""></td></tr></table> 
</form>'; 
} 

else { 
$message = 
"Name: ".$_POST['name']."\n". 
"ID: ".$_POST['id']."\n". 
"Baby: ".$_POST['baby']; 

mail ("[email protected]", "Baby", $message, "From: ".$_POST['name']); 

echo "Danke für dein Formular, ".$_POST['name']."!"; 
} 

這是我的代碼,這是一個formmailer,它工作正常,但關鍵詞過濾... 你可以看到有一個過濾器,其中外部文件名稱「blacklist.txt」應該被整理出來,並且一個消息來了,這個名字已經給出了......我的問題是,我必須把在第一種情況下,如果表單不會在輸入字段中有名稱寫入blacklist.txt中時關閉消息......我不知道該怎麼做! D:我想要一些在黑名單上寫新名字的東西,但是這並不適用於xD,但這並不重要!

事先感謝! (和sry爲我的英語:/)

+0

你可以舉一個小例子 –

回答

0

我想黑名單的電子郵件地址。在一行中的一個地址:

[email protected] 
[email protected] 

這將加載文件內容到一個變量:

$blacklist = file_get_contents('blacklist.txt'); 

因爲在一行上每個地址,很容易進入陣列:

$blacklistArray = explode("\n", $blacklist); 

現在您可以檢查地址是否在陣列中:

in_array('[email protected]', $blacklistArray);