2014-08-30 2 views
-5

Когда я запускаю этот PHP:Javascript в PHP теперь работает

<?php 
$field_name = $_POST['cf_name']; 
$field_email = $_POST['cf_email']; 
$field_message = $_POST['cf_message']; 

$mail_to = '[email protected]'; 
$subject = 'Nova SFI poruka '.$field_name; 

$body_message = 'From: '.$field_name."\n"; 
$body_message .= 'E-mail: '.$field_email."\n"; 
$body_message .= 'Message: '.$field_message; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

if ($mail_status) { ?> 
    <script language="javascript" type="text/javascript"> 
     alert('Message'); 
     window.location = 'contact.html'; 
    </script> 
<?php 
} 
else { ?> 
    <script language="javascript" type="text/javascript"> 
     alert('Message'); 
     window.location = 'contact.html'; 
    </script> 
<?php 
} 
?> 

Javascripts работать нормально, предупреждение выскакивает, и он передает мне разыскиваемую страницу ... Но когда я использую этот PHP вместо:

<?php 

header('Content-Type: text/plain; charset=utf-8'); 

if(isset($_POST['submit'])){ 
if(isset($_POST['answer']) && $_POST['answer'] == 4){ 


$field_name = $_POST['name']; 
$field_lastname = $_POST['lastname']; 
$field_email = $_POST['email']; 
$field_rank = $_POST['rank']; 

$mail_to = 'email'; 
$subject = 'Rank confirmation '.$field_name; 

$body_message = 'From: '.$field_name."\n".$field_lastname."\n".$field_rank."\n"; 
$body_message .= 'E-mail: '.$field_email."\n"; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 


try { 

    // Undefined | Multiple Files | $_FILES Corruption Attack 
    // If this request falls under any of them, treat it invalid. 
    if (
     !isset($_FILES['file']['error']) || 
     is_array($_FILES['file']['error']) 
    ) { 
     throw new RuntimeException('Invalid parameters.'); 
    } 

    // Check $_FILES['file']['error'] value. 
    switch ($_FILES['file']['error']) { 
     case UPLOAD_ERR_OK: 
      break; 
     case UPLOAD_ERR_NO_FILE: 
      throw new RuntimeException('No file sent.'); 
     case UPLOAD_ERR_INI_SIZE: 
     case UPLOAD_ERR_FORM_SIZE: 
      throw new RuntimeException('Exceeded filesize limit.'); 
     default: 
      throw new RuntimeException('Unknown errors.'); 
    } 

    // You should also check filesize here. 
    if ($_FILES['file']['size'] > 1000000) { 
     throw new RuntimeException('Exceeded filesize limit.'); 
    } 

    // DO NOT TRUST $_FILES['file']['mime'] VALUE !! 
    // Check MIME Type by yourself. 
    $finfo = new finfo(FILEINFO_MIME_TYPE); 
    if (false === $ext = array_search(
     $finfo->file($_FILES['file']['tmp_name']), 
     array(
      'jpg' => 'image/jpeg', 
      'png' => 'image/png', 
      'gif' => 'image/gif', 
     ), 
     true 
    )) { 
     throw new RuntimeException('Invalid file format.'); 
    } 

    // You should name it uniquely. 
    // DO NOT USE $_FILES['file']['name'] WITHOUT ANY VALIDATION !! 
    // On this example, obtain safe unique name from its binary data. 
    if (!move_uploaded_file(
     $_FILES['file']['tmp_name'], 
     sprintf('./uploads/%s.%s', 
      sha1_file($_FILES['file']['tmp_name']), 
      $ext 
     ) 
    )) { 
     throw new RuntimeException('Failed to move uploaded file.'); 
    } 
?> 
    <script language="javascript" type="text/javascript"> 
     alert('Confirmed! We will check it in maximum 24 hours!\\nPotvrdjeno! Provericemo za maksimum 24 casa!'); 
     window.location = 'index.html'; 
    </script> 
    <?php 

} catch (RuntimeException $e) { 

    echo $e->getMessage(); 

} 

}else{ ?> 
    <script language="javascript" type="text/javascript"> 
     alert('Security answer incorect! Please try again!\\nBezbednosni odgovor netacan! Pokusajte ponovo!'); 
     window.location = 'index.html'; 
    </script> 
    <?php 
} 
} 



?> 

Это просто не работает, я понятия не имею, что я делаю неправильно. жаль грязного кода

, когда он работает: http://prntscr.com/4hudk9 , когда он не делает: http://prntscr.com/4hud98

+3

В целом "не работает" сразу же получает downvotes мной - это худшее описание ошибки. Вы можете сначала отладить свой код и попытаться выяснить, что из кода не работает. –

+0

Это жуткий код и ужасная архитектура! Потратьте время и используйте шаблоны, рамки и т. Д. И четко разделите свой JS, свой PHP и разметку вашего интерфейса. Поздравляю вас позже :) – Sliq

+0

«Javascript in php» имя для сообщения уже было использовано. Я никогда не изучал JS, или PHP, это просто логика, если она работает, я горжусь, я знаю только HTML. –

ответ

0

Ваш header() в кодовом блоке 2 зовёт для обычного текста. Вы должны установить это на выход Javascript или HTML. Вместо этого используйте один из следующих вызовов header().

Если у вас есть Javascript и HTML на выходе: header('Content-Type: text/html');

Если выход Javascript ТОЛЬКО (HTML-теги): header('Content-Type: application/javascript');

+0

Работает как очарование, спасибо, теперь я знаю еще больше, спасибо снова. –