PDA

View Full Version : سوال: کمک در زمینه قرار دادن کد reCAPTCHA در فرم نظرات !



vpsserverx
چهارشنبه 25 اسفند 1389, 23:41 عصر
سلام دوستان :لبخندساده:

من از برنامه نویسی چیزی سرم نمی شه :گیج:

من می خوام توی یک فرم ارسال نظرات کد reCAPTCHA قرار بدم !

کسی می تونه کمکم کنه ؟

این فرم هست ! (البته نمی دونم غیر ازاین فایل چیز دیگری هم هست که مربوط به این کار بشه ؟)

<?php

define('SECURE',true);

/********/
error_reporting(0);

/********/
ini_set("display_errors","0");
ini_set("register_globals","0");

/********/
$start = isset($_GET['start'])?intval($_GET['start']):0;
if($start < 0)
$start = 0;

#-----
$date = date('y-m-d');
$name = isset($_POST['name'])?strip_tags($_POST['name']):'';
$email = isset($_POST['email'])?strip_tags($_POST['email']):'';
$website = isset($_POST['website'])?strip_tags($_POST['website']):'';
$comment = isset($_POST['comment'])?strip_tags($_POST['comment']):'';
$remember = isset($_POST['remember'])?1:0;
$private = isset($_POST['private'])?1:0;


#-----
$postid = isset($_GET['postid'])?intval($_GET['postid']):0;
if(!$postid)
die('Hack Attack!');

#-----
$servername = strtolower($_SERVER['SERVER_NAME']);
$servername = (substr($servername,0,4) == 'www.')?substr($servername,4):$servername;

#-----
$blogname = '';
$domain = '';


/*************************************/
include('../config.php');
include('../script/lib.functions.php');

#------
$link = mysql_pconnect($_VAR['MYSQL']['HOST'], $_VAR['MYSQL']['USER'], $_VAR['MYSQL']['PASSWD']);


/*************************************/
if(preg_match('#([a-z0-9-]+?)\.takblog\.ir#i', $servername, $array))
{
$blogname = $array[1];
$domain = '.takblog.ir';
}
else
{
$query = sprintf("SELECT * FROM `users` WHERE `blogdomain` = '%s'",mysql_real_escape_string($servername));
$Result = mysql_db_query($_VAR['MYSQL']['DBNAME'], $query, $link);
if($Row = mysql_fetch_array($Result))
{
$blogname = $Row['username'];
$domain = $servername;
}
}

/*************************************/
$query = sprintf("SELECT blog_posts.*
FROM users, blog_posts
WHERE
users.username = '%s' AND
blog_posts.blogid = users.id AND
blog_posts.id = '%s'",

mysql_real_escape_string($blogname),
mysql_real_escape_string($postid));

$Result = mysql_db_query($_VAR['MYSQL']['DBNAME'], $query, $link);
if(!$blogPost_Row = mysql_fetch_array($Result))
die('Hack Attack!');


/*********/


if(isset($_GET['action']) && $_GET['action'] == 'clearcookie')
{

setcookie('name', '', time()*2, '/', $domain);
setcookie('email', '', time()*2, '/', $domain);
setcookie('website', '', time()*2, '/', $domain);
setcookie('remember', '', time()*2, '/', $domain);

header("location:comment.php?postid={$postid}");

}


/*************************************/
if(isset($_POST['post']))
{

if($remember)
{
setcookie('name', $name, time()*2, '/', $domain);
setcookie('email', $email, time()*2, '/', $domain);
setcookie('website', $website, time()*2, '/', $domain);
setcookie('remember', 'checked="checked"', time()*2, '/', $domain);

}
else
{
setcookie('name', '', time()*2, '/', $domain);
setcookie('email', '', time()*2, '/', $domain);
setcookie('website', '', time()*2, '/', $domain);
setcookie('remember', '', time()*2, '/', $domain);
}

if($blogPost_Row['commenting'] >= 2)
header("location:comment.php?postid={$postid}&cc=1");

if(empty($name))
$name = 'ميهمان';

if(empty($comment))
$error = 'متن مورد نظر وارد نشده است';

else
{

$query = sprintf("INSERT INTO `blog_comments`
VALUES('0', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
mysql_real_escape_string((($private)?'2':$blogPost _Row['commenting'])),
mysql_real_escape_string($blogPost_Row['blogid']),
mysql_real_escape_string($postid),
mysql_real_escape_string($date),
mysql_real_escape_string($name),
mysql_real_escape_string($email),
mysql_real_escape_string($website),
mysql_real_escape_string($comment));

$Result = mysql_db_query($_VAR['MYSQL']['DBNAME'], $query, $link);

/*************/
if($blogPost_Row['commenting'] == 1)
{
header("location:comment.php?postid={$postid}&nc=1&ma=1");
}
else
{
$query = sprintf("SELECT
blog_posts.*,
COUNT(comments.id) AS `commentscount`

FROM
blog_posts

LEFT JOIN
blog_comments comments
ON
comments.accept = '0'
AND comments.postid = blog_posts.id


WHERE
blog_posts.id = '%s'
AND
blog_posts.blogid = '%s'

GROUP BY blog_posts.id

ORDER BY
blog_posts.id DESC",
mysql_real_escape_string($postid),
mysql_real_escape_string($blogPost_Row['blogid']));

$Result = mysql_db_query($_VAR['MYSQL']['DBNAME'], $query, $link);
if($Row = $Row = mysql_fetch_array($Result))
{
include('../class/class.commentscount.php');
$commentscount = new CommentsCount(
$blogname,
$Row['id'],
$Row['catid'],
date('Y-m',$Row['time']),
$Row['commentscount']
);
$commentscount->_update();

}

header("location:comment.php?postid={$postid}&nc=1");
}

}
}

/*************************************/

$query = "SELECT COUNT(`id`) as `count` FROM `blog_comments` WHERE `postid` = '{$postid}' AND `accept` = '0' ";
$Result = mysql_db_query($_VAR['MYSQL']['DBNAME'], $query, $link);
$Row = mysql_fetch_array($Result);
$count = $Row['count'];
$start = ($start > $count)?0:$start;

header('Content-type: text/html; charset: utf-8');

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?=$servername?></title>
<style type="text/css">
<!--
a {
font-family: tahoma;
font-size: 11px;
color: #006699;
}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #006699;
}
a:hover {
text-decoration: none;
color: #006699;
}
a:active {
text-decoration: none;
color: #006699;
}
body,td,th {
font-family: tahoma;
font-size: 11px;
color: #333333;
}
input {
color:#666666;
padding:2px;
font-family:tahoma;
font-size:11px;
background-position:right;
background-repeat:repeat-x;
}
body {
background-color: #F8F8E9;
}
-->
</style></head>

<body onload="<?=isset($_GET['cc'])?"alert('نظر سنجي توسط مدير غير فعال شده است');":''?>">
<div style="height:190px; overflow:auto">
<?php
if(isset($error))
{
?>
<table width="440" border="0" align="center" cellpadding="2" cellspacing="1" style="border:1px solid #CC3333">
<tr>
<td height="60" align="center" bgcolor="#CC3333" style="color:#FFFFFF;"><?=$error?></td>
</tr>
</table>
<br />
<?php
}
?>
<?php
if($count)
{

$query = "SELECT * FROM `blog_comments` WHERE `postid` = '{$postid}' AND `accept` = '0' ORDER BY `id` DESC LIMIT {$start}, 10";
$Result = mysql_db_query($_VAR['MYSQL']['DBNAME'], $query, $link);
while($Row = mysql_fetch_array($Result))
{
?>
<br />
<table width="440" border="0" align="center" cellpadding="5" cellspacing="1" style="border:1px solid #C9C95A">
<tr>
<td align="right" bgcolor="#E7E7B6" dir="rtl">
<div style="float:left; width:100px;" align="left">
<?=__etop(__pdate($Row['date'],1,1))?>
</div>
نويسنده :
<?=$Row['name']?>
</td>
</tr>
<tr>
<td height="50" valign="top"><div align="justify" dir="rtl"><?=$Row['comment']?></div></td>
</tr>
<tr>
<td valign="top" bgcolor="#FFFFCC">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<?=empty($Row['email'])?"":"<td> [ <a href='mailto:{$Row['email']}' >ارسال ايميل</a> ] </td>"?>
<?=empty($Row['website'])?"":"<td> [ <a href='".(substr(strtolower($Row['website']),0,7) == 'http://'?$Row['website']:"http://{$Row['website']}")."' target='_blank' >آدرس وبسايت</a> ] </td>"?>
</tr>
</table>
</td>
</tr>
</table>
<?php
}

if($count > 10)
{
?>
<table width="440" border="0" align="center" cellpadding="2" cellspacing="1">
<tr>
<td height="40px">
<div align="justify" dir="rtl">
<?php
for($i = 0; $i < $count; $i += 10)
{
echo "&nbsp;<a href='?postid={$postid}&start={$i}'>".(($i/10)+1)."</a>&nbsp;";
}
?>
</div></td>
</tr>
</table>
<?php
}
}
else
{
?>
<table width="440" border="0" align="center" cellpadding="2" cellspacing="1" style="border:1px solid #C9C95A">
<tr>
<td height="100" align="center" bgcolor="#E7E7B6" style="background-repeat:repeat-x"> نظري ارسال نشده است </td>
</tr>
</table>
<?php
}
?>

<?php
if($blogPost_Row['commenting'] >= 2)
{
?>
<br />
<br />
<table width="440" border="0" align="center" cellpadding="2" cellspacing="1" style="border:1px solid #C9C95A">
<tr>
<td height="60" align="center" bgcolor="#E7E7B6" style="background-repeat:repeat-x"> ارسال نظر توسط مدير غير فعال شده است </td>
</tr>
</table>
<?php
}else{
?>
</div>
<form id="form1" name="form1" method="post" action="comment.php?postid=<?=$postid?>" onsubmit="document.getElementById('btnSubmit').disabled = 'disabled'" style="display:inline;">
<br />
<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td dir="rtl" align="center">
<fieldset style="border:1px solid #C9C95A">
<legend>ارسال نظر</legend>
<br />
<table width="380" border="0" align="center" cellpadding="2" cellspacing="0" dir="ltr">
<tr>
<td colspan="2" align="right"><input name="name" dir="rtl" type="text" id="name" value="<?=isset($_COOKIE['name'])?$_COOKIE['name']:''?>" /></td>
<td width="78" align="right">: نام</td>
</tr>
<tr>
<td colspan="2" align="right"><input name="email" type="text" id="email" value="<?=isset($_COOKIE['email'])?$_COOKIE['email']:''?>"/></td>
<td align="right">: آدرس ايميل </td>
</tr>
<tr>
<td colspan="2" align="right"><input name="website" type="text" id="website" value="<?=isset($_COOKIE['website'])?$_COOKIE['website']:''?>"/></td>
<td align="right">: آدرس وبسايت </td>
</tr>
<tr>
<td colspan="2" align="right"><textarea name="comment" dir="rtl" cols="50" rows="4" id="comment" style="font-family:tahoma; font-size:11px; color:#666666"></textarea></td>
<td align="right" valign="top">: نظر شما </td>
</tr>
<tr>
<td colspan="2" align="right" dir="rtl">
<input name="remember" type="checkbox" id="remember" value="checkbox" <?=isset($_COOKIE['remember'])?$_COOKIE['remember']:''?> />
من را به ياد داشته باش [ <a href="comment.php?postid=<?=$postid?>&action=clearcookie">حذف مشخصات</a> ] </td>
<td align="right">&nbsp;</td>
</tr>
<tr>
<td width="85" height="35" align="right" valign="bottom"><input name="post" type="hidden" id="post" value="<?=$postid?>" />
<input type="submit" name="Submit" value=" ارسال " style="cursor:pointer; background-color:#808040; color:#FFFFFF; border:1px solid #757535;" id="btnSubmit" /></td>
<td width="205" align="right" valign="top">
ارسال پيام به صورت خصوصي
<input name="private" type="checkbox" id="private" value="checkbox" /></td>
<td align="right">&nbsp;</td>
</tr>
</table>
<br />
</fieldset>
</td>
</tr>
</table>
</form>
<?php
}
?>
<?php
if(isset($_GET['nc']))
{
?>
<script language="javascript" type="text/javascript">
<?php
if(isset($_GET['ma']))
{
?>
alert('نظر شما با موفقيت ثبت و پس از تائيد توسط مدير به نمايش در خواهد آمد');
<?php
}else{
?>
alert('نظر شما با موفقيت ثبت شد');
<?php
}
?>
</script>
<?php
}
?>
</body>

vpsserverx
پنج شنبه 26 اسفند 1389, 13:17 عصر
کسی نبود کمک کنه ؟

vpsserverx
پنج شنبه 26 اسفند 1389, 17:15 عصر
واقعا به کمکتون احتیاج دارم !
لطفا اگر کسی بلده کمکم کنه !
با تشکر

رضا قربانی
پنج شنبه 26 اسفند 1389, 17:57 عصر
می خوایی چه عملی واست انجام بده ؟ یه توضیح از چیزی که می خوایی بگو

یه چیزی هم از من : هر موقع سوالی داری کدهات رو به این صورت یکسره نذار - هر کسی بیاد و ببینه در میره ، از جمله من :لبخند:

sargardoon
پنج شنبه 26 اسفند 1389, 22:05 عصر
دوست عزیز اگر توی همین فورم سرچ کنی چندین تاپیک در همین ضمینه هست،
من خودم به این صورت استفاده کردم: یک فایل به اسم Captch.php درست کردم و تمامی کدها رو توش نوشتم، بعد در هر کجا از برنامه که میخواستم استفاده کنم بااستفاده از تگ image اون نمایش میدم مثلا

<img src="captch.php" width="150" height="40" />

بعد هم توی یه تکست باکس چک میکنم که آیا درسته یا نه

موفق باشید.

vpsserverx
جمعه 27 اسفند 1389, 02:13 صبح
دوستان کد Captch رو نمی خوام منظورم reCaptch هست !
یک api از گوگل هست که کار همین Captch را می کنه !
می خوام بدونم چطور توی این فرم خودم قرارش ؟

sargardoon
جمعه 27 اسفند 1389, 03:10 صبح
دوستان کد Captch رو نمی خوام منظورم reCaptch هست !
یک api از گوگل هست که کار همین Captch را می کنه !
می خوام بدونم چطور توی این فرم خودم قرارش ؟

دوست عزیز برای گذاشتن recaptch میتونی به آدرس های زیر مراجعه کنی
Secure PHP Part 3 ( Captcha on the form) (http://www.youtube.com/watch?v=Pn2ZSiXHx0E&feature=related) آموزش به صورت ویدیو به زبان انگلیسی
Using the ReCaptcha library with PHP (http://www.brighthub.com/hubfolio/matthew-casperson/articles/54780.aspx) آموزش متنی به زبان انگلیسی

Using reCAPTCHA with PHP (http://code.google.com/apis/recaptcha/docs/php.html) سایت گوگل

اگر توی این فورم هم جستجو کنی تاپیکی هستش.
اگر آموزشهای بیشتری هم میخواستی میتونی توی یوتیوپ جستجو کنی، امیدوارم که مشکلت حل بشه، اگر باز هم سوالی داشتی در خدمتیم

vpsserverx
شنبه 28 اسفند 1389, 11:09 صبح
خیلی ممنونم از پیشنهادتون !
رفتم اون آموزشها را دیدم !
ولی متاسفانه چون همون طور که قبلا عرض کردم از برنامه نویسی چیزی نمی دونم نتیجه ای نگرفتم !
یعنی وقتی کد را توی فرم می گذارم در مرحله اول اصلا تصویر دیده نمی شه !
اگر یک نفر لطف کنه دقیق این را توضیح بده به فارسی خیلی خوبه ! چون هیچ مرجع فارسیی برای این کار ندیدم و فکر هم نکنم باشه !
من پیشنهاد می کنم یکی از اساتید یک تاپیک مخصوص این موضوع بزنه !
چون موضوع مهمی هست و این طور که من شنیدم عبور از این کد تقریبا غیر ممکن هست !
با تشکر

shahriyar3
شنبه 28 اسفند 1389, 18:36 عصر
برو تو سايت گوگل اسم سايتتو بده يه key مخصوص بهت ميده بعد فايل هاي مورد نياز و از گوگل دانلود كن بغلش دايومنت داره كامله كه طرز استفاده شو نوشته .
بيشتر مراحلش مثل همين هائي كه دوستان بالائي گفتن هست .

vpsserverx
شنبه 28 اسفند 1389, 20:03 عصر
بله داکیومنتش را دیدم !
عرض کردم که توی فایل پی اچ پی خودم هم قرارش دادم ولی اصلا اون تصویره دیده نمی شه توی فرم که بخوام بقیه مراحلش را انجام بدم !
در مورد اون که گفتم یک نفر آموزش فارسی بذاره ، منظورم این بود که مرجعی بشه برای بقیه که راحت بتونن ازش استفاده کنن و اگر کسی مثل من سوالی داشت بتونه اونجا بپرسه !

shahriyar3
یک شنبه 29 اسفند 1389, 18:16 عصر
بله داکیومنتش را دیدم !
عرض کردم که توی فایل پی اچ پی خودم هم قرارش دادم ولی اصلا اون تصویره دیده نمی شه توی فرم که بخوام بقیه مراحلش را انجام بدم !
در مورد اون که گفتم یک نفر آموزش فارسی بذاره ، منظورم این بود که مرجعی بشه برای بقیه که راحت بتونن ازش استفاده کنن و اگر کسی مثل من سوالی داشت بتونه اونجا بپرسه !
توش 2 تا مثال داره براي راه اندازيش از همونا استفاده كن
اول helper و فراخواني كن

$this->load->helper('recaptchalib');
بعد كليد عمومي براي نمايش توي فرمت

<?php echo recaptcha_get_html($public_key); ?>