• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
فرم ارسال نظر
#1
یک فرم ارسال نظر ساختم در قسمت actionآدرس idea.phpدادم چه تغییراتی بایددر این کد اعمال کنم تا پس از ارسال نظر پیغام ارسال نظر یا خطا در همان صفحه فرم ارسال نظر را به کاربر نشان دهد با توجه به این کد پس از ارسال نظر به صفحه idea.phpمیرود و پیغام ارسال را میدهد
کد پی‌اچ‌پی:
printf('
         
          <form  action="idea.php" name="contact" method="post" class=" dir "name="signup" id="signup"  >
<center><table summary="Demonstration form">
  <tbody>
  <tr>
    <td><label for="name">نام  :</label></td>
    <td><input name="name" size="35" maxlength="50" type="text"></td>
  </tr>   
  <tr>
    <td><label for="email">ایمیل:</label></td>
    <td><input name="email" size="35" maxlength="25" type="text"></td>
  </tr>
    
  <tr>
    <td><label for="comment">پیام:</label></td>
    
    <td><textarea style="width:250px;height:120px" name="comment"  type="text"rows="5" cols"100" maxlength="2000"></textarea></td>
  </tr>  
  
  <tr>
    <td> </td>
   
    <td><input name="Submit" value="ارسال" type="submit" class="button" ></td>
    
    <td><input type="reset" value="پاک کردن" name="B2" class="button"> </td>
  </tr>
  </tbody>
</table></center>
</form>
         
         '
); 
  پاسخ
تشکر شده توسط :
#2
(۱۳۹۰ تير ۳۰, ۱۰:۵۵ ق.ظ)jalaladdin نوشته: یک فرم ارسال نظر ساختم در قسمت actionآدرس idea.phpدادم چه تغییراتی بایددر این کد اعمال کنم تا پس از ارسال نظر پیغام ارسال نظر یا خطا در همان صفحه فرم ارسال نظر را به کاربر نشان دهد با توجه به این کد پس از ارسال نظر به صفحه idea.phpمیرود و پیغام ارسال را میدهد

به نظر من میتونی تو صفحه ی idea.php که قراره عملیات ارسال انجام شه شرط ها رو به صورت زیر بزاری :

کد پی‌اچ‌پی:
if ()//Barasie ersal shodane etelaat
{
    
header ('Location : index.php');
    
$flag true;
}
else 
{
    
header ('Location : index.php');
    
$flag false;


بعد تو صفحه ی index.php (منظورم همون صفحه ایه که فرم اولی توشه) میایی و flag$ رو بررسی میکنی و با توجه به مقدار اون پیغامتو چاپ می کنی Shy
W H A T E V E R   Sleepy 
  پاسخ
تشکر شده توسط : jalaladdin
#3
فرم ارسال نظر در قسمت ادامه مطلب صفحه اصلی سایت میباشد نه در در صفحه اصلی!
  پاسخ
تشکر شده توسط : bcmodir
#4
(۱۳۹۰ تير ۳۰, ۱۱:۱۷ ق.ظ)jalaladdin نوشته: فرم ارسال نظر در قسمت ادامه مطلب صفحه اصلی سایت میباشد نه در در صفحه اصلی!

به هر حال بالاخره اون صفحه ی ادامه مطلب هم یه آدرسی واسه خودش داره !!!! حالا من نوشتم index.php شما آدرس اون صفحه رو بذار. اگر هم خواستی میتونی id یا دیگر اطلاعاتی که صفحه ی ادامه ی مطلب نیاز داره رو به صورت GET_$ ارسال کنی , یعنی اگه اون صفحه به id مطلب نیاز داشته باشه :

کد پی‌اچ‌پی:
....
header('Location: edame_matlab.php?id=___');
.... 

بازم منتظر باش تا اساتید بیان و نظر بدن. نظر اونا خیلی بهتر و مفید تر خواهد بود Sleepy
W H A T E V E R   Sleepy 
  پاسخ
تشکر شده توسط : jalaladdin
#5
این کد صفحهidea.phpمیباشد
حالا میگید چه تغییراتی در این کد اعمال کنم
کد پی‌اچ‌پی:
<?php
$con 
mysql_connect("localhost","root","");
if (!
$con)
  {
  die(
'Could not connect: ' mysql_error());
  }

mysql_select_db("admin"$con);

if(!empty(
$_POST['name'] )&&!empty($_POST['email']) && !empty($_POST['comment']) ){
$n $_POST['name'];
$e=$_POST['email'];
$me=$_POST['comment'];
mysql_query("INSERT INTO idea (name,email,comment) VALUES('$n','$e','$me') ");
  
mysql_set_charset("utf8",$con);
 
    
printf('<div class="  bg-blue "><script language="javascript" type="text/javascript">
alert("نظر شما پس از بررسی توسط مدیر سایت، به نمایش خواهد آمد.");
</script></div>'
);

}
    else {
        
      
printf('<div class=" bg-text1  ">لطفا عنوان و متن را وارد کنید</div>');
     
      }

mysql_close($con);
?>
  پاسخ
تشکر شده توسط :
#6
لطفا راهنمای کنید
  پاسخ
تشکر شده توسط :
#7
(۱۳۹۰ مرداد ۰۱, ۰۹:۴۱ ق.ظ)jalaladdin نوشته: لطفا راهنمای کنید

jalaladdin جان من فرم تو رو یه کوچولو تغییر دادم. نمی دونم همونی شد که تو می خوایی یا نه؟؟
امیدوارم به دردت بخوره ! Smile

کد پی‌اچ‌پی:
<?php
    session_start
();
    if (
$_SESSION['flag'] == 'true')
    {
        
printf('<div class=" bg-text1 "><h1 align="center">Successful</h1></div>');
        
printf('<div class=" bg-text1 "><h1 align="center"> Your message will be showon after checking.</h1></div>');
        
/*printf('<div class=" bg-blue "><script language="javascript" type="text/javascript">
                alert("Your Message will show after checking.");
                </script></div>');*/
    
}
    else
        
printf('<div class=" bg-text1 "><h1 align="center"> Please enter header and text.</h1></div>');
?>  

<html>
<body>  
    <form  action="idea.php" name="contact" method="post" class=" dir " name="signup" id="signup"  >
    <center>
    <table summary="Demonstration form">
      <tbody>
      <tr>
        <td><label for="name">Name  :</label></td>
        <td><input name="name" size="35" maxlength="50" type="text"></td>
      </tr>   
      <tr>
        <td><label for="email">Email:</label></td>
        <td><input name="email" size="35" maxlength="25" type="text"></td>
      </tr>
      <tr>
        <td><label for="comment">Message :</label></td>
        <td><textarea style="width:250px;height:120px" name="comment"  type="text"rows="5" cols"100" maxlength="2000"></textarea></td>
      </tr>  
     <tr>
        <td> </td>
        <td><input name="Submit" value="Send" type="submit" class="button" ></td>
       <td><input type="reset" value="Clear" name="B2" class="button"> </td>
      </tr>
      </tbody>
    </table>
    </center>
    </form>
</body>
</html> 

و همچنین اسکریپته idea.php

کد پی‌اچ‌پی:
<?php
    session_start
();
    
$con mysql_connect("localhost","root","");
if (!
$con)
    {
        die(
'Could not connect: ' mysql_error());
    }
    
mysql_select_db("admin"$con);
    if(!empty(
$_POST['name'] )&&!empty($_POST['email']) && !empty($_POST['comment']) )
    {
        
$n $_POST['name'];
        
$e=$_POST['email'];
        
$me=$_POST['comment'];
        
mysql_query("INSERT INTO idea (name,email,comment) VALUES('$n','$e','$me') ");
        
$_SESSION['flag'] = 'true';
        
header("Location:form.php");
    }
    else 
    {
        
$_SESSION['flag'] = 'false';
        
header("Location:form.php");
    }
    
mysql_close($con);
?>
W H A T E V E R   Sleepy 
  پاسخ
تشکر شده توسط :
#8
یه راهش اینه که شما مقداری برای خصیصه action در فرم در نظر نگیری تا در همون صفحه جاری همه چیز اتفاق بیافتد (این برابر با وارد کردن آدرس همان صفحه هست) . از اونجا که بررسی ها در فایلی دیگر صورت میگیره ، می تونید از شروط استفاده کنید. بدین صورت که باز مقداری برای action قرار ندهید و پس از فرم بنویسید:
کد پی‌اچ‌پی:
if( isset( $_POST['sendcommentname'] ) ) {
//baz mikonim file idea.php ro dar ahamin safhe
include_once( '/idea.php' );
}
else {
// ERROR

غایب
  پاسخ
تشکر شده توسط : masoudmanson
#9
پس از ارسال نظر با هر بار refresh صفحه نظر تکراری در پایگاه داده ذخیره میشود برای جلوگیری از refresh چه کدی بنویسم؟
  پاسخ
تشکر شده توسط :
#10
چه بصورت POST بفرستی یا GET اگر آدرس یکبار از نو رفرش نشه هربار رفرش بشه باز کامنت جدید ارسال میشه و صد البته تکراری. برای جلوگیری از اینکار چند راه وجود داره. یکی اینکه تاریخ و زمان رو هم به آدرس اضافه کنی و اگر تاریخ سرور (تاریخ سیستم نه چون ممکنه تاریخ سیستم کاربر درست نباشه یا تغییر بده!) یک ثانیه قبلش برابر اون تاریخ و زمان در آدرس بود نظر ارسال بشه در غیر اینصورت نه.
یه راه دیگه اینه که از شرط استفاده کنی و بگی که هر آی پی فقط می تونه هر 20 دقیقه نظر ارسال کنه.
یه راه دیگه اینکه از captcha استفاده کنی که هر رفرش نیاز به یک کد تازه هست.

فکر نکنم بشه جلوی رفرش صفحه رو گرفت. پنجره های popup هم با اینکه تولبار ندارن اما CTRL+R یا F5 بزنی رفرش میشه !!
غایب
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان