2016-07-19 4 views
-1

EDIT: nvm, мои плохие, в основном неправильно читаемые ошибки повторно. Не забудьте проверить даты и очистить журналы с умом.PHP, не удается найти синтаксические ошибки

Журналы Apache сообщают об ошибках в строках 2,5 и 23, в отношении неожиданных «эхо», «переключателей» и «эхо». Я считаю, что уже проверил все возможные точки с запятой, но я до сих пор не могу найти, где проблемы.

Кроме того, не уверен, что если точка с запятой после Heredoc

<?php 
if($_FILES){ 
$image = $_FILES['filename']['name']; 

switch ($_FILE['filename']['type']) { 
    case 'image/jpeg': $ext = 'jpg'; 
     break; 
    case 'image/png': $ext = 'png'; 
     break; 
    case 'iamge/gif': $ext = 'gif'; 
     break; 
    default: $ext = ''; 
     break; 
} 
if($ext) 
    move_uploaded_file($_FILES['filename']['name'], "images/$image.$ext"); 
} 

//$post_number = $post_number + 1; 
$name = $_POST['name']; 
$comment = $_POST['comment']; 

$text = echo <<<_END 
<article> 
    //<h3> '$post_number'</h3> 
    <h4>'$name'</h4> 
    <br> 
    <p> '$comment' </p> 
    <img src=images/'$image.$ext'> 
</article> 
_END; 

$file = fopen("index.php", 'r+'); 
fseek($file, -17, SEEK_END); 
fwrite($text); 
fclose($file); 
?> 
+0

Вы не нуждаетесь в 'echo' при использовании синтаксиса heredoc, который выглядит нормально, кроме этого. – iainn

+0

'echo' ничего не возвращает http://php.net/manual/en/function.echo.php –

+0

как/где этот файл используется? это включение в нечто другое? –

ответ

0

Я вижу несколько проблем должны быть добавлены:

1-й: Заменить эту строку

$text = echo <<<_END 

С это

$text = <<< "_END" 

Если вы хотите эхо, сделайте echo $text позже. Также убедитесь, что есть ничего кроме _END; на закрывающей линии. Нет вкладок, пробелов до или после _END; (see the docs).

2nd: Ваш fwrite будет ошибкой, потому что ему нужен дескриптор файла, а не только текст для записи. Пока вы на нем, вы должны проверить, что файл был успешно открыт, прежде чем пытаться записать его. Замените операции с файлом следующим кодом:

if($file = fopen("index.php", 'r+')){ 
    fseek($file, -17, SEEK_END); 
    fwrite($file, $text); 
    fclose($file); 
}else{/* Todo: handle fopen failure */} 

Счастливое кодирование.

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