Member 13620887 Ответов: 2

Кажется, я не могу найти свою ошибку кода, в настоящее время самостоятельно изучаю php. Пожалуйста помогите мне ребята


<?php
	// create short variable name
		$document_root = $_SERVER['DOCUMENT_ROOT'];
	?>
<html>
	<head>
		<title>Yudz Tech - Order Results</title>
	</head>
	<body>
		<h1>Yudz Technology</h1>
		<h2>Customer Orders</h2>
		<?php 
			@ $fp = fopen("orders.txt", 'rb');
			flock($fp, LOCK_SH); // lock file for reading
			
			if (!$fp){
				echo"<p>No orders pending.
				Please try again later.</p>";
				exit;
			}
			
			while(!feof($fp)){
			$order = fgets($fp);
			echo htmlspecialchars($order)."<br />;
			}
			
			flock($fp, LOCK_UN); //release read lock
			fclose($fp);
			
		?>
	</body>
</html>


Что я уже пробовал:

хорошо, я изменил свой код, добавил закрытие . теперь он показывает это

Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\yudztech\vieworders.php on line 32

ThilinaMD

сначала проверьте наличие открытых и закрытых скобок,{ } и тегов <?php , ?>

Member 13620887

да, я осмотрел их все, и все готово.

David_Wimbley

Когда я публикую ваш код в блокноте, он содержит только 30 строк, поэтому моим первым предложением было бы опубликовать первые фактические 32 строки вашего кода (или, скажем, 40 строк) вместо этого фрагмента. Все это-игра в угадайку для нас. Если мы можем видеть строку, которая указывает на ошибку.

Мое другое предложение - удалить ваши знаки@. Я немного заржавел на своем PHP, но я считаю, что они предназначены для подавления любых сообщений об ошибках. Подавляя сообщения об ошибках, все, что вы делаете, - это пинаете банку дальше по дороге и причиняете себе еще больше головной боли, поскольку "ошибка" срабатывает как ложноположительный результат.

Удалите свои знаки @ , а затем повторите код.

Peter_in_2780

В этом случае, похоже, его @ является законным. Это распространенная идиома-пытаться открыть файл, а затем рассматривать случай сбоя как "несуществующий файл".

Peter_in_2780

Это трудно сказать, когда ваш код неформатирован, но обычная причина этой ошибки заключается в том, что есть что-то unterminated. Это может быть простая строка в кавычках или блок { ... }. Интерпретатор ищет конец "чего-то", чтобы подобрать следующее "что-то", но оно упало с конца вашего файла, прежде чем он его нашел.
Пожалуйста, отредактируйте свой вопрос, поместите свой код в "блок кода", выбрав PHP в качестве языка.

Richard MacCutchan

Ваш тег <title> не прекращается.

2 Ответов

Рейтинг:
16

Patrice T

echo htmlspecialchars($order)."<br>;

Вы уверены, что эта строка не нуждается во второй цитате?

Совет: проверьте полученный hrml, тег endding отсутствует.
<title>Yudz Tech - Order Results


Рейтинг:
1

Dirk Bahle

<?php
	// create short variable name
		$document_root = $_SERVER['DOCUMENT_ROOT'];
	?>

	
		<title>Yudz Tech - Order Results</title>
	
	
		<h1>Yudz Technology</h1>
		<h2>Customer Orders</h2>
		<?php 
			@ $fp = fopen("orders.txt", 'rb');
			flock($fp, LOCK_SH); // lock file for reading
			
			if (!$fp){
				echo"<p>No orders pending.
				Please try again later.</p>";
				exit;
			}
			
			while(!feof($fp)){
			$order = fgets($fp);
			echo htmlspecialchars($order)."<br>;
			}
			
			flock($fp, LOCK_UN); //release read lock
			fclose($fp);
			
		?>