Deprecated: Function ereg() is deprecated in /data/m/4/m4jco.net/web/index.php on line 55

Deprecated: Function ereg() is deprecated in /data/m/4/m4jco.net/web/index.php on line 60

Deprecated: Function ereg() is deprecated in /data/m/4/m4jco.net/web/index.php on line 66

Deprecated: Function ereg() is deprecated in /data/m/4/m4jco.net/web/index.php on line 73
Internet - Ako na náhodne generovanú CAPTCHU v K:CMS - M4jco.net - PSP, Meliško, CMS, Mobile, Java, Homebrew, Download

.:[Kliknutím na textovu reklamu prispejete k chodu stránky]:..:[Registrácia Vám pridá lepšie možnosti pobytu na webe!]:.

Internet - Ako na náhodne generovanú CAPTCHU v K:CMS

Ako na náhodne generovanú CAPTCHU v K:CMSV tomto článku vám ukážem ako si urobiť náhodne generovanú CAPTCHU na webe, ktorý beží na redakčnom systéme K:CMS. Návod bude dosť jednoduchý, iba skopírujete dva súbory na FTPčko a upravíte súbor index.php, nič viac, nič menej.
Takže na začiatok si stiahnite tento pack ktorý obsahuje font a súbor ktorý generuje CAPTCHU http://www.m4jco.net/captcha.zip

Následovne tento archív rozbalíme, a súbory z neho dáme na spomínane FTP. Potom si otvoríme v textovom editore súbor index.php a nájdete si tento kod:

echo "$lang_index_discussion_for_the_article ".stripslashes($article["title"]).":</p>\n\n";

A od tohoto kodu si označíme riadky až po tento kod:

echo "<input type=\"submit\" name=\"submit\" value=\"$lang_button_save\" /></div>

</form>\n\n";

Je to dosť nepresne napísane, ale uvidíte ďalej :-)

Celý tento kod označený už len jednoducho prepíšeme týmto:

echo "$lang_index_discussion_for_the_article ".stripslashes($article["title"]).":</p>\n\n";

if ($submit!="") {
//if ($nick!="" AND $text!="" AND $web=="") {
//spamfilter edit, snad :)
session_start();
if ( ($nick!="") AND ($text!="") AND ($web=="") and ( ($_POST['spam']) == ($_SESSION["cislo"]) ) ) {
if ($_COOKIE["posted_comment"]!=$text) {

// pokud je nekdo prihlasen, ulozime jeho id
if ($_COOKIE["user_id"]!="") { $registered_user=1; $nick=$_COOKIE["user_id"]; } else {
$nick=strip_tags($_POST["nick"]);
$nick=addslashes($nick);
$nick=str_replace("&", "&amp;", $nick);
$registered_user=0; }

$text=htmlspecialchars($_POST["text"], ENT_NOQUOTES);
$text=str_replace("\r\n", "<br />", $text);
$text=addslashes($text);

if ($use_emoticons==1) {
$text=str_replace("", "<img src=\"".rootURL()."components/images/emoticons/", $text);
$text=str_replace("
", ".gif\" alt=\"Emoticon\" />", $text);
}

$sql=db_query("INSERT INTO kcms_comments (article, added, author, text, confirmed, user, ip) values ('".$article["id"]."', '".time()."', '$nick', '$text', '0', '$registered_user', '".$_SERVER["REMOTE_ADDR"]."')");

echo "<div class=\"popup-success\">$lang_alert_success</div>";

}

} else {

echo "<div class=\"popup-error\">$lang_alert_empty_inputs</div>";

}

}

$i=0;
$print=db_query("SELECT id, article, added, author, text, user FROM kcms_comments WHERE article='".$article["id"]."' ORDER by added");
while (list($id, $article, $added, $author, $text, $user) = db_fetch_row($print)) {
$i++;
// komentar registrovaneho uzivatele
if ($user==1) {
$author=db_query("SELECT login FROM kcms_users WHERE id='$author'");
$author=db_fetch_array($author);
}

echo "<div class=\"comment-line\"><div class=\"cl-left\"><span>$i.</span> ";
if ($user==1) { echo "<a href=\"/profiles/".$author["login"]."/\">".$author["login"]."</a>"; } else { echo (stripslashes($author)); }

echo "</div><div class=\"cl-right\">".date("j.n.Y [H:i]", $added)."</div>\n\n<div class=\"cb2\"><!-- --></div>\n\n</div>\n\n<p class=\"comment-text\">".stripslashes($text)."</p>\n\n";
}

if ($i==0) { echo "<p><em>$lang_index_this_article_wasnt_commented_yet</em></p>\n\n"; }

echo "<p class=\"discussion\">$lang_index_add_comment:</p>\n\n";

if ($login_for_comments==1) {

echo "<p>$lang_index_you_must_be_logged_in</p>\n\n";

} else {

if ($url_type=="static") { $url="../../"; }
if ($url_type=="dynamic") { $url="./"; }

echo "<script src=\"$url"."components/emoticons.js\" type=\"text/javascript\"></script>

<form action=\"".articleURL($s, $a)."\" method=\"post\">

<div><strong>Nick:</strong><br /><input type=\"text\" name=\"nick\" value=\"";
if ($userinfo["login"]=="") { echo (stripslashes($_POST["nick"])); } else { echo ($userinfo["login"]); }
echo "\" style=\"width: 150px;\"";
if ($_POST["submit"]!="" AND $_POST["nick"]=="") { echo " class=\"input-error\""; }
echo " /><br />
<strong>$lang_form_text:</strong><br /><textarea name=\"text\" id=\"text\" cols=\"\" rows=\"\" style=\"height: 200px; width: 500px;\"";
if ($_POST["submit"]!="" AND $_POST["text"]=="") { echo " class=\"input-error\""; }
echo ">".stripslashes($_POST["text"])."</textarea><br />";

if ($use_emoticons==1)

$dir=opendir("./components/images/emoticons/");
while ($file=readdir($dir)){
$file=explode(".", $file);
if ($file[1]=="gif") {
echo "\n<img style=\"cursor: pointer;\" src=\"".rootURL()."components/images/emoticons/".$file[0].".gif\" alt=\"<".$file[0].".gif./]\" onclick=\"addEmoticon('$file[0]');\" /> ";
}
}

echo "
<input type=\"text\" name=\"web\" value=\"\" style=\"display: none;\" />
<br><hr><strong>Pre bezpečnosť opíšte znaky ktoré vidíte nižšie.</strong>
<br>
<img src= /image.php />
<br>
<input type=\"text\" name=\"spam\" /";
if ( ($submit!="" AND $_POST["spam"]=="") or ($_POST['spam'] != $_SESSION["cislo"]) ){ echo " class=\"input-error\""; }
echo ">
<input type=\"submit\" name=\"submit\" value=\"Odoslať komentár\";

/>
<br>* Na obrázku sa nachádzaju len malé písmena a čísla.
</div>

</form>\n\n";

Následne subor index.php uložíme a dáme na FTP. Malo by to fungovať, ale robil som tento návod dosť na rýchlo tak je možné že tam je niekde chyba a že to nemusí isť tak ako má. Pokial by boli problémy tak napíšte do komentárov.

Ešte dodám jednu vec, že pokial vykonáte túto zmenu, tak stratíte funkciu "registrovaný uživatel nemusí opisovať CAPTCHU" ale tento problém sa dá lahko napraviť, pokial by bol teda záujem tak by som dopísal aj návod na toto.

Pokial by niekto ešte furt nevedel tak tu má už upravený súbor index.php z verzie 1.43
http://www.m4jco.net/index.zip

Diskusia pre článok Ako na náhodne generovanú CAPTCHU v K:CMS:

24.08.2008 [17:01]

M4jco
Mne smajlíky išli, ale prestali mi isť ked som prešiel na novú verziu. Vtedy mi stačilo len updatnuť subory a databazu z nového systému a v administrácii povoliť smajlov. Môžeš mi veriť, že presne tento istý kod mám na webe aj ja a ako vidíš smajlíky mi fungujú Emoticon

2. sucho
24.08.2008 [14:33]

Neregistrovanýpo zmene nefungujú smajlíky ...ako to bolo aj tu na webe Emoticon

 1

Pridať komentár:

Nick:

Text:

Poznámka: Nadmerné používanie smajlíkov bude viesť k zmazaniu komentáru. Na vyjadrenie pocitu stačí použiť jednoho smajlika, popripade dvoch.

[.smile1.gif./] [.smile11.gif./] [.smile12.gif./] [.smile13.gif./] [.smile14.gif./] [.smile3.gif./] [.smile4.gif./] [.smile5.gif./] [.smile6.gif./] [.smile7.gif./] [.smile9.gif./]

Užívateľ:
Heslo:
Nemáte účet?

Veríte že fórum na tomto webe bude mať význam?

Áno! myslím si že to je správna voľba (120) Myslím si že to nebude mať taký úspech ako by som očakával (5) Nie, je to hlúposť. Radšej budem komentovať články ako prispievať do fóra (22)

Celkom hlasov: 147






Almo web - web o počítačoch

© 2008 M4jco.net v3 | Autor si vyžaduje zákaz kopírovania týchto článkov | Vaša IP je 38.107.179.214
Vygenerované za 0.059 sekúnd | RSS články | RSS komentáre