X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Помогите найти ошибку в коде
infernorays
infernorays
Topic Starter сообщение 20.5.2009, 0:21; Ответить: infernorays
Сообщение #1


Я не очень шарю php
чисто интуитивно и ассоциациями...

нехочет работать
пишет:

Parse error: syntax error, unexpected T_STRING in /www_host/hosts/infernorays.sk6.ru/wr-board/add.php on line 201


[PHP]<? // WR-board v 1.1 // 11.03.05г. // Miha-ingener@yandex.ru
include "config.php";

error_reporting (E_ERROR | E_PARSE);
error_reporting (E_ALL);


// Событие добавления сообщения //
if(isset($_GET['event'])) { if ($_GET['event'] =="add")
{
// Событие добавления сообщения //
$name=$_POST['name'];
$dtemp = explode("|", $_POST['rubrika']);
$katnumber=$dtemp[0]; $katname=$dtemp[1]; $id=$dtemp[2]; $days=$_POST['days'];
if ($name == "" || strlen($name) > $maxname) {print "<center><B>Вернитесь <a href='javascript:history.back(1)'>назад</a> ваше имя пустое, или превышает $maxname символов!</B></center>"; exit;}
$zag=$_POST['zag'];
if ($zag == "" || strlen($zag) > $maxzag) {print "<center><B>Вернитесь <a href='javascript:history.back(1)'>назад</a> вы не ввели заголовок ссылки, или он превышает $maxzag символов!</B></center>"; exit;}
$type=$_POST['type'];
if ($type == "") {print "<center><B>Вернитесь <a href='javascript:history.back(1)'>назад</a> и выбирите тип объявления (<B>Покупка</B> или <B>Продажа</B>).</B></center>"; exit;}
$msg=$_POST['msg'];
if ($msg == "" || strlen($msg) > $maxmsg) {print "<center><B>Вернитесь <a href='javascript:history.back(1)'>назад</a> ваше описание пустое или превышает $maxmsg символов.</B></center>"; exit;}

$deldt=mktime()+$days*86400; // формируем дату удаления объявления
$msg=str_replace("|"," ",$msg);
$text="$katnumber|$katname|$name|$zag|$type|$msg|$date|$deldt|$id";
$text=stripslashes($text);
$text=htmlspecialchars($text);
$text=str_replace("\r\n", "<br>", $text);

$fp=fopen("$id.dat","a+");
flock ($fp,LOCK_EX);//блокировка файла
fputs($fp,"$text\r\n");//записьв файл
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);//снятие блокировки
fclose($fp);
@chmod("$fp", 0644);

// Блок добавляет единицу к кол-ву ссылок в категории
$lines = file($datafile);
$i = count($lines);
do {$i--; $dt = explode("|", $lines[$i]);
$dt[3]=str_replace("\r\n", "", $dt[3]);
if ($id==$dt[3]) {$fnomer=$i; if ($type=="С") {$dt[1]++;} else {$dt[2]++;}
$text="$dt[0]|$dt[1]|$dt[2]|$id";
$file=file($datafile);
$fp=fopen($datafile,"a+");
flock ($fp,LOCK_EX);//блокировка файла
ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА
for ($ii=0;$ii< sizeof($file);$ii++)
{ if ($i!=$ii) {fputs($fp,$file[$ii]);} else {fputs($fp,"$text\r\n");} }
fflush ($fp);//очищение файлового буфера и записьв файл
flock ($fp,LOCK_UN);//снятие блокировки
fclose($fp);
}
} while($i > 0);

// считываем емайл пользователя
$lines=file("usersdat.php");
$i = count($lines);
$rna="0";$rem="0";
do {$i--; $rdt = explode("|", $lines[$i]);
if ($rdt[0]==$name) {$email="$rdt[2]";}
} while($i > "1");

// отправка админу и юзеру сообщения о добавлении объявления
$headers=null; // Настройки для отправки писем
$headers.="Content-Type: text/html; charset=windows-1251\r\n";
$headers.="From: ".$name." <".$adminemail.">\r\n";

// разблокируйте строчку ниже, если хотите получать сообщения о добавлении сообщений на емайл не только участника, но и админа
//$headers.="Reply-To: Администратор <".$adminemail.">\r\n";

$headers.="Date: ".date("d.m.Y (H:i:s)", time())."\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";

$deldate=date("d.m.Y",$deldt); // конвертируем дату удаления в человеческий формат


// подготавливаем данные для отправки на емайл и вывода на экран
if ($type=="С") {$sptype="Покупка";} else {$sptype="Продажа";}
$msg=str_replace("\r\n", "<br>", $msg);

$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$boardurl="http://$host$self";
$boardurl=str_replace("add.php", "index.php", $boardurl);

// Собираем всю информацию в теле письма
$allmsg="<html><head><meta http-equiv='Content-Type' content='text/html; charset='></head>
<body><BR><BR><center>
<table width=500><tr><td height='25' bgcolor='#000066' align='center'>
<font color=white>Ваше объявление <B>упешно добавлено</B></font></td></tr></table><br>

<table border='0' cellpadding='0' cellspacing='0' width='500' bgcolor='navy'><tr><td width='964'>
<table border='0' cellpadding='3' cellspacing='1' width='100%'>

<tr><td colspan=2 align=center bgcolor='#F6F6F6' height='24'><B>$fname</B></td></tr>

<tr><td width='114' bgcolor='#E6E6E6' height='24'><font size='2'>Ваше Имя</font></td>
<td width='483' bgcolor='#F6F6F6'><font size='2'>$name</font></td></tr>

<tr><td width='114' bgcolor='#E6E6E6' height='24'><font size='2'>Расположение</font></td>
<td width='483' bgcolor='#F6F6F6'><font size='2'>&nbsp;Главная >> $katname >> $sptype</font></td></tr>

<tr><td bgcolor=#E6E6E6><font size='-1'>Тема объявления</font></td>
<td bgcolor=#F6F6F6><font size='-1'>$zag</font></td></tr>

<tr><td width='114' bgcolor='#E6E6E6' height='24'><font size='2'>Объявление:</font></td>
<td width='483' bgcolor='#F6F6F6'><font size='2'>$msg</font></td></tr>

<tr><td width='114' bgcolor='#E6E6E6' height='24'><font size='2'>Дата подачи</font></td>
<td width='483' bgcolor='#F6F6F6'><font size='2'>$date</font></td></tr>

<tr><td width='114' bgcolor='#E6E6E6' height='24'><font size='2'>Дата удаления</font></td>
<td width='483' bgcolor='#F6F6F6'><font size='2'>$deldate</font></td></tr>
</table></td></tr></table><br>

<table width=500><tr><td height='25' bgcolor='#000066' align='center'>
<a href='$boardurl?event=list&id=$id'><font size='-1' color='white'>Вернуться в рубрику, где размещено объявление</font></a></td></tr></table>
</body></html>";

if ($sendmail =="1") // Отправляем письмо майлеру на съедение если разрешена отправка в админке;-)
{mail("$email", "Объявление ($fname)", $allmsg, $headers);}

print "<script language='Javascript'><!--
function reload() {location = \"index.php?event=list&id=$id\"}; setTimeout('reload()', 2000);
//--></script>
$allmsg <BR><BR>"; exit;
}
}




// Типо главной страницы
else
{
$rubrika="Дабавление объявления";
include "top.html";

if (isset($_COOKIE['wrboardname'])) {$wrboardname=$_COOKIE['wrboardname'];}

// если в куках есть wrboardname, то забиваем данные куков в переменные, иначе выводим форму для входа
if (isset($wrboardname))
{print "<TD align=right style='FONT-SIZE: 11px' width=100%><a href='add.php?event=profile&pname=$wrboardname'>Ваш Профиль</a>&nbsp;&nbsp;<a href='index.php?event=clearcooke'>Выход [$wrboardname]</a>";}
else
{print "<TD align=right style='FONT-SIZE: 11px' width=100%><a href=admin.php>Админка</a> |
<A href='index.php?event=login'>вход в систему</A>&nbsp;|&nbsp;
<A href='tools.php?event=reg'>регистрация</A>&nbsp;</TD></TR></TBODY></FORM></TABLE></TD></TR>";}

print"</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><TABLE border=0 cellPadding=0 cellSpacing=0 width=100%><TBODY><TR>
<TD background=images/hl_bg.gif height=1><IMG height=1 src=images/tp.gif></TD></TR><TR><TD><IMG height=8 src=images/tp.gif></TD></TR></TBODY></TABLE>";


print"
<center><TABLE bgColor=#aaaaaa border=0 cellPadding=2 cellSpacing=1>

<FORM action='add.php?event=add' method=post name=addForm>
<TBODY>
<TR>
<TD align=middle bgColor=#cccccc class=item_title colSpan=2>Добавить объявление</TD></TR>
<TR>";

// если в куках есть wrboardname, то забиваем данные куков в переменные, иначе выводим форму для входа
if (isset($wrboardname))
{print "<TD bgColor=#eeeeee class=item_text>Ваше имя:</TD><TD bgColor=#eeeeee class=item_text><B>$wrboardname</B>";}
else
{print "<TD colspan=2 bgColor=#eeeeee class=item_text><font color=#FF0000><B>Внимание! Запрещается размещение объявления без регистрации!!!</B></font>";}


print "</td></tr>
<tr><TD bgColor=#eeeeee class=item_text>Категория:</TD><TD bgColor=#eeeeee class=item_text>

<SELECT name=rubrika style='FONT-SIZE: 12px; WIDTH: 270px'>
";
// Блок считывает все категории из файла
$lines = file($datafile);
$imax = count($lines);
$i="0";
do {$dt = explode("|", $lines[$i]);
$dt[3]=str_replace("\r\n", "", $dt[3]);
print "<OPTION value=\"$i|$dt[0]|$dt[3]\">$dt[0]</OPTION>\r\n";
$i++;
} while($i < $imax);

print "</SELECT></TD></TR>

<TR><TD bgColor=#ffffff class=item_text>Тема объявления:<FONT color=#ff0000>*</FONT><BR>(не более 100 символов)</TD>
<TD bgColor=#ffffff class=item_text><INPUT name=zag style='FONT-SIZE: 14px; WIDTH: 300px' maxlength=$maxzag></TD></TR>

<TR><TD bgColor=#eeeeee class=item_text>Тип объявления:<FONT color=#ff0000>*</FONT></TD>
<TD bgColor=#eeeeee class=item_text><INPUT name=type type=radio value='С'>Покупка <INPUT name=type type=radio value='П'>Продажа </TD></TR>

<TR><TD bgColor=#ffffff class=item_text>Текст объявления:</TD>
<TD bgColor=#ffffff class=item_text><TEXTAREA name=foto style='FONT-SIZE: 14px; HEIGHT: 200px; WIDTH: 300px'></TEXTAREA></TD></TR>

<TR><TD bgColor=#ffffff class=item_text>Фотография или Скриншот:</TD>
<TD bgColor=#ffffff>
<table>
<tr>
<td>
<form method=post action="http://infernorays.sk6.ru/wr-board/up.php" enctype="multipart/form-data">
<table>
<tr>
<td>Файл 1: </td>
<td><input type="file" name="upl"></td>
</tr>
</table>
<br>
<input type="submit">
</form>
</td>
</tr>
</table></TD></TR>

<TR><TD bgColor=#eeeeee class=item_text>Срок хранения объявления:</TD>
<TD bgColor=#eeeeee class=item_text><SELECT name=days style='FONT-SIZE: 12px'>
<OPTION value=5>5 дней</OPTION>
<OPTION value=10>10 дней</OPTION>
<OPTION value=15>15 дней</OPTION>
<OPTION selected value=30>30 дней</OPTION>
<OPTION value=60>60 дней</OPTION>
<OPTION value=90>90 дней</OPTION></SELECT>
</TD></TR>

<TR><TD colspan=2 bgColor=#eeeeee align=middle><INPUT style='FONT-SIZE: 10px; HEIGHT: 20px; WIDTH: 100px' type=submit value=Сохранить></TD></TR>
<input type=hidden name=name value='$wrboardname'>
</FORM></TBODY></TABLE>
";

// <script language=JavaScript>document.REPLIER.zag.focus();</SCRIPT>
}


print "</body></html>";
?>
[/PHP]

и еще up.php (но он вроде нормально работает)
[PHP]// НАчало!
// Папка для загрузки. На папку должны стоять права "777"!
$dir = "http://infernorays.sk6.ru/wr-board/upload/";

// тут проверка на то, что форма отправила файл и этот файл загрузился в временную директорию.
if(!empty($_FILES['upl']['tmp_name'])){
// Проверяем, нет ли уже такого файла в нашей папочке
if(is_file($dir."/".$_FILES['upl']['name'])){
// Если есть, то выводим.
echo "Файл с таким именем уже существует!";
}
// Если файла нет, то...
else{
// Если файл не удалось загрузить в папку, то...
if(!move_uploaded_file($_FILES['upl']['tmp_name'],$dir."/".$_FILES['upl']['name'])){
// Выводим предупреждение
echo "Не удалось загрузить файл.";
}
// Если удалось, то...
else{
// вуаля!
echo "Файл успешно загружен!";
}
}
}
// Сами формочки:
// Конец![/PHP]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 20.5.2009, 1:04; Ответить: Webmaster_hb
Сообщение #2


<tr>
<td>
<form method=post action="http://infernorays.sk6.ru/wr-board/up.php" enctype="multipart/form-data">
<table>
<tr>
<td>Файл 1: </td>
<td><input type="file" name="upl"></td>
</tr>
</table>
<br>
<input type="submit">
</form>
</td>
</tr>
</table></TD></TR>

в этом куске надо заменить двойные ковычки на одинарные или заэкранировать их, либо обойтись без них
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
сообщение 1.6.2009, 8:49; Ответить: Licoric
Сообщение #3


Помогите найти ошибку в коде:
[php]<?php
include ("header.php");
include ("../config.php");
include ("../mysqlout.php");
$cat = $_GET['cat'];

echo "выводим категорию $cat";

?>
<table border="1" align="center" width="80%" style="float:left">
<tr>
<td>1
</td>
<td>2
</td>
</tr>
</table>
<?php
$query = "SELECT * FROM category where category=$cat";
$result = $db->query($query);
$num_results = $result->num_rows;
for ($i=0; $i <$num_results; $i++)
{
$row = $result->fetch_assoc();
$id = stripslashes($row['id_cat']);
$link = stripslashes($row['photo_link']);
$content = stripslashes($row['content']);
echo "
<tr>
<td valign='top'>$id
</td>
<td valign='top'><img src='$link' border='0'>
</td>
<td valign='top'>
<form method='post' action='desc_kolca_mysql.php?id=$id'>
<textarea rows='5' style='width:100%' name='content'>$content</textarea>
</td>
<td valign='top'>
<input type='submit' value='Добавить описание'>
</form>
</td>
<tr>
";
}
?>

<?php
include ("footer.php");
?>
[/php]Все утро втыкаю и ничего не понимаю. Пробовал кавычки разные по местам разным ставить и убирать - ничего не выводит.
ps код брал со своего рабочего примера. Там все работает (притом почти этот же код), тут фиг знает что такое. Даже футер не выводит.
http://mercanie-zvezd.ru/category.php?cat=1

category:
[IMG]http://mercanie-zvezd.ru/table.jpg[/IMG]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 1.6.2009, 9:58; Ответить: Webmaster_hb
Сообщение #4


$db->query($query);
в классе вроде функция do_query ?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
сообщение 1.6.2009, 16:56; Ответить: Licoric
Сообщение #5


(Webmaster_hb @ 1.6.2009, 12:58) *
$db->query($query);
в классе вроде функция do_query ?

$db = 'data base name';
навряд ли тут.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 1.6.2009, 18:19; Ответить: Webmaster_hb
Сообщение #6


$db - это объект
а вот какая функция используется для запросов ?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
сообщение 1.6.2009, 21:30; Ответить: Licoric
Сообщение #7


mysql.out
[php]<?php
@ $db = new mysqli($host, $user, $pass, $db);
if (mysqli_connect_errno())
{
echo 'Ошибка: Не удалось установить соединение с базой данных. Пожалуйста, повторите попытку позже.';
exit;
}
?>
[/php]
там на всем сайте так. Да и сайт не один. Там 3 сайта, и все работают с этим кодом.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 1.6.2009, 23:08; Ответить: Webmaster_hb
Сообщение #8


(Licoric @ 2.6.2009, 00:30) *
mysql.out
[php]<?php
@ $db = new mysqli($host, $user, $pass, $db);
if (mysqli_connect_errno())
{
echo 'Ошибка: Не удалось установить соединение с базой данных. Пожалуйста, повторите попытку позже.';
exit;
}
?>
[/php]там на всем сайте так. Да и сайт не один. Там 3 сайта, и все работают с этим кодом.

ну вот, это еще раз подтверждает мои слова, $db - это объект
но не в этом суть

то что не грузится футер говорит о том, что код прерывается, а может прерваться, только если где-то ошибка, а ее можно посмотреть в логах сервера

p.s. использование параметров в запросах таких как cat - недопустимо
оч. легко использовать sql-инъекцию
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
сообщение 2.6.2009, 16:03; Ответить: Licoric
Сообщение #9


(Webmaster_hb @ 2.6.2009, 02:08) *
ну вот, это еще раз подтверждает мои слова, $db - это объект
но не в этом суть

то что не грузится футер говорит о том, что код прерывается, а может прерваться, только если где-то ошибка, а ее можно посмотреть в логах сервера

p.s. использование параметров в запросах таких как cat - недопустимо
оч. легко использовать sql-инъекцию

cat - имя переменной. Что делать то тогда?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Galen
Galen
сообщение 2.6.2009, 16:12; Ответить: Galen
Сообщение #10


Обрабатывать перед использованием (экранировать кавычки, удалять спецсимволы).
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 1939 23.3.2024, 7:41
автор: Room
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 692 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Мелкие правки в коде сайта WP
нужен исполнитель на периодичные правки сайта WP
0 Vreg 1201 22.3.2021, 12:26
автор: Vreg
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1695 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2315 7.8.2020, 9:28
автор: heisenberg_mw


 



RSS Текстовая версия Сейчас: 29.3.2024, 10:21
Дизайн