سوال

مشکل در نمایش نتایج در صفحه جدید

بازدید82پست ها1آخرین فعالیت6 ماه پیش
0
2

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

قالبی که دارم طراحی میکنم یک قالب html چند صفحه ای هستش
کد php تماس با ما من اینه :

 <?php if (!isset($_SESSION)) session_start();

if(!$_POST) exit();

		if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");

		$name     	= $_POST['name'];
        $email    	= $_POST['email'];
        $phone   	= $_POST['phone'];
        $website   	= $_POST['website'];
        $subject  	= $_POST['subject'];
        $comments 	= $_POST['comments'];
        $error		= '';

	    if (isset($_POST['verify'])) :
	    	$posted_verify   = $_POST['verify'];
	   		$posted_verify   = md5($posted_verify);
	   	else :
	   		$posted_verify = '';
	   	endif;

		// Important Variables
		$session_verify = $_SESSION['verify'];

		if (empty($session_verify)) $session_verify = $_COOKIE['verify'];

		if(trim($name) == '') {
        	echo '<div class="error_message">اسم خودتون رو وارد نکردید !</div>';
			exit();
        } else if(trim($email) == '') {
        	echo '<div class="error_message">آدرس ایمیل اشتباه وارد کردید !</div>';
			exit();
        } else if(!isEmail($email)) {
        	echo '<div class="error_message">شما آدرس ایمیل اشتباه وارد کردید، لطفا بیشتر دقت کنید</div>';
			exit();
        }

        if(trim($subject) == '') {
        	echo '<div class="error_message">لطفا موضوع پیام خودتون رو مشخص کنید</div>';
			exit();
        } else if(trim($comments) == '') {
        	echo '<div class="error_message">لطفا پیام خودتون رو بنویسید</div>';
			exit();
        } else if($posted_verify == '') {
	    	echo '<div class="error_message">لطفا کد امنیتی رو وارد کنید</div>';
			exit();
	    } else if($session_verify != $posted_verify) {
	    	echo '<div class="error_message">کد تاییدی که وارد کردید اشتباه هست !</div>';
			exit();
	    }

        if($error == '') {

			if(get_magic_quotes_gpc()) {
            	$comments = stripslashes($comments);
            }


         // Configuration option.
		 // Enter the email address that you want to emails to be sent to.
		 // Example $address = "info@yoursite.ir";

         //$address = "info@yoursite.ir";
         $address = "info@yoursite.ir";


         // Configuration option.
         // i.e. The standard subject will appear as, "You've been contacted by John Doe."

         // Example, $e_subject = '$name . ' از طریق فرم *تماس با ما* سایت با شما تماس گرفته';

         $e_subject = 'با شما تماس گرفته ! ' . $name . '.';


         // Configuration option.
		 // You can change this if you feel that you need to.
		 // Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.

		 $e_body = "$name در رابطه با موضوع $subject با شما تماس گرفته. متن پیام و اطلاعات اضافی رو پایین نوشتم:" . PHP_EOL . PHP_EOL;
		 $e_content = "\"$comments\"" . PHP_EOL . PHP_EOL;
		 $e_reply = "شما میتونید با $name از طریق آدرس ایمیل $email تماس بگیرید.";

		 if ($phone) $e_reply .= "شماره تماس $name : $phone";

		 if ($website) $e_reply .= "وب سایت $name : $website";

         $msg = wordwrap($e_body . $e_content . $e_reply,70);

         $headers = "From: $email" . PHP_EOL;
		 $headers .= "Reply-To: $email" . PHP_EOL;
		 $headers .= "MIME-Version: 1.0" . PHP_EOL;
		 $headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
		 $headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;

         if(mail($address, $e_subject, $msg, $headers)) {


		 // Email has sent successfully, echo a success page.

		 echo "<fieldset>";
		 echo "<div id='success_page'>";
		 echo "<h1>پیام شما با موفقیت ارسال شد.</h1>";
		 echo "<p><strong>$name</strong> عزیز، پیام شما ارسال شد و بعد از دیدنش، خیلی زود با شما تماس میگیرم</p>";
		 echo "</div>";
		 echo "</fieldset>";

		 } else {

		 echo 'ERROR!';

		 }

	}

function isEmail($email) { // Email address verification, do not edit.

return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));

} ?>

کد فرم تماس هم اینه:

 <form method="post" action="contact.php" class="contact100-form validate-form" name="contactform" id="contactform" autocomplete="on">
								<span class="contact100-form-title">
								ارسال پیام
								</span>
								<label class="label-input100" for="name" accesskey="U">اطلاعات خود را در این قسمت وارد کنید</label>
								<div class="wrap-input100 validate-input" data-validate="وارد کردن نام الزامی است">
									<input id="name" class="input100" type="text" name="name" placeholder="نام و نام خانوادگی" required>
									<span class="focus-input100"></span>
								</div>
								<label class="label-input100" for="email" accesskey="E">  ایمیل خود را در این قسمت وارد کنید</label>
								<div class="wrap-input100 validate-input" data-validate = "لطفا ایمیل معتبر وارد کنید ">
									<input id="email" class="input100" type="text" name="email" placeholder="eg.example@email.com" required>
									<span class="focus-input100"></span>
								</div>
								<label class="label-input100" for="phone" accesskey="P">  شماره تماس خود را در این قسمت وارد کنید</label>
								<div class="wrap-input100 validate-input" data-validate="وارد کردن شماره تماس الزامی است">
									<input id="phone" class="input100" type="text" name="phone" placeholder="09123456789" required>
									<span class="focus-input100"></span>
								</div>
								<label class="label-input100" for="subject" accesskey="S">  موضوع پیام خود را در این قسمت وارد کنید</label>
								<div class="wrap-input100 validate-input" data-validate="وارد کردن موضوع پیام الزامی است">
									<input id="subject" class="input100" type="text" name="subject" placeholder="موضوع پیام" required>
									<span class="focus-input100"></span>
								</div>
								<label class="label-input100" for="comments" accesskey="C">متن پیام</label>
								<div class="wrap-input100 validate-input" data-validate = "وارد کردن پیام الزامی است">
									<textarea id="comments" class="input100" name="comments" placeholder="پیام خود را در این قسمت وارد کنید" required></textarea>
									<span class="focus-input100"></span>
								</div>
								<div>
									<label class="label-input100" for="verify" accesskey="V">کد امنیتی : <img src="image.php" alt="کد امنیتی" /></label>
									<div class="wrap-input100 validate-input" data-validate="وارد کردن شماره تماس الزامی است">
										<input id="verify" class="input100" type="text" name="verify" placeholder="کد امنیتی" required title="لطفا عبارت داخل تصویر رو تو کادر رو به رو بنویسید" >
										<span class="focus-input100"></span>
									</div>
									<div class="container-contact100-form-btn">
									<input type="submit" class="contact100-form-btn" id="submit" value="ارسال پیام" />
								</div>
							</div>
							</form>
آخرین ویرایش: 04-10-2023 ???? 01:24، توسط toxicrez

1 پاسخ

1

سلام، برای اینکه نیاز نباشه صفحه رفرش بشه نیازه که از Ajax استفاده کنید.
من یه مثال میزنم در موردش خودتون تحقیق کنید:

کد جاوا اسکریپت:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

<script>
$(document).ready(function() {
  // تابع ارسال فرم به صورت Ajax
  function sendForm(e) {
    e.preventDefault();

    // جمع آوری داده های فرم
    var data = {
      name: $("#name").val(),
      email: $("#email").val(),
      phone: $("#phone").val(),
      subject: $("#subject").val(),
      comments: $("#comments").val(),
      verify: $("#verify").val()
    };

    // ارسال داده های فرم به سرور
    $.ajax({
      url: "contact.php",
      type: "POST",
      data: data,
      success: function(response) {
        // اگر درخواست با موفقیت انجام شد
        if (response == "success") {
          // پیام موفقیت را نمایش دهید
          $("#success").show();
        } else {
          // پیام خطا را نمایش دهید
          $("#error").show();
        }
      },
      error: function(error) {
        // اگر درخواست با خطا مواجه شد
        $("#error").show();
      }
    });
  }

  // فعال کردن دکمه ارسال فرم
  $("#submit").on("click", sendForm);
});
</script>

فایل PHP که از طریق Ajax براش درخواست میفرستیم:

<?php

// بررسی اعتبار داده های فرم
if (empty($_POST['name'])) {
  echo "نام الزامی است.";
  exit();
}

if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
  echo "ایمیل معتبر نیست.";
  exit();
}

if (empty($_POST['phone'])) {
  echo "شماره تماس الزامی است.";
  exit();
}

if (empty($_POST['subject'])) {
  echo "موضوع پیام الزامی است.";
  exit();
}

if (empty($_POST['comments'])) {
  echo "پیام الزامی است.";
  exit();
}

if ($_POST['verify'] != $_SESSION['verify']) {
  echo "کد امنیتی اشتباه است.";
  exit();
}

// ارسال ایمیل
$to = "info@example.com";
$subject = $_POST['subject'];
$message = $_POST['comments'];
$headers = "From: " . $_POST['name'] . " <" . $_POST['email'] . ">";

mail($to, $subject, $message, $headers);

// پیام موفقیت را نمایش دهید
echo "پیام شما با موفقیت ارسال شد.";

// کد امنیتی را برای ارسال بعدی ذخیره کنید
$_SESSION['verify'] = rand(10000, 99999);

?>

فایل HTM:

<div id="success" class="alert alert-success" style="display: none;">
  پیام شما با موفقیت ارسال شد.
</div>

<div id="error" class="alert alert-danger" style="display: none;">
  یک خطا رخ داده است. لطفا دوباره امتحان کنید.
</div>

زمانی که کاربر رو دکمه ثبت کلیک میکنه، بجای اینکه بره توی صفحه مد نظر و اطلاعات ثبت بشه و برگرده، این کار با جاوا اسکریپت و Ajax انجام میشه و نتیجه رو همونجا نشون میده.

نکته: دلیل اینکه صفحه سفید دارید اینه که اطلاعات فرم بدرستی ارسال نشدن و شما سمت سرور exit کردید. – رضا رمضانپور 6 ماه پیش
ممنون الان فقط یه مشکلی که هست من این کد شما رو که دادید زدم و هر کاری میکنم میگه خطایی رخ دادهامکانش هست کد رو بدم یه نگاهی بندازید یا اگه میشه کد کاملش رو بهم بدیدمن اولین کارم هستش و زیاد جاوا اسکریپت و php بلد نیستمممنون میشم کمکم کنید ❤️ – toxicrez 6 ماه پیش
این کل فایل ها هستن از استایل تا جاوا اسکریپت و...https://rozup.ir/info/3748114/Contactخیلی ممنونتون میشم لطف کنید بهم ❤️ – toxicrez 6 ماه پیش

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

این سوال حل نشده است!

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