Здравствуйте, я хотел включить скрипт, который запрещает пользователям делать многопользовательскую передачу до сих пор. Хорошо, работает так, что блокирует пользователь перенаправляет на destination.html после отправки одного раза, но я получаю всю информацию, даже когда он получает сообщение об ошибке. Поэтому вопрос в том, что я не знаю, где именно поставить этот код или использовать его для моих нужд:Куда поместить тег if (! Isset) в уже закодированный processform.php
if (!isset($_SESSION['validsubmit']) || !$_SESSION['validsubmit']) {
echo "ERROR: Invalid form submission, or form already submitted!";
} else {
$_SESSION['validsubmit'] = false;
}
Внутри моей PROCES формы PHP то здесь shoren версия:
<?php
session_start();
require_once('formvalidator.php');
if(isset($_POST['form_btn'])) {
$validator = new simple_fv;
// fields info container
$fields = array();
// fill the container with fields data
$fields[] = array('index'=>'name', 'label'=>'Name', 'required'=>true, 'max_len'=>25);
$fields[] = array('index'=>'surname', 'label'=>'surname', 'required'=>true, 'max_len'=>30);
$indexes[] = array('index'=>'email', 'label'=>'E-mail', 'required'=>true, 'type'=>'email', 'max_len'=>200);
$fields[] = array('index'=>'phone', 'label'=>'phone number', 'required'=>true, 'type'=>'int', 'min_len'=>4);
// validate the fields
$validator->formHandle($fields);
// get errors
$error = $validator->getErrors();
// if errors is not FALSE - print the succesfull message
if($error) {echo $error;}
else {if(isset($_POST['name']))
$emotion = $_POST['emotion'];
if($emotion == 'Basic Pack') {
session_start();
$_SESSION['form_finished'] = true;
header('Location: /destination/basicc.php');
} elseif($emotion == 'Deluxe Pack') {
header('Location: html6.php');
} elseif($emotion == 'Premium Pack') {
header('Location: html7.php');
}
$to = '[email protected]';
$subject = 'NEWLOGO CLIENT FORM';
$headers = 'From: ' . $_POST['email'] . "\r\n" . 'Reply-To: ' . $_POST['email'];
$message = 'Name: ' . $_POST['name'] . "\n" .
'Surname: ' . $_POST['surname'] . "\n" .
'E-mail: ' . $_POST['email'] . "\n" .
'Phone: ' . $_POST['phone']. "\n" .
mail($to, $subject, $message, $headers);
if($_POST['copy'] == 'on')
{
mail($_POST['email'], $subject, $message, $headers);
} }
}
?>
Я хочу сделать так, чтобы при первом отправке пользователь перешел на мою страницу redictet, но во второй раз не просто для того, чтобы показать это эхо "ERROR: Invalid form submission, or form already submitted!"
, и письмо не нужно отправлять в этом случае.
я просто попробовал ваш ответ, и я получаю «заголовки уже посланные» ошибкой и линия именно там, где начинается первый заголовок в этом случае: 'header (' Location: /destination/basicc.php '); 'кроме этого спасибо –
Это сработало @ Джон Конде, я ошибся, спасибо, очень чувак, это была моя последняя часть для завершения моей формы, у меня хороший день :) –