2013-05-09 2 views
-2

Форма, которую я создал ниже, представляет собой входные данные в CSV-файле. Проблема, с которой я столкнулась, - это каждый раз, когда браузер загружает страницу, на которую он отправляет пустую версию CSV-файла, и после отправки формы. Я хочу, чтобы она перенаправлялась на страницу «спасибо». Как я могу это сделать?Форма отправки по электронной почте в браузере load

РНР я использую перед HTML форме:

<?php 
if(isset($_POST['formSubmit'])) { 
} 

$email=$_REQUEST['email']; 
$firstName=$_REQUEST['firstName']; 
$lastName=$_REQUEST['lastName']; 


$to = "[email protected]"; 
$subject = "New application submission"; 


$message = "". 
"Email: $email" . "\n" . 
"First Name: $firstName" . "\n" . 
"Last Name: $lastName"; 


//The Attachment  
$varTitle = $_POST['formTitle'];  
$varForname = $_POST['formForname']; 
$varMiddlename = $_POST['formMiddlename']; 
$varSurname = $_POST['formSurname']; 
$varKnownas = $_POST['formKnownas']; 
$varAdressline1 = $_POST['formAdressline1']; 
$varAdressline2 = $_POST['formAdressline2']; 
$varAdressline3 = $_POST['formAdressline3']; 
$varAdressline4 = $_POST['formAdressline4']; 
$varAdressline5 = $_POST['formAdressline5']; 
$varPostcode = $_POST['formPostcode']; 
$varTelephone = $_POST['formTelephone']; 
$varMobile = $_POST['formMobile']; 
$varEmail = $_POST['formEmail']; 
$varApproval = $_POST['formApproval']; 
$varothersurname = $_POST['formothersurname']; 
$varsex = $_POST['formsex']; 
$varninumber = $_POST['formninumber']; 
$varjobtitle = $_POST['formjobtitle']; 
$vardates = $_POST['formdates']; 
$varresponsibilities = $_POST['formresponsibilities']; 
$varjobtitle2 = $_POST['formjobtitle2']; 
$vardates2 = $_POST['formdates2']; 
$varresponsibilities2 = $_POST['formresponsibilities2']; 
$varjobtitle3 = $_POST['formjobtitle3']; 
$vardates3 = $_POST['formdates3']; 
$varresponsibilities3 = $_POST['formresponsibilities3']; 
$varwebsite = $_POST['formwebsite']; 
$vartshirt = $_POST['formtshirt']; 
$vardietary = $_POST['formdietary']; 
$varpc = $_POST['formpc']; 
$varmac = $_POST['formmac']; 
$varlaptop = $_POST['formlaptop']; 
$vardongle = $_POST['formdongle']; 
$varediting = $_POST['formediting']; 
$varsocial = $_POST['formsocial']; 
$varphotography = $_POST['formphotography']; 
$varfilming = $_POST['formfilming']; 
$vartraining = $_POST['formtraining']; 
$varexhibition = $_POST['formexhibition']; 
$varspecial = $_POST['formspecial']; 
$varhobbies = $_POST['formhobbies']; 
$varphotography = $_POST['formphotography']; 
$varfilming = $_POST['formfilming']; 
$vartraining = $_POST['formtraining']; 
$varexcel = $_POST['formexcel']; 
$varbigpicture = $_POST['formbigpicture']; 
$varcriminal = $_POST['formcriminal']; 

$cr = "\n"; 
$data = "$varTitle" . ',' . "$varForname" . ',' . "$varMiddlename" . ',\\other variables. 


$attachments[] = Array( 
    'data' => $data, 
    'name' => 'application.csv', 
    'type' => 'application/vnd.ms-excel' 
); 


//Generate a boundary string 

$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 


//Add the headers for a file attachment 


$headers = "MIME-Version: 1.0\n" . 
     "From: {$from}\n" . 
     "Cc: [email protected]\n". 
     "Content-Type: multipart/mixed;\n" . 
     " boundary=\"{$mime_boundary}\""; 


//Add a multipart boundary above the plain message 


$message = "This is a multi-part message in MIME format.\n\n" . 
     "--{$mime_boundary}\n" . 
     "Content-Type: text/html; charset=\"iso-8859-1\"\n" . 
     "Content-Transfer-Encoding: 7bit\n\n" . 
     $text . "\n\n"; 


//Add sttachments 

foreach($attachments as $attachment){ 
$data = chunk_split(base64_encode($attachment['data'])); 
$name = $attachment['name']; 
$type = $attachment['type']; 




$message .= "--{$mime_boundary}\n" . 
      "Content-Type: {$type};\n" . 
      " name=\"{$name}\"\n" .    
      "Content-Transfer-Encoding: base64\n\n" . 
      $data . "\n\n" ; 


$message .= "--{$mime_boundary}--\n"; 
mail($to, $subject, $message, $headers); 


} 

?> 

ответ

3

Ваша линия в верхней части, которая проверяет, чтобы увидеть, если страница является формой представить, не расширяется для всей функции.

Вы в настоящее время:

if(isset($_POST['formSubmit'])) { 
} 

Однако закрывающая скобка} должен быть полностью на дне, прямо перед>?. В настоящее время ваш код выполняет проверку, чтобы проверить, существует ли форма отправки, и если это так, ничего не выполняется, поскольку в этих скобках нет кода. После этого он автоматически запускается через весь ваш другой код, независимо от того, была ли она подана или нет.

Если Вы желаете страницы перенаправлять, поместите следующий код непосредственно перед вновь перешли закрывающую скобку:

header('Location: http://www.yoursite.com/new_page.php'); 
+0

заголовок код PHP для перенаправления не работает – user2338461

+0

следующее г – user2338461

Смежные вопросы