ايران ويج

نسخه‌ی کامل: اساتید PHP  ببینید این فرم چی مشگلی داره
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
این فرمو من نوشتم نمیدونم چرا تو سرور که نمیکنه تو لوکال هاست کار میکنه نمیدونم چرا

این یک فرم دریافت اعتراض به نمراته که اطلاعات و به ایمیل می فرسته من زیاد پی اچ پی بلد نیستم اینم از روی برنامه های مختلف جمع کردم

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

این کد قسمت HTML که قسمت دریافت اطلاعاته

[align=left]
کد:
<%@ Language=javascirpt %> <html dir="rtl">

<head>

<meta name="VI60_defaultClientScript" content="VBScript">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>فرم اعتراض به نمرات</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascirpt" type="text/javascirpt">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
  

</head>

<body background="line2.gif">
<div id="Layer3" style="position:absolute; left:740; top:90; width:150; height:468; z-index:3; background-color: #657AD7; layer-background-color: #657AD7; border: 1px none #000000">
</div>
<div id="Layer2" style="position:absolute; left:716px; top:90px; width:24px; height:21px; z-index:4">
  <img src="1.gif" width="24" height="24"></div>
<div id="Layer4" style="position:absolute; left:72; top:145; width:642; height:458; z-index:13">
    
  <div style="width: 587; border:2px dashed #0932FF; padding: 10;  height:279">
    <form name="form1" action="mail.php" method="POST">

        <input type=hidden size="20" name="email_address" value="Quiz@neyshabur-tech.org">
        <font face="Tahoma"><font size="2"><br>
نام دانشجو  :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
        
<input type="text" size="40"
        name="email_from"><font size="2"><br>  
        </font>  
<input type=hidden size="20"
        name="email_name" value="info@ele.ir"><font size="2">رشته :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<input type="text" size="15"
        name="Rast"><font size="2"><br>
نام درس :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>
<input type="text" size="15"
        name="dar" >
<br>
        <font size="2">نام استاد :</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>

<input type="text" size="15"
        name="Aos"><font size="2"><br>
        <font face="Tahoma">نمره مورد اعتراض : </font>&nbsp;</font><input type="text" size="5"
        name="num"></font><p><font size="2" face="Tahoma">توضيحات :
<br></font><textarea name="Tow" rows="5"
        cols="40"></textarea> </p>
</div>
    <p align="right"><input type="submit" name="submit" value="ارسال" dir="rtl">
    <font face="Tahoma">
    <input type="reset" name="Reset" value="پاك كردن فرم" dir="rtl" style="font-family: t"></font></p>
    <p align="right">&nbsp;</p>
    <p align="right"><font face="Tahoma"><font size="2">ب</font><a href="http://www.neyshabur-tech.org/"><font size="2">ارگشت
    به سايت آموزشكده</font></a></font></p>
</form>
  </div>    
</div>
<div id="Layer1" style="position:absolute; left:129px; top:7px; width:761px; height:85px; z-index:1">
  <table width="760" height="83" border="0" align="right" cellpadding="0" cellspacing="0">
    <tr>
      <td width="343" background="b.gif">&nbsp;</td>
      <td width="257" background="b.gif">&nbsp;</td>
      <td width="160" align="center" background="b.gif">&nbsp;</td>
    </tr>
  </table>
</div>
<div id="Layer5" style="position:absolute; left:131; top:105; width:598; height:26; z-index:14">
  <span lang="fa"><b><font face="Tahoma" size="2">فرم اعتراض به نمرات&nbsp; </font></b>
  </span></div>
<div id="Layer6" style="position:absolute; left:136; top:635; width:542; height:26; z-index:15">
  <p class="MsoNormal" dir="RTL" style="text-align: right; direction: rtl; unicode-bidi: embed; font-family: Tahoma; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: .0001pt">
  &nbsp;</p>
  </div>
</body>
</html>
اینک کد قسمت PHP یا همون سمت سرورش


کد:
<?php
//Handle Input here
//Check if $submit has a value of "Go" - The Validator
//if($submit=="Go"){
    //The Processor
   echo("<br>".$email_address);
echo("<br>".$email_from);
echo("<br>".$email_name );
echo("<br>".$Rast);
echo("<br>".$dar );
echo("<br>".$Aos );
echo("<br>".$num );
echo("<br>".$Tow );


$mail_subject = "etraz email" ;
$body = " نام دانشجو : ". $email_from . " <==>  " . " رشته : " . $Rast ." <==> " . " نام درس : " . $dar ." <==> " . " نام استاد : " . $Aos ." <==> " . " نمره : " . $num ." <==> " . " توضيحات :  " . $Tow ;
$xheaders = "";
$xheaders = "From: " . $email_name . " <" . $email_from . ">\r\n";
$xheaders .= "X-Sender: <" . $email_from . ">\r\n";
$xheaders .= "X-Mailer: PHP\r\n";
$xheaders .= "X-Priority: 6\r\n";
$xheaders .= "MIME-Version: 1.0\r\nContent-type: text/html; charset=utf-8\r\nContent-transfer-encoding: 8bit";

echo("<br><b>گزارش ارسال اعتراض</b><hr>");
if(mail($email_address, $mail_subject,  $body , $xheaders))
   echo(" <b>با موفقيت فرستاده شد</b>" . "<br>اطلاعات ارسال شده: " .  "<br> " . $body );
  
else
    echo("<b>خطا در هنگام ارسال</b> "  );
  

?>


تو رو خدا کمک کنید
اين کد مشکلی نداره عزيز
احتمالاً host شما اجازه استفاده از ميل service رو نميده واسه همين فرستاده نميشه
البته من بعيد ميدونم ولی خوب راه ديگه ای به نظر من نميرسه
موفق باشی
ممنون از لطفنون به خاطر وقتی که گذاشتید
جواب اینو توی فرم سایت Iranphp گرفتم
اینم لینکش
http://www.iranphp.net/index.php?option=...topic=90.0

موفق باشید
يه برنامه ارسال ميل هست تو سايت فكر كنم از اون استفاده كني بهتر باشه
مشگل من از ارسال ایمیل نبود بلکه از این بود که اطلاعات از فرم دریافت اطلاعات به سرور یا همون فایل پی اچ پی نمیرسید که با راهنمایی که دوستان در سایت ایران پی اچ پی کردند مشگل رفع شد
از تمام عزیزان در سایت ایران ویچ هم ممنونم
سلام
داشتم از این ورا رد میشدم که گفتم یه ابراز وجود بکنم .

در مورد $_POST که راه حل مشکل شما بود ، یه توضیح کامل تر میدم شاید مفید باشه .

در فایل پیکربندی PHP یه فایل به نام php.ini وجود داره ، در این فایل یک متغییر به نام register_global وجود دارد که میتونه مقدار off یا on به خودش بگیره .
در صورتی که این مقدار off باشه، نیازی نیست که توسط $_POST متغییر به نوعی تعریف بشه ، و مستقیما میشه از متغییر ها در php استفاده کرد. اما چنانچه این متغییر مقدار on داشته باشه بایستی که تمامی متغییر هایی که از فرم html به php ارسال میشن به نوعی تعریف بشن! منظور از تعریف همون استفاده از $_POST است .

حال اشکال از اونجا ناشی میشه که احتمالا بر روی سیستم شما به صورت local این متغییر به صورت off می باشد. و بر روی سرور on ! پس ناچارید که متغییرها رو توسط $_POST تعریف نمائید. تا بر روی سرور هم کار کنه . البته در حال حاظر بر روی اکثر سرور ها این متغییر به صورت on است ، و این بر میگرده به مسائل امنیتی.
در ابتدای پیدایش php ، مقدار off برای متغییر فوق الذکر یک حسن محسوب میشد چون برنامه نویس رو از تعریف متغییر ها بی نیاز میکرد. ولی بعد از مدتی این حسن شد خوراک هکر ها و از اون استفاده های سوء شد ، بنابراین به این نتیجه رسیدند که به صورت پیشفرض این متغییر رو به حالت on در بیارند.
همیشه سعی کنید در ابتدای برنامه ها از $_POST استفاده کنید.
البته اینها هم هستند:
$_POST اگر اطلاعات به روش post ارسال میشوند.
$_GET اگر اطلاعات به روش get ارسال میشوند.
$_REQUEST اگر اطلاعات به روش post و یا get و یا هر دو ارسال میشوند.
$_SERVER برای استفاده از متغییرهای پیشفرض و تعریف شده در php
و...

مثال:
$x = $_POST['x'];
(خودتون چپ به راست کنید)

امیدوارم تجربیات شخصیم مفید بوده باشه.
تشکر
نبی
NabiKAZ نوشته است:سلام
داشتم از این ورا رد میشدم که گفتم یه ابراز وجود بکنم .

در مورد $_POST که راه حل مشکل شما بود ، یه توضیح کامل تر میدم شاید مفید باشه .

در فایل پیکربندی PHP یه فایل به نام php.ini وجود داره ، در این فایل یک متغییر به نام register_global وجود دارد که میتونه مقدار off یا on به خودش بگیره .
در صورتی که این مقدار off باشه، نیازی نیست که توسط $_POST متغییر به نوعی تعریف بشه ، و مستقیما میشه از متغییر ها در php استفاده کرد. اما چنانچه این متغییر مقدار on داشته باشه بایستی که تمامی متغییر هایی که از فرم html به php ارسال میشن به نوعی تعریف بشن! منظور از تعریف همون استفاده از $_POST است .

حال اشکال از اونجا ناشی میشه که احتمالا بر روی سیستم شما به صورت local این متغییر به صورت off می باشد. و بر روی سرور on ! پس ناچارید که متغییرها رو توسط $_POST تعریف نمائید. تا بر روی سرور هم کار کنه . البته در حال حاظر بر روی اکثر سرور ها این متغییر به صورت on است ، و این بر میگرده به مسائل امنیتی.
در ابتدای پیدایش php ، مقدار off برای متغییر فوق الذکر یک حسن محسوب میشد چون برنامه نویس رو از تعریف متغییر ها بی نیاز میکرد. ولی بعد از مدتی این حسن شد خوراک هکر ها و از اون استفاده های سوء شد ، بنابراین به این نتیجه رسیدند که به صورت پیشفرض این متغییر رو به حالت on در بیارند.
همیشه سعی کنید در ابتدای برنامه ها از $_POST استفاده کنید.
البته اینها هم هستند:
$_POST اگر اطلاعات به روش post ارسال میشوند.
$_GET اگر اطلاعات به روش get ارسال میشوند.
$_REQUEST اگر اطلاعات به روش post و یا get و یا هر دو ارسال میشوند.
$_SERVER برای استفاده از متغییرهای پیشفرض و تعریف شده در php
و...

مثال:
$x = $_POST['x'];
(خودتون چپ به راست کنید)

امیدوارم تجربیات شخصیم مفید بوده باشه.
تشکر
نبی


واقعا جالب بود خیلی استفاده کردیم
بابا برقی نوشته است:واقعا جالب بود    خیلی استفاده کردیم

قابلی نداشت عزیز دل برادر ! ;)