Jump to content
  • 0

сессии


necro
 Share

Question

День добрый, есть файл main.tpl в нем прописан код всплывающего окна, которое открывается при загрузке любой странице на сайта. В этом окне есть форма, при отправке данных происходит перезагрузка страницы и окно всплывает опять, нужно было сделать так, чтобы после отправки окно больше не всплывалась.

Сделал это так:

Вот форма


<form method="POST" action="send.php" class="popupForm">
<input type="text" name="name" class="name" value="Имя" onfocus="if (this.value == 'Имя') {this.value = '';}" onblur="if (this.value == '') {this.value ='Имя';}"/>
<input type="text" name="phone" class="number"value="Номер" onfocus="if (this.value == 'Номер') {this.value = '';}" onblur="if (this.value == '') {this.value ='Номер';}"/>
<input type="submit" class="btn4" value="Получи свой сертификат" name="form_submit" style="margin-top:10px;" onclick="document.getElementById('parent_popup').style.display='none';">
</form>
<a class="close" title="Закрыть" onclick="document.getElementById('parent_popup').style.display='none';">X</a>

Вот обработка формы:


<? session_start();
$_SESSION['form_submit'] = 1;
$name=$_POST["name"];
$phone=$_POST["phone"];
/*if (empty($_POST['phone']))
{
echo "<center><b>Не указан номер телефона !!!<p>";
echo "<a href=index.html> Нажмите, чтобы вернуться и ввести номер.</a>";
exit;
}*/
$to = "123@gmail.com";
$subject = "Здравствуйте, Вам пришла заявка на получение сертифика с сайта ";
$message = "Добрый день, пришла новая заявка от \n";
if (isset($_POST['name'])) {
$message .= "Имя:".$_POST['name']." \n";
}
if (isset($_POST['phone'])) {
$message .= "Телефон:".$_POST['phone']." \n";
}
mail ($to,$subject,$message) or print "Не можем отправить сообщение, попробуйте позже!!!";
echo "<meta http-equiv='Refresh' content='0; URL=index.html'>";
exit;

Вот проверка


<? if (!isset($_SESSION['form_submit']) || $_SESSION['form_submit'] != 1) { ?>
<script type="text/javascript">
var delay_popup = 5000;
setTimeout("document.getElementById('parent_popup').style.display='block'", delay_popup);
</script><?}?>

делал var_dump($_SESSION)

передает - ["form_submit"]=> int(1)

Но все равно, форма выводится, мб кто подскажет, где косяк.

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

<? if (!isset($_SESSION['form_submit']) || $_SESSION['form_submit'] != 1) { ?>
<script type="text/javascript">
var delay_popup = 5000;
setTimeout("document.getElementById('parent_popup').style.display='block'", delay_popup);
</script><?}?>

я бы сделал так:


<?php
if (!isset($_SESSION['form_submit']) || $_SESSION['form_submit'] != 1) {
echo "<script type=\"text/javascript\">\n
var delay_popup = 5000;\n
setTimeout(\"document.getElementById('parent_popup').style.display='block'\", delay_popup);\n
</script>";
}
?>

Edited by Cerberus
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy