دنیای وردپرس

مشکل در نوشتن فرم تماس با ما

11 پست در این موضوع قرار دارد

سلام من یک فرم تماس با ما نوشتم (لطفاً نگید از افزونه استفاده کن فقط برای تست اینو نوشتم - تشکر ) بعد به یک مشکلی بر خوردم موقعی که ارسال رو میزنی یه صفحه میاد میگه برگه پیدا نشد ولی else کار میکنه !!!

کل کدهای من :


<?php
/*
Template Name: contact
*/
if(isset($_POST['submit'])){
if(!empty($_POST['name']) && (!empty($_POST['email'])) && (!empty($_POST['message']))&& (!empty($_POST['subject']))){
$accep="پیغام شما با موفقیت ارسال شد";
$to="mail@mail.com";
$subject=$_POST['subject'];
$from=$_POST['email'];
$user_message = $_POST['message'];
$body = "\n".
"نام: $name\n".
"ایمیل: $from \n".
"توضیحات: \n ".
"$user_message\n".
$headers = "From: $from \r\n";
$headers .= "Reply-To: $from \r\n";
mail($to,$subject,$body,$headers);
}
else{
$error= "لطفاً فیلدها را پر نمایید";
}
}
?>
<?php get_header(); ?>
<!--header-->
<?php if(!empty($accep)) echo '<div class="accep">'.$accep.'</div>';?>
<?php if(!empty($error)) echo '<div class="error">'.$error.'</div>'; ?>
<form action="<?php the_permalink(); ?>" id="contact" method="post">
<label for="name">Name : </label>
<input type="text" value="" class="form" name="name" />
<br/>
<label for="email">Email:</label>
<input style="margin-right:13px;" type="text" value="" class="form-ltr" name="email" />
<br/>
<label for="website">Website:</label>
<input type="text" value="" class="form-ltr" name="website" />
<br/>
<label for="subject">Subject:</label>
<input type="text" value="" class="form" name="subject" />
<br/>
<textarea class="form" id="mess" rows="7" name="message"></textarea>
<br />
<input type="submit" name="submit" value="">
</form>
<?php get_footer(); ?>

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

0

به اشتراک گذاری این پست


لینک به پست

سلام

name رو در کد زیر تغییر بدید درست میشه:

<input type="text" value="" class="form" name="name" />

0

به اشتراک گذاری این پست


لینک به پست

تشکر درست شد فقط دو مورد یکی اینکه چه دلیلی داشت name رو تغییر بدم ؟

بعد یه مورد دیگه هم اینکه رفتن میل توی اسپم میدونم به سرور اینا بستگی داره ولی دلیل دیگش میتونه بستگی به کد باشه $header ?

لطفا چک کنید ببینید کدم مشکل نداره ؟

0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

تشکر درست شد فقط دو مورد یکی اینکه چه دلیلی داشت name رو تغییر بدم ؟

بعد یه مورد دیگه هم اینکه رفتن میل توی اسپم میدونم به سرور اینا بستگی داره ولی دلیل دیگش میتونه بستگی به کد باشه $header ?

لطفا چک کنید ببینید کدم مشکل نداره ؟

الان سرویسی که میل میره بهش یاهو هست ولی متاسفانه هر کی میفرسته میره تو spam

ویرایش شده در توسط max
0

به اشتراک گذاری این پست


لینک به پست

در مورد name بنظر میرسید داره با هدر قاطی میکنه. برای همین تغییر دادم درست شد.

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

0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

در مورد name بنظر میرسید داره با هدر قاطی میکنه. برای همین تغییر دادم درست شد.

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

من بازیابی رمز عبور زدم اوکی شد و رفت توی inbox ولی بعد از اینکه دوباره رمز رو تغییر دادم باز میره تو spam!!! (لطفاً دلیلش رو هم بگید)

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

ویرایش شده در توسط max
0

به اشتراک گذاری این پست


لینک به پست

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

در مورد اسم هم شما توی لیست دریافتی متغییرها اسم رو نمیگیری.

همچین کدی رو بایداضافه کنی:

$name=$_POST['urname'];

1

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

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

در مورد اسم هم شما توی لیست دریافتی متغییرها اسم رو نمیگیری.

همچین کدی رو بایداضافه کنی:

$name=$_POST['urname'];

در مورد اسپم با افزونه ای مثل Contact form یک همچین مشکلی ندارم ولی این مشکل داره من فک میکنم $header من ناقص هست باید تصحیح شه و تایین شه که طرفی که من داره میل میزنه بره به اکانت یاهو و از اونجا یعنی یاهو جوابشو بگیره !!!


$headers = "From: $from \r\n";
$headers .= "Reply-To: $from \r\n";

ویرایش شده در توسط max
0

به اشتراک گذاری این پست


لینک به پست

ربطی به هدر نباید داشته باشه. منهم همیشه از همین مدل برای هدر استفاده میکنم:

     $headers = "From: webmaster@wp-parsi.com" . "\r\n" .
$headers .= "Content-type: text/html\r\n";

1

به اشتراک گذاری این پست


لینک به پست

ربطی به هدر نباید داشته باشه. منهم همیشه از همین مدل برای هدر استفاده میکنم:

	 $headers = "From: webmaster@wp-parsi.com" . "\r\n" .
$headers .= "Content-type: text/html\r\n";

یک سوال دیگه داشتم من الان میخوام ایمیلی که از طریق فرم ارسال میشه (میره به یاهو) یک شکل و استایلی هم داشته باشه به فرض $body داخل یک کادر باشه ! اگر لطف کنید یک نمونه توی کد ذیل مثال بزنید ممنون میشم :


<?php
/*
Template Name: Contact
*/
if(isset($_POST['submit'])){
if(!empty($_POST['contactname']) && (!empty($_POST['email'])) && (!empty($_POST['message']))&& (!empty($_POST['subject']))){
$accep="پیغام شما با موفقیت ارسال شد";
$to="mail@mail.com";
$subject=$_POST['subject'];
$from=$_POST['email'];
$user_message = $_POST['message'];
$web=$_POST['website'];
$name=$_POST['contactname'];
$body = "\n".
"نام: $name\n".
"ایمیل: $from \n".
"وب سایت: $web \n".
"توضیحات: \n ".
"$user_message\n".
$headers = "From: $from \r\n";
$headers .= "Reply-To: $from \r\n";
mail($to,$subject,$body,$headers);
}
else{
$error= "لطفاً فیلدها را پر نمایید";
}
}
?>
<?php get_header(); ?>
<?php if(!empty($accep)) echo '<div class="accep">'.$accep.'</div>';?>
<?php if(!empty($error)) echo '<div class="error">'.$error.'</div>'; ?>
<form action="" method="post">
<label for="name">Name : </label>
<input style="margin-right:5px;" type="text" value="" class="form" name="contactname" />
<br/>
<label for="email">Email:</label>
<input style="margin-right:15px;" type="text" value="" class="form-ltr" name="email" />
<br/>
<label for="website">Website:</label>
<input type="text" value="" class="form-ltr" name="website" />
<br/>
<label for="subject">Subject:</label>
<input type="text" value="" class="form" name="subject" />
<br/>
<textarea class="form" id="mess" rows="7" name="message"></textarea>
<br />
<input type="submit" name="submit" value="">
</form>
<?php get_footer(); ?>

0

به اشتراک گذاری این پست


لینک به پست

منظورتون اینه که ایمیل استایل داشته باشه. بهتره یک آموزش جامع رو مطالعه کنید:

http://css-tricks.com/sending-nice-html-email-with-php/

2

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری