PDA

View Full Version : سوال: چند سئوال در مورد php و html



rezablue
چهارشنبه 03 مهر 1392, 15:34 عصر
سلام دوستان
من یک چند تا مشکل دارم لطفا دوستان کمک کنند ممنون میشم

1 - کد کپچایی درست کردم برای جلوگیری از تقلب
اگر کاربری بار اول فرمو پر کنه و کد کپچا رو بزنه درست کار میکنه و برمیگرده به همون صفحه کد کپچا حالا اگه صفحه رو رفرش کنم یک گزینه میاد به این شکل :

111178

اگر روی گزینه ارسال مجدد کلیک بشه بدون نیاز به وارد کردن کد کپچا دوباره کار قبلی انجام میشه چجوری میشه اینو درست کرد و اشکال از چی هستش ؟

2 - زمانی که رو فیلد وارد کردن کد کپچا کلیک میکنم یک لیست کشوئی باز میشه که میخوام این لیست هم باز نشه

111179

البته نمیدونم مشکلش از پی اچ پی هست یا اچ تی ام ال !
دوستان برنامه نویس نیستم برای همین کمی روون تر آموزششو بدید
ممنون

Tarragon
چهارشنبه 03 مهر 1392, 15:53 عصر
خب این میگه اطلاعات رو از اول بفرسته یا نه؟ این یه چیز درستیه و مشکلی نداره
دومی هم با autocomplete قابل انجامه :
<form action="demo_form.asp">
First name:<input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
E-mail: <input type="email" name="email" autocomplete="off"><br>
<input type="submit">
</form>

mohammad hoseini
چهارشنبه 03 مهر 1392, 15:54 عصر
شما از POST استفاده میکنید و هنگام رفرش تمام مرورگر ها این پیغام هارو نشان میدهند

rezablue
چهارشنبه 03 مهر 1392, 16:06 عصر
خب این میگه اطلاعات رو از اول بفرسته یا نه؟ این یه چیز درستیه و مشکلی نداره
دومی هم با autocomplete قابل انجامه :
<form action="demo_form.asp">
First name:<input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
E-mail: <input type="email" name="email" autocomplete="off"><br>
<input type="submit">
</form>


مورد دوم حل شد خیلی خیلی ممنون
مورد اول هیچ راهی نداره ؟ یا کد من مشکل داره ؟
چون اینجوری بدون کد کپچا طرف صفحه رو رفرش میکنه و ارسال مجدد رو میزنه و توی سایت من امتیاز کسب میکنه !
نمیشه جوری کد رو ویرایش کرد یا کاری کرد این مشکل حل بشه ؟ چون خیلی برام مهمه و کاربردی


شما از POST استفاده میکنید و هنگام رفرش تمام مرورگر ها این پیغام هارو نشان میدهند

منظورتون از post رو نفهمیدم
هیچ راهی نداره ؟ با تغییر کد یا چیز دیگه ای ؟

Tarragon
چهارشنبه 03 مهر 1392, 16:19 عصر
خب اگر captcha شما درست بودید اونو از SESSION ها پاک کنید که دیگه درست نباشه.

rezablue
چهارشنبه 03 مهر 1392, 16:20 عصر
خب اگر captcha شما درست بودید اونو از SESSION ها پاک کنید که دیگه درست نباشه.

والا من مبتدی هستم لطفا رون تر همراه با کد بگید ممنون میشم

Tarragon
چهارشنبه 03 مهر 1392, 16:33 عصر
سلام
کد PHP خودتون رو بزارید تا راهنمایی کنیم.

rezablue
چهارشنبه 03 مهر 1392, 17:22 عصر
بفرمایید :





<?php



$error = "N";


if(isset($_POST['submit']))

{

if( ($_POST['captcha']) != ($_POST['user_captcha']) ){unset($_SESSION['user_captcha']);
unset($_SESSION['captcha']);
unset($_SESSION['submit']);
echo('<p class="error"> درست است </p>');

if($xACCOUNT[0] == 0){
mysql_query("UPDATE `users` SET `game` = `game` - '1' WHERE `xeon_users`.`id` = {$xUS['id']} LIMIT 1;");
}

}



else {
echo('<b> غلط است </b><br>');

if($xACCOUNT[0] == 0){
mysql_query("UPDATE `users` SET `game` = `game` + '1' WHERE `xeon_users`.`id` = {$xUS['id']} LIMIT 1;");
}





}



$error = "Y";





}

function Random(){
$length=1; // تعداد حروف و اعداد که برای کاربر نمایش داده میشوند
$str = "1";
$max = strlen($str)-1;
$random="";
for ($i=0; $i<$length; $i++){
$number = mt_rand(0,$max);
$random.= substr($str,$number,1);}
return $random;
}
$random = Random();

?>








</b></b></b></br>



<fieldset>
<legend>

<br />
عدد:
&nbsp;<?php echo $random;?>&nbsp;
<br />
امتیاز بازی:
&nbsp;<?php echo number_format($xUS['game']); ?>&nbsp;<br>
<br />
</legend>
<form action="" method="post">

<p>شما باید در فیلد زیر عدد مورد نظر خود را وارد کنید</p>
<input type="text" name="user_captcha" style="direction:ltr" autocomplete="off"/>
<input type="hidden" value="<?php echo $random; ?>" name="captcha" />
<br />
<input type="submit" name="submit" value="ارسال" />
</form>

</fieldset>

Tarragon
چهارشنبه 03 مهر 1392, 17:30 عصر
سلام
خب اصول کد زنی شما اشتباهه شما باید عدد رو در $_SESSION ذخیره کنید نه در یه input بفرستید.

rezablue
چهارشنبه 03 مهر 1392, 17:40 عصر
سلام
خب اصول کد زنی شما اشتباهه شما باید عدد رو در $_SESSION ذخیره کنید نه در یه input بفرستید.

اگه میشه خودتون اصلاح کنید
چون میگم من مبتدیم و همین قدر ویرایش و ساختش هم چون یک کتاب ویژوال بسیک رو خوندم بلدم
ممنون میشم این مشکلو برام رفع کنید

rezablue
چهارشنبه 03 مهر 1392, 19:08 عصر
کسی درست نکرد ؟

MMSHFE
پنج شنبه 04 مهر 1392, 07:57 صبح
<?php
session_start();
$error = 'N';
if(isset($_POST['submit'])) {
if(($_POST['user_captcha']) == ($_SESSION['user_captcha']);
echo('<p class="error"> درست است </p>');
if($xACCOUNT[0] == 0) {
mysql_query("UPDATE `users` SET `game` = `game` - '1' WHERE `xeon_users`.`id` = {$xUS['id']} LIMIT 1;");
}
}
else {
echo('<b> غلط است </b>');
}
unset($_SESSION['user_captcha']);
if($xACCOUNT[0] == 0) {
mysql_query("UPDATE `users` SET `game` = `game` + '1' WHERE `xeon_users`.`id` = {$xUS['id']} LIMIT 1;");
}
}
$error = 'Y';
}
function Random() {
$length = 1; // تعداد حروف و اعداد که برای کاربر نمایش داده میشوند
$str = '1';
$max = strlen($str) - 1;
$random = '';
for($i = 0; $i < $length; $i++) {
$number = mt_rand(0,$max);
$random .= substr($str,$number,1);
}
return $random;
}
$random = Random();
$_SESSION['user_captcha'] = $random;
?>
<br />
<br />
<br />
<br />
<fieldset>
<legend>
عدد:&nbsp;<?php echo $random; ?><br />
امتیاز بازی:&nbsp;<?php echo number_format($xUS['game']); ?><br />
</legend>
<form action="" method="post">
<p>شما باید در فیلد زیر عدد مورد نظر خود را وارد کنید</p>
<input type="text" name="user_captcha" style="direction: ltr;" autocomplete="off" />
<input type="submit" name="submit" value="ارسال" />
</form>
</fieldset>
البته یک نکته که باید دقت کنید اینه که بهتره با استفاده از GD کد CAPTCHA رو بصورت یک عکس نشون بدین و حتی کمی توی عکس، دستکاریش کنید (حروف رو بچرخونید، چندتا خط مبهم روی حروف بندازین و...) نه اینکه بصورت یک متن معمولی توی کد بگذارین چون امنیت نداره و روباتها براحتی با خوندن سورس کد، میتونن کد CAPTCHA شما رو پیدا کنن و درنتیجه CAPTCHA وظیفه اصلی خودش رو که تشخیص انسان از روبات هست، نمیتونه درست انجام بده.

rezablue
پنج شنبه 04 مهر 1392, 08:18 صبح
متاسفانه من تازه دارم کمی از پی اچ پی سر در میارم این رو هم از روی یک آموزش زدم
میشه کد اون رو یا آموزششو برام قرار بدید ؟؟؟

rezablue
پنج شنبه 04 مهر 1392, 08:44 صبح
در ضمن کدو گذاشتم ولی مشکل داره !

AliRezaPro
جمعه 05 مهر 1392, 16:07 عصر
متاسفانه من تازه دارم کمی از پی اچ پی سر در میارم این رو هم از روی یک آموزش زدم
میشه کد اون رو یا آموزششو برام قرار بدید ؟؟؟
چرا از کدی که جناب شهرکی قرار دادند استفاده نمیکنید ؟

rezablue
جمعه 05 مهر 1392, 16:12 عصر
کدی که دادند نه تنها اون مشکلو بر طرف نکرد
روی یک کد دیگه امتحان کردم با توجه به این ویرایشات یک مشکل براش پیش اومد
شما میتونید برام درست کنید دو تا کد دارم شبیه به هم براتون پ خ کنم برام ادیت کنید هزینه رو هم خدمتتون بدم ؟؟؟
چون برام مهمه تا ساعت 8 میخوام
یک کد همین کد کپچا و یکی هم یک کد بازی هست که با همین کد کپچا درست کردم که اگه کاربر عدد شانسی رو درست وارد کرد امتیاز بهش بده
اگه میتونید لطف کنید بگید براتون دو کد رو پ خ کنم

rezablue
شنبه 06 مهر 1392, 13:13 عصر
لطفا جواب بدید دوستان