[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка в скрипте PHP
linnard
Пишу скрипт для добавления опросов. После заполнения полей данные проверяются и идут в базу, если ошибок нет, необходимо создать отдельный файл с названием опроса, и самим опросом. Содержимое для записи хранится в отдельном файле, который перед записью будет инклудится. Но в нем возникает ошибка: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in engine\content.php on line 16

Вот сам код (Не полный):


<?php
$content = <<< HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<
title>$title_file</title>
<
meta name="keywords" content="" />
<
meta name="description" content="" />
<
link href="http://localhost/default.css" rel="stylesheet" type="text/css" media="screen" />
</
head>
<
body>
<
div id=incontent>


$user_ip = $_SERVER['REMOTE_ADDR']; #на этой строке возникает ошибка
$hours = (60 * (date('H')) +(date('i')));
$select_ip = @mysql_query("SELECT * FROM `users_ip` WHERE ip='".$user_ip."'");
$res_ip=@mysql_fetch_array($select_ip);
$time_ip= $hours - 60 ;
if (($time_ip>= $res_ip['hours']) OR (@mysql_num_rows($select_ip) == '0'))
{
if (@mysql_num_rows($select_ip) == '1')
{
$delete_ip = @mysql_query("DELETE FROM `users_ip` WHERE ip='".$_SERVER['REMOTE_ADDR']."'");
}
}


</body>
</
html>

HTML;
?>




Спустя 2 минуты, 48 секунд (21.07.2010 - 16:14) Basili4 написал(а):
}

</body>
</html>

HTML;
?> вот это надо писать по другому вот так
}

?>
</body>
</html>

Спустя 1 минута, 55 секунд (21.07.2010 - 16:16) KaFe написал(а):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<
title><?php echo $title_file;?></title>
<
meta name="keywords" content="" />
<
meta name="description" content="" />
<
link href="http://localhost/default.css" rel="stylesheet" type="text/css" media="screen" />
</
head>
<
body>
<
div id=incontent>

<?php
$user_ip = $_SERVER['REMOTE_ADDR']; #на этой строке возникает ошибка
$hours = (60 * (date('H')) +(date('i')));
$select_ip = @mysql_query("SELECT * FROM `users_ip` WHERE ip='".$user_ip."'");
$res_ip=@mysql_fetch_array($select_ip);
$time_ip= $hours - 60 ;
if (($time_ip>= $res_ip['hours']) OR (@mysql_num_rows($select_ip) == '0'))
{
if (@mysql_num_rows($select_ip) == '1')
{
$delete_ip = @mysql_query("DELETE FROM `users_ip` WHERE ip='".$_SERVER['REMOTE_ADDR']."'");
}
}

?>

</body>
</
html>

Вроде бы ничего не забыл

Спустя 3 минуты, 41 секунда (21.07.2010 - 16:20) linnard написал(а):
Спасибо, сейчас попробую

Спустя 6 минут, 53 секунды (21.07.2010 - 16:27) linnard написал(а):
Возможно вы не поняли. Мне необходимо назначить весь кусок кода вместе с ШТМЛ одной переменной $content. потом с помощью функции fwrite эту переменную я должен записать в файл

Спустя 52 секунды (21.07.2010 - 16:28) MatrixGod написал(а):
linnard
heredoc надо закрыть после <div id=incontent>.
</body> и </html> вывести через echo.

Спустя 4 минуты, 44 секунды (21.07.2010 - 16:32) MatrixGod написал(а):
Цитата (linnard @ 21.07.2010 - 13:27)
Возможно вы не поняли. Мне необходимо назначить весь кусок кода вместе с ШТМЛ одной переменной $content. потом с помощью функции fwrite эту переменную я должен записать в файл

зачем тогда heredoc?
запихни все это дело в переменную обычным образом.
$str = 'тут весь код';

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

Спустя 37 минут, 46 секунд (21.07.2010 - 17:10) linnard написал(а):
Подскажите пожалуйста как экранировать

Спустя 18 минут, 36 секунд (21.07.2010 - 17:29) linnard написал(а):
Цитата (linnard @ 21.07.2010 - 14:10)
обрати внимание, юзай одинарные кавычки чтоб переменные не обрабатывались.
у тебя там в скрипте уже где-то есть одинарные кавычки так что или экранируй их или переделай на двойные, иначе выдаст эррор! 

Подскажите пожалуйста как экранировать

Спустя 3 минуты, 27 секунд (21.07.2010 - 17:32) MatrixGod написал(а):
linnard
ставишь символ "\" до знака. но я бы на твоем месте поменял все на двойные.
я сделал у меня работает...

Спустя 5 минут, 30 секунд (21.07.2010 - 17:38) MatrixGod написал(а):
на, готовый рабочий вариант!
<?php
$content = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<title>$title_file</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="http://localhost/default.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<div id=incontent>


$user_ip = $_SERVER["REMOTE_ADDR"];
$hours = (60 * (date("H")) +(date("i")));
$select_ip = @mysql_query("SELECT * FROM `users_ip` WHERE ip=$user_ip");
$res_ip=@mysql_fetch_array($select_ip);
$time_ip= $hours - 60 ;
if (($time_ip>= $res_ip["hours"]) OR (@mysql_num_rows($select_ip) == "0"))
{
if (@mysql_num_rows($select_ip) == "1")
{
$delete_ip = @mysql_query("DELETE FROM `users_ip` WHERE ip=$_SERVER["REMOTE_ADDR"]");
}
}

</body>
</html>'
;

?>

Спустя 1 час, 41 минута, 45 секунд (21.07.2010 - 19:19) linnard написал(а):
Благодарю, однако всеравно незадача...уже все мозги проел. В файл все записывается, а вот скрипт сам работать не хочет.

Например:

$delete_ip = @mysql_query("DELETE FROM `users_ip` WHERE ip=$_SERVER["REMOTE_ADDR"]"); //пишет что ошибка

Спустя 1 минута, 30 секунд (21.07.2010 - 19:21) Basili4 написал(а):
$_SERVER["REMOTE_ADDR"] замени на

\"$_SERVER['REMOTE_ADDR']\"

Спустя 3 минуты, 12 секунд (21.07.2010 - 19:24) linnard написал(а):
Если заменю, будет ругаться Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING У меня другая ситуация, прочтите пожавлуйста первое сообщение

Спустя 1 минута, 53 секунды (21.07.2010 - 19:26) MatrixGod написал(а):
убери их ваще и радуйся жизни...
$delete_ip = @mysql_query("DELETE FROM `users_ip` WHERE ip=$_SERVER[REMOTE_ADDR]");

Спустя 30 минут, 50 секунд (21.07.2010 - 19:57) linnard написал(а):
Убрал, ошибку не выбивает, однако строка с данными из базы не удаляется...

Спустя 15 минут, 41 секунда (21.07.2010 - 20:12) Basili4 написал(а):
и не будет во первых ухо бокирует вывод ошибок
во вторых должен быть в кавычках
$_SERVER[REMOTE_ADDR]

Спустя 20 минут, 5 секунд (21.07.2010 - 20:32) linnard написал(а):
Цитата (Basili4 @ 21.07.2010 - 17:12)
и не будет во первых ухо бокирует вывод ошибок
во вторых должен быть в кавычках
$_SERVER[REMOTE_ADDR]

Если поставлю ковычки то выбьет ошибку. возможно есть другой выход?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.