הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] שאלה בקשר למערך נגד ספאם. (https://hosts.co.il/forums/showthread.php?t=26516)

Elad-A 16-07-06 09:17

[PHP] שאלה בקשר למערך נגד ספאם.
 
שלום,
אני רוצה לעשות מערך שיכיל בתוכו את כל המילים שיצונזרו בהודעה כלשהי. עכשיו עשיתי ככה:

PHP קוד:

$spam 'זבל'
$spam str_replace('זבל','צונזר',$spam); 

עכשיו השאלה שלי היא כזאת:
איך אני יכול להכניס כמה מילים במערך כאילו במקום
PHP קוד:

$spam 'זבל'

זה יכיל כמה מילים.
תודה מראש.

lalamen 16-07-06 09:28

PHP קוד:

<?php

$spam 
= array("g""o");
$text str_replace($spam,"bla bla","google");
echo 
$text;

?>


Elad-A 16-07-06 09:33

איפה אני מכניס את כל המילים שאני רוצה לצנזר?
ולמה הגוגל משמש?
ולמה זה מדפיס לי ככה:

צונזרצונזרצונזרצונזרle

עריכה:

ואם אני רוצה לעשות שמתי שאני שולח פוסט זה יבדוק את המערך הזה?

lalamen 16-07-06 09:46

PHP קוד:

<?php

$spam 
= array("g""o");
$text str_replace($spam,"bla bla",$_POST['text']);
echo 
$text;

?>


Elad-A 16-07-06 09:52

בעע לא הולך לי

-VladK- 16-07-06 09:53

אולי תסביר מה הבעיה? איזו שגיאה זה מראה אם בכלל...

Elad-A 16-07-06 09:57

זה אמור להיות משהו כזה?
PHP קוד:

<?php
$spam 
= array("זבל""כלב"); 
$text str_replace($spam,"צונזר",$_POST['username']); 
echo 
"Hello, ".$_POST['username'];
?>


lalamen 16-07-06 09:59

תשנה את השורה הרביעית ל

PHP קוד:

echo "Hello, ".$text

מה שאני עשיתי
PHP קוד:

<?php

if(isset($_POST['text']))
{
$spam = array("זבל""בן");
$text str_replace($spam,"****",$_POST['text']);
echo 
$text;
}
else
{
echo 
"
<form action=\"form.php\" method=\"post\">
<textarea name=\"text\" rows=\"10\" cols=\"30\"></textarea>
<input type=\"submit\" name=\"send\" value=\"send\" />
</form>
"
;
}

?>


Elad-A 16-07-06 10:06

גם לא עובד.

lalamen 16-07-06 10:11

PHP קוד:

<?php

if(isset($_POST['username']))
{
$spam = array("כלב""זבל"); 
$text str_replace($spam,"צונזר",$_POST['username']); 
echo 
"Hello, ".$text;
}
else
{
echo 
"
<form action=\"form.php\" method=\"post\">
<textarea name=\"username\" rows=\"10\" cols=\"30\"></textarea>
<input type=\"submit\" name=\"send\" value=\"send\" />
</form>
"
;
}

?>


Elad-A 16-07-06 10:19

לא יודע למה אבל יש בעיה עם העברית... אם אני שם במערכך משהו בעברית זה לא מצנזר אבל באנגלית זה מצנזר טוב..
למישהו יש פיתרון?

lalamen 16-07-06 10:23

לי פועל עם עברית, אולי הקידוד של הדף שלך זה יוניקוד בגלל זה לא פועל לך.
http://wrzil.net/maor/update.php

Elad-A 16-07-06 10:28

צודק, זה באמת הייתה הבעיה. עכשיו יש משהו אחר תראה
PHP קוד:

$spam = array("זבל""כלב");  
$title str_replace($spam,"צונזר",$_POST['title']); 
$poster str_replace($spam,"צונזר",$_POST['poster']); 
$text str_replace($spam,"צונזר",$_POST['text']); 

זה מצנזר לי רק את ה title ואת כל השאר לא..

Elad-A 16-07-06 10:38

הסתדרתי עשיתי בסוף ככה:

PHP קוד:

$spam = array("זבל""כלב");
$row["poster"] = str_replace("<","<",$row["poster"]); 
$row["poster"] = str_replace(">",">",$row["poster"]);
$row["poster"] = str_replace($spam,"צונזר",$row["poster"]); 
$row["title"] = str_replace("<","<",$row["title"]); 
$row["title"] = str_replace(">",">",$row["title"]);
$row["title"] = str_replace($spam,"צונזר",$row["title"]); 
$row["text"] = str_replace("<","<",$row["text"]); 
$row["text"] = str_replace(">",">",$row["text"]); 
$row["text"] = str_replace($spam,"צונזר",$row["text"]); 

זה הרבה יותר טוב מהקודם ויותר נוח! תודה לכל מי שעזר! במיוחד ל lalamen . אפשר לנעול.


כל הזמנים הם GMT +2. הזמן כעת הוא 10:45.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ