مشکل با یک کد php

saeedagha

کاربر عضو
سلام بر همه اساتید

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

 

zegersot

کاربر عضو
میشه واضع تر بگید؟

منظورتونو نفهمیدم

اگه میخواید بهتر بهتون کمک بشه کد ها و مشکلاتتون کامل بیان کنید

موفق باشید

 

saeedagha

کاربر عضو
میشه واضع تر بگید؟منظورتونو نفهمیدم

اگه میخواید بهتر بهتون کمک بشه کد ها و مشکلاتتون کامل بیان کنید

موفق باشید
هنگام ارسال فرم تماس کاربر با صفحه خطا مواجه می شود ولی فرم به آدرس ایمیل فرستاده می شود

این فایل contact.php هست


کد:
<?php
// Change the 4 variables below
include ('../config.php');
// No need to edit below unless you really want to. It's using a simple php mail() function. Use your own if you want
function cleanPosUrl ($str) {
return stripslashes($str);
}
    if ( isset($_POST['sendContactEmail']) )
    {
    $to = $yourEmail;
    $subject = $yourSubject.': '.$_POST['posRegard'];
    $message = cleanPosUrl($_POST['posText']);
    $headers = "From: ".cleanPosUrl($_POST['posName'])." <".$_POST['posEmail'].">\r\n";
    $headers .= 'To: '.$yourName.' <'.$yourEmail.'>'."\r\n";
    $mailit = mail($to,$subject,$message,$headers);
        if ( @$mailit ) {
        header('Location: '.$referringPage.'?success=true');
        }
        else {
        header('Location: '.$referringPage.'?error=true');
        }
    }
?>
اساتید یک راهنمایی بفرمایند

 

saeedagha

کاربر عضو
هنگام ارسال فرم با این خطا مواجه می شم!

Warning: Cannot modify header information - headers already sent by (output started at /home/u222737637/public_html/weare/config.php:1) in /home/u222737637/public_html/weare/scripts/contact.php on line 17

مشکل از کجاست؟

یک منبع هم پیدا کردم که ازش چیزی سر در نیاوردم من php چیزی زیادی نمی دونم اگه کسی چیزی فهمیده لطف کنه یکم واضح و ابتدایی توضیح بده :((

منبع:



 

Mohammad

مدیر انجمن
پرسنل مدیریت
مشکل احتمالا در ذخیره کردن فایل با پسوندی غیر از utf-8 without bom هست.

با نرم افزار notepad++ این کار رو انجام بدید

 

saeedagha

کاربر عضو
Config.php راهم لطفا قرار دهید .
این محتویات فایل config.php


کد:
<?
// change the 4 variables below
$yourName = '';
$yourEmail = 'golpesar@gmail.com';
$yourSubject = 'موضوع';
$referringPage = 'saeedagha.tk';

?>
 
آخرین ویرایش توسط مدیر:

saeedagha

کاربر عضو
مشکل احتمالا در ذخیره کردن فایل با پسوندی غیر از utf-8 without bom هست. با نرم افزار notepad++ این کار رو انجام بدید
مشکل از اونجا نبود باز هم همون پیغامو داد

 

saeedagha

کاربر عضو
کسی از اون منبعی که در ابتدای تاپیک گذاشتم چیزی متوجه نشد؟ :(

 

IAMIR

کاربر عضو
طبق گفته محمد جان مشکل از همون utf-8 عزیز با notepad++

utf8 کن یا با ویرایش گر سی پنل انکودینگ را درست کن .

به جای yoursubject که موضوع یک متن انگلیسی بذار انکودینگ هم عوض نکن ببین درسته .

آزمایش وخطا که بفهمی مشکل از انکودینگه .

 

saeedagha

کاربر عضو
طبق گفته محمد جان مشکل از همون utf-8 عزیز با notepad++utf8 کن یا با ویرایش گر سی پنل انکودینگ را درست کن .

به جای yoursubject که موضوع یک متن انگلیسی بذار انکودینگ هم عوض نکن ببین درسته .

آزمایش وخطا که بفهمی مشکل از انکودینگه .
گفته های شما را به دقت انجام دادم ولی با همون خطا نمایش داده می شود :((

 

IAMIR

کاربر عضو
من قالب سایت شما را بررسی کردم . شما ظاهرا تو سیستم ارسال فرمش دستکاری کردی و از یک یک اسکریپت دیگه برای ارسال فرم استفاده می کنی . و اصلا کل قالب و برنامه نویسی قالب را بهم ریختی .

از خود اسکریپت قالب چرا استفاده نمی کنی اون هیچ مشکلی نداره . فقط کافیه .

راهنمای استفاده از قالب و فرم ارتباطش تو خود فایل داننلودی موجوده چرا لقمه دور می چرخونی . وقتی به راحتی از خود قالب می تونی بهره بگیری .

موفق باشید .



 

saeedagha

کاربر عضو
من قالب سایت شما را بررسی کردم . شما ظاهرا تو سیستم ارسال فرمش دستکاری کردی و از یک یک اسکریپت دیگه برای ارسال فرم استفاده می کنی . و اصلا کل قالب و برنامه نویسی قالب را بهم ریختی . از خود اسکریپت قالب چرا استفاده نمی کنی اون هیچ مشکلی نداره . فقط کافیه .

راهنمای استفاده از قالب و فرم ارتباطش تو خود فایل داننلودی موجوده چرا لقمه دور می چرخونی . وقتی به راحتی از خود قالب می تونی بهره بگیری .

موفق باشید .

بله حق کاملا با شماست من این قالبو من از یه سایت دیگه دانلود کردم ونمی دونستم باید ایمیلمو کجا وارد کنم به همین دلیل لقمه رو دور سرم چرخوندم اگه لطف کنید بگید من باید چه فایلی رو در پوشه bin تغییر بدم محتویات پوشه bin شامل

MailHandler.php


کد:
<?php
    $owner_email = $_POST["owner_email"];
    $headers = 'از:' . $_POST["email"];
    $subject = 'یک پیام از بازدید کننده سایت ' . $_POST["name"];
    $messageBody = "";

    if($_POST['name']!='nope'){
        $messageBody .= '<p>بازدید کننده: ' . $_POST["name"] . '</p>' . "\n";
        $messageBody .= '<br>' . "\n";
    }
    if($_POST['email']!='nope'){
        $messageBody .= '<p>ایمیل: ' . $_POST['email'] . '</p>' . "\n";
        $messageBody .= '<br>' . "\n";
    }else{
        $headers = '';
    }
    if($_POST['state']!='nope'){        
        $messageBody .= '<p>منطقه: ' . $_POST['state'] . '</p>' . "\n";
        $messageBody .= '<br>' . "\n";
    }
    if($_POST['phone']!='nope'){        
        $messageBody .= '<p>تلفن: ' . $_POST['phone'] . '</p>' . "\n";
        $messageBody .= '<br>' . "\n";
    }    
    if($_POST['fax']!='nope'){        
        $messageBody .= '<p>فکس: ' . $_POST['fax'] . '</p>' . "\n";
        $messageBody .= '<br>' . "\n";
    }
    if($_POST['message']!='nope'){
        $messageBody .= '<p>پیام: ' . $_POST['message'] . '</p>' . "\n";
    }

    if($_POST["stripHTML"] == 'true'){
        $messageBody = strip_tags($messageBody);
    }

    try{
        if(!mail($owner_email, $subject, $messageBody, $headers)){
            throw new Exception('mail failed');
        }else{
            echo 'mail sent';
        }
    }catch(Exception $e){
        echo $e->getMessage() ."\n";
    }
?>
و

MailHandler.ashx


کد:
<%@ WebHandler Language="C#" Class="Handler" Debug="true" %>

using System;
using System.Web;
using System.Net.Mail;
using System.Text.RegularExpressions;

public class Handler : IHttpHandler {
    public void ProcessRequest (HttpContext context) {
        SmtpClient mailClient = new SmtpClient(context.Request.Form.Get("smtpMailServer"));
        string owner_email = context.Request.Form.Get("owner_email");
        string subject = "یک پیام از بازدید کننده سایت " + context.Request.Form.Get("name");
        string email = context.Request.Form.Get("email");
        string messageBody = "";

        messageBody += "<p>بازدید کننده: " + context.Request.Form.Get("name") + "</p>\n";
        messageBody += "<br>\n";
        messageBody += "<p>آدرس ایمیل: " + context.Request.Form.Get("email") + "</p>\n";
        messageBody += "<br>\n";
        messageBody += "<p>شماره تلفن: " + context.Request.Form.Get("phone") + "</p>\n";
        messageBody += "<br>\n";
        messageBody += "<p>پیام: " + context.Request.Form.Get("message") + "</p>\n";


        MailMessage message = new MailMessage();

        try{
            message.From = new MailAddress(email.ToString());
        }catch (FormatException e) {
            context.Response.Write(e.Message);
        }

        message.To.Add(owner_email);
        message.Subject = subject;
        if(context.Request.Form.Get("stripHTML") == "true"){
            message.IsBodyHtml = false;
            messageBody = Regex.Replace(messageBody, "<.*?>", string.Empty);
        }else{
              message.IsBodyHtml = true;
        }
        message.Body = messageBody;

        try{
            mailClient.Send(message);
        }catch (SmtpException e) {
            context.Response.Write("mail failed");
        }
        context.Response.Write("mail sent");
    }

    public bool IsReusable {
        get    {
            return false;
        }
    }
}
توی انجمن من تاپیکی با موضوع این قالب ندیدم

 
آخرین ویرایش توسط مدیر:

IAMIR

کاربر عضو
این تغییر بده . تمام . اینقدر هم خودت را اذیت نمی کردی .

$owner_email = 'YourEmail@gmail.com';​
کد:
 

saeedagha

کاربر عضو
این تغییر بده . تمام . اینقدر هم خودت را اذیت نمی کردی .

$owner_email = 'YourEmail@gmail.com';​
کد:
ببخشید که اذیتتون کردم ولی اگه منظورتون خط دوم کد php هست من به جای


کد:
$owner_email = $_POST["owner_email"];
این


کد:
$owner_email = $_POST['golpesar20088@gmail.com'];
با پیغام ارسال ایمیل مواجه شدم

ولی چیزی به ایمیلم ارسال نشد

به ببخشد که یه کم گاگولم

 

IAMIR

کاربر عضو
مهندس جان اینو می گم این دو تا با هم جایگزین .

به جای

YourEmail@gmail.com ایمیل خودت را بنویس .

$owner_email = $_POST["owner_email"];
کد:



$owner_email = 'YourEmail@gmail.com';
کد:


 

saeedagha

کاربر عضو
مهندس جان اینو می گم این دو تا با هم جایگزین .به جای

ایمیل خودت را بنویس .


$owner_email = $_POST["owner_email"];
کد:



$owner_email = 'YourEmail@gmail.com';
کد:
حالا چرا میزنی بابا من که گفتم چیزی یاد ندارم :))

ایمیل ok شد!

فقط به عنوان سوال آخر چرا وقتی من اسم فارسی مینویسم توی فیلد نام میگه "این نام معتبر نیست" فقط باید انگلیسی بنویسم

 

IAMIR

کاربر عضو
اون از form validation قالبه که براساس نام های انگلیسی تعریف شده بخوای تغییرش بده باید تمام فایل های جاوا اسکریپت را زیر رو کنی . وقت گیره . تازه اگر بر جاوا اسکریپت مسلطی .

form.js

باید ویراش بشه . میتونی زیرش بنویس نام را انگلیسی تایپ کنید .

 

saeedagha

کاربر عضو
در فایل forms.js مقادیر validate مربوط به name رو پاک کردم درست شد با تشکر از همه

 
بالا