0

ユーザーがシステムにフィードバックを送信できるようにする Web サイトを開発しています。送信用のテキストエリアとボタンを使用して、フィードバック フォームを作成しました。最も重要なことは、ユーザーが送信をクリックしたときです。ユーザーが入力してほしくない単語を入力した場合、そのフィードバックはシステムに送信されません。送信をクリックする前に、その単語を削除するようにユーザーに警告します。

今から、ユーザーがフィードバックフォームに入力してほしくない単語を入力した場合に警告を表示する簡単なコードを作成するだけです。

これが私のコードです

<form action="main.php" method="post">
    <textarea cols='10' rows='5' name='text'></textarea>
    <br/>
    <input type='submit' name='add' Value='Add to list' />
</form>

<?php
if (isset($_POST['add'])) {
    $banned = array('dog', 'cat', 'cow'); // Add more
    $entry = $_POST['add'];
    foreach($banned as $word): if (strpos($entry, $word) !== false) die('Contains banned word');
    endforeach;
}
?> 

それは仕事ではありません。誰でもこの問題を解決するのを手伝ってもらえますか?

少し早いですがお礼を。

4

6 に答える 6

2

のようにしてみてください

$entry = $_POST['text'];    // Not $_POST['add'];
foreach ($banned as $word):
    if (strpos($entry, $word) !== false) {
        echo 'Contains banned word';
        exit;
    }
endforeach;

$entryテキストボックスの値になります$ _POST ['text'] not $_POST['add']

于 2013-08-29T05:17:13.977 に答える
0

in_array 関数を使用http://php.net/manual/ru/function.in-array.php

$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
于 2013-08-29T05:18:33.083 に答える
0

テキストが入力されるたびにサーバーにコードを送信する代わりに、クライアント側で Javascript を使用し、検証に合格した場合にのみコードを送信することをお勧めします。

HTML

<form action="main.php" method="post">
<input type="text" onchange="validate_function(this)">
 //works with text area too.
<input type='submit' name='add' Value='Add to list' />
</form>

Javascript

validate_function(a)
{
r=0;
banned = array('dog', 'cat', 'cow');
var lines = a.val().split('\n');
for(var x=0;x<banned.length;x++) 
{    
for(var i = 0;i < lines.length;i++)
{
if (lines[i].indexOf(banned[x]) > -1)
 {
      r=1;
      break;
}
 else 
{

}

}
if(r==1)
break;
}
if( r==0)
return true;
else 
return false;
}
于 2013-08-29T05:19:12.327 に答える
0
<?php
if(isset($_POST['add'])){
    $banned = array('dog', 'cat', 'cow'); // Add more
    $entry = $_POST['text'];

    if(in_array($entry,$banned))
    {
        die('Contains banned word');
    }
}
?>
于 2013-08-29T05:21:54.450 に答える
0

単語の検閲を行いたい。これを行うには、str_ireplace() 関数を使用します。以下にサンプルコードを示します。この関数が行うことは、単語を別の単語に置き換えることです。

<?php
$find=array('galaxy', 'planet', 'moon');
$replace=array('spiral', 'earth', 'satelite');
if (isset($_POST['userinput'])&&!empty($_POST['userinput']))
{
$user=$_POST['userinput'];
$user_new=str_ireplace($find, $replace, $user);
echo $user_new;

}
?>
<hr>
<form action="index.php" method="POST">
<textarea cols="50" rows="10" name="userinput"><?php echo $user; ?></textarea><br />
<input type="submit" value="submit" />
</form>
于 2013-08-29T05:23:37.020 に答える