2015-02-18 5 views
0

Я пытаюсь создать функциональную форму с php. Сначала я сделал файл index.html и еще один файл с именем send.php. Но это не сработало. Я также пытался вставить «эхо» в send.php, и это сработало! Поэтому я преобразовал index.html в index.php, и я поместил его в php-код, прежде чем тег закрыл тег тега, но он не сработал! Поэтому я понял, что ошибка была в коде, но я скопировал эти строки из Интернета, и я не очень хорошо знаю php. Кто-нибудь может мне помочь? Это код:Не удается получить php для вывода формы

Поле = "" полей верно, я проверил.

<?php 
$name = ($_POST['name']; 
$mail = ($_POST['mail']; 
$budjet = ($_POST['budjet']; 
$society = ($_POST['society']; 
$message = ($_POST['message']; 
$error = "Message sending failed"; 
$errorMessage = "Sorry your message can not be sent."; 

//Validate first 
if(empty($name)||empty($mail)||empty($budjet)||empty($society)||empty($message)) 
{ 
    echo "Please fill al the fields"; 
    header('Location: index.html'); 
} 
//validate against any email injection attempts 
if(IsInjected($email)) 
{ 
    echo "Bad email value"; 
    header('Location: index.html'); 
} 

$msg = "Name : $name \r\n"; 
$msg = "Mail : $mail \r\n"; 
$msg = "Budjet: $budjet \r\n"; 
$msg = "Society: $society \r\n"; 
$msg = "Message : ".stripslashes($_POST['message'])."\r\n\n"; 
$msg = "User information \r\n"; 
$msg = "User IP : ".$_SERVER["REMOTE_ADDR"]."\r\n"; 
$msg = "Browser info : ".$_SERVER["HTTP_USER_AGENT"]."\r\n"; 
$msg = "User come from : ".$_SERVER["SERVER_NAME"]; 

$recipient = "[email protected]"; // Change the recipient email adress to your adrees 
$sujet = "Mail da Contact di Hindeto"; 
$mailheaders = "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n"; 

if (!$error){ 

     $sending = mail($recipient, $sujet, $msg, $mailheaders); 

     if ($sending) { 
       // If the message is sent we output a string to use it 
       echo "Sent"; 
      } else { 
       // Display Error Message 
       echo $errorMessage; 
      } 
    } else { 
     echo $error; // Display Error Message 
    } 


// Function to validate against any email injection attempts 
function IsInjected($str) 
{ 
    $injections = array('(\n+)', 
       '(\r+)', 
       '(\t+)', 
       '(%0A+)', 
       '(%0D+)', 
       '(%08+)', 
       '(%09+)' 
      ); 
    $inject = join('|', $injections); 
    $inject = "/$inject/i"; 
    if(preg_match($inject,$str)) 
    { 
    return true; 
    } 
    else 
    { 
    return false; 
    } 
} 
?> 
+0

У вас есть ошибки синтаксиса – ErasmoOliveira

ответ

0

у вас есть ошибка синтаксиса в первые 5 строк удалить ( до того $_POST

$name = $_POST['name']; 
$mail = $_POST['mail']; 
$budjet = $_POST['budjet']; 
$society = $_POST['society']; 
$message = $_POST['message']; 

и после header('Location: index.html'); и header('Location: index.html'); печати exit();

header('Location: index.html'); 
exit(); 
+0

Спасибо! До исправления страницы даже не загружалась (появилось сообщение = Ошибка анализа: синтаксическая ошибка, неожиданная ';' в /index.php в строке 277, но ничего больше), теперь страница полностью загружается, но внизу появляется как эхо «Пожалуйста, заполните все поля» и «Ошибка отправки сообщения», и письмо не приходит, когда я пытаюсь. – LFoscari

+0

Спасибо! Теперь он работает – LFoscari

0

В дополнение к Jetawe, вы должны использовать IsSet() в инструкции проверки.

$name = ((!isset($_POST['name']) || empty($_POST['name'])) ? null:$_POST['name']); 
Смежные вопросы