[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Народ помогите идиоту 8)
ThExEnD
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/PHP/page.php on line 51

<?php
// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
session_start();
$db=mysql_connect("localhost","regdaemon","qwaszx");
$dbs=mysql_select_db(test,$db);
if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички
else
{ exit("Вы зашил на страницу без параметра!");} //если не указали id, то выдаем ошибку
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку
}
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login={'$login'} AND password={'$password'}",$db);
$myrow2 = mysql_fetch_array($result2);
if (empty($myrow2['id']))

{
//Если не действительны (может мы удалили этого пользователя из базы за плохое поведение)

exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
}

else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
$result = mysql_query("SELECT * FROM users WHERE id={'$id'}",$db);
$myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id
if (empty($myrow['login'])) { exit("Пользователя не существует! Возможно он был удален.");} //если такого не существует
?>
<html>
<
head>
<
title><?php echo $myrow['login'];?></title>
<
link rel="stylesheet" type="text/css" href="style.css">
<
link rel="stylesheet" type="text/css" href="style2.css">
</
head>
<
body>

<
h2>Пользователь <?php echo $myrow['login']; ?></h2>
<?php
print <<<HERE
|<a href='page.php?id=$myrow2[id]'>Моя страница</a>|
<a href='index.php'>Главная страница</a>|
<a href='all_users.php'>Список пользователей</a>|
<a href='exit.php'>Выход</a><br><br>
HERE;
//выше вывели меню
if (
$myrow['login'] == $login) { <!--!!!!СТРОКА С ОШИБКОЙ но чета я ниче тута ошибочного не вижу.....-->
print <<<HERE
<form action='update_user.php' method='post'>
Ваш логин <strong>
$myrow['login']</strong>. Изменить логин:<br>
<input name='login' type='text' size="15" maxlenght="15">
<input type='submit' name='submit' value='изменить'>
</form>
<br>
<form action='update_user.php' method='post'>
Изменить пароль:<br>
<input name='password' type='password' size="15" maxlenght="15">
<input type='submit' name='submit' value='изменить'>
</form>
<br>




Спустя 4 минуты, 12 секунд (29.07.2010 - 14:46) Ice написал(а):
Покажите 51 строку.
Всё понял. HERE должно стоять с самого начала строки

Спустя 1 минута, 28 секунд (29.07.2010 - 14:47) ThExEnD написал(а):
if ($myrow['login'] == $login) {

Спустя 28 секунд (29.07.2010 - 14:48) Семён написал(а):
            print <<<HERE
|<a href='page.php?id=$myrow2[id]'>Моя страница</a>|
<a href='index.php'>Главная страница</a>|
<a href='all_users.php'>Список пользователей</a>|
<a href='exit.php'>Выход</a><br><br>
HERE;


Дело в этом куске.

Спустя 1 минута, 33 секунды (29.07.2010 - 14:49) Self написал(а):
heredoc
HERE; - c начала строки, после ; не должно быть пробелов.

Спустя 52 секунды (29.07.2010 - 14:50) Ice написал(а):


print <<<HERE
|<a href='page.php?id=$myrow2[id]'>Моя страница</a>|
<a href='index.php'>Главная страница</a>|
<a href='all_users.php'>Список пользователей</a>|
<a href='exit.php'>Выход</a><br><br>

HERE;

Должно быть так. И во втором куске тоже.

Спустя 51 секунда (29.07.2010 - 14:51) ThExEnD написал(а):
А епт пробелы =) tongue.gif Извиняйте я нубеер =)



Спустя 30 секунд ThExEnD написал(а):
ph34r.gif Обещаю исправлюсь!

Спустя 5 минут, 50 секунд (29.07.2010 - 14:57) ThExEnD написал(а):
<?php
// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
session_start();
$db=mysql_connect("localhost","regdaemon","qwaszx");
$dbs=mysql_select_db(test,$db);
if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички
else
{ exit("Вы зашил на страницу без параметра!");} //если не указали id, то выдаем ошибку
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку
}
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password'",$db);
$myrow2 = mysql_fetch_array($result2);
if (empty($myrow2['id']))

{
//Если не действительны (может мы удалили этого пользователя из базы за плохое поведение)

exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
}
}

else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
$result = mysql_query("SELECT * FROM users WHERE id='$id'",$db);
$myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id
if (empty($myrow['login'])) { exit("Пользователя не существует! Возможно он был удален.");} //если такого не существует
?>
<html>
<
head>
<
title><?php echo $myrow['login'];?></title>
<
link rel="stylesheet" type="text/css" href="style.css">
<
link rel="stylesheet" type="text/css" href="style2.css">
</
head>
<
body>

<
h2>Пользователь <?php echo $myrow['login']; ?></h2>
<?php
print <<<HERE
|<a href='page.php?id=$myrow2[id]'.>Моя страница</a>|
<a href='index.php'>Главная страница</a>|
<a href='all_users.php'>Список пользователей</a>|
<a href='exit.php'>Выход</a><br><br>

HERE;
//выше вывели меню
if ($myrow['login'] == $login) {
print <<<HERE
<form action='update_user.php' method='post'>
Ваш логин <strong>
$myrow['login']</strong>. Изменить логин:<br>
<input name='login' type='text' size="15" maxlenght="15">
<input type='submit' name='submit' value='изменить'>
</form>
<br>
<form action='update_user.php' method='post'>
Изменить пароль:<br>
<input name='password' type='password' size="15" maxlenght="15">
<input type='submit' name='submit' value='изменить'>
</form>
<br>
<h2>Личные сообщения:</h2>

HERE;

$tmp = mysql_query("SELECT * FROM messages WHERE poluchatel='$login' ORDER BY id DESC",$db);
$messages = mysql_fetch_array($tmp);
//извлекаем сообщения пользователя, сортируем по идентификатору в обратном порядке, т.е. самые новые сообщения будут вверху
if (!empty($messages['id'])) {
do //выводим все сообщения в цикле
{
$author = $messages['author'];
$result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'",$db); //извлекаем аватар автора
$myrow4 = mysql_fetch_array($result4);

printf("
<table>
<tr>

<td><a href='page.php?id=%s'><img alt='аватар' src='%s'></a></td>

<td>Автор: <a href='page.php?id=%s'>%s</a><br>
Дата: %s<br>
Сообщение:<br>

%s<br>
<a href='drop_post.php?id=%s'>Удалить</a>


</td>
</tr>
</table><br>
"
,$myrow4['id'],$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);
//выводим само сообщение
}
while($messages = mysql_fetch_array($tmp));
}
else {
//если сообщений не найдено
echo "Сообщений нет";
}


}

else
{
//если страничка чужая, то выводим только некторые данные и форму для отправки личных сообщений
print <<<HERE
<form action='post.php' method='post'>
<br>
<h2>Отправить Ваше сообщение:</h2>
<textarea cols='43' rows='4' name='text'></textarea><br>
<input type='hidden' name='poluchatel' value='
$myrow[login]'>
<input type='hidden' name='id' value='
$myrow[id]'>
<input type='submit' name='submit' value='Отправить'>

</form>

HERE;
}
?>
</body>
</
html>



Вроде все исправил теперь Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/PHP/page.php on line 54

Спустя 5 минут, 23 секунды (29.07.2010 - 15:02) Michael написал(а):
Обрами вот это:
$myrow['login']
скобочками:
{$myrow['login']}


.....

Вот это:
$myrow2[id]
также вызывает подозрения

Спустя 2 минуты, 44 секунды (29.07.2010 - 15:05) ThExEnD написал(а):
Чтоб я без вас делал господа =) СПАСИБА!

Спустя 44 секунды (29.07.2010 - 15:06) DedMorozzz написал(а):
|<a href='page.php?id=$myrow2[id]'.>
- это не будет работать
|<a href='page.php?id='.(int)$myrow2[id].'>
- а так будет. (Если у тя айди это число...кто ж тя нает)

Спустя 7 минут, 59 секунд (29.07.2010 - 15:14) ThExEnD написал(а):
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/PHP/page.php:1) in /var/www/PHP/page.php on line 3


Теперь всё выходит =) как нужно но вверху страницы =) ошибка =)

Спустя 31 секунда (29.07.2010 - 15:14) ThExEnD написал(а):
Мне это начинает уже казаться странным

Спустя 57 секунд (29.07.2010 - 15:15) DedMorozzz написал(а):
скопипасти эту ошибку. без номера строки и путей в гугл и тут же найдёшь ответ

Спустя 8 минут, 40 секунд (29.07.2010 - 15:24) Семён написал(а):
Всё дело в BOM (подсказка UTF-8 BOM)

Спустя 7 минут, 6 секунд (29.07.2010 - 15:31) ThExEnD написал(а):
Семен а по подробнее =) я просто нуб ваще

Спустя 1 минута, 26 секунд (29.07.2010 - 15:32) Семён написал(а):
ThExEnD
Подробнее http://ru.wikipedia.org/wiki/UTF-8#.D0.9F.....D1.80.D0.B0.29

Порядок байтов (BOM, сигнатура)

Многие программы Windows (включая Блокнот) добавляют байты 0xEF, 0xBB, 0xBF в начале любого документа, сохраняемого как UTF-8. Это метка порядка байтов Юникода (англ. Byte Order Mark, BOM), также её часто называют сигнатурой (соответственно, UTF-8 и UTF-8 with Signature). Чтобы при сохранении избавиться от добавления сигнатуры, используйте, например, Notepad++ или более простой Notepad2. Так же текстовый редактор Bred при сохранении предлагает опцию, управляющую наличием сигнутуры в UTF файле.

Спустя 2 минуты, 32 секунды (29.07.2010 - 15:35) ThExEnD написал(а):
Спасибо ща попробую

Спустя 4 минуты, 42 секунды (29.07.2010 - 15:40) ThExEnD написал(а):
Чел СПАСИБО!!!!! не знаю как тебя благодарить =) надеюсь когда нить буду знать такие тонкости! СПАСИБО wink.gif

Спустя 38 секунд (29.07.2010 - 15:40) Семён написал(а):
ThExEnD
Бывай. wink.gif
Быстрый ответ:

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