Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Доска объявлений

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Пытаюсь переделать под свои запросы
wredyatina
Отправлено: 08 Августа, 2011 - 14:29:58
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Авг. 2010  
Откуда: Челны


Помог: 0 раз(а)




Здравствуйте, пытаюсь сделать доску объявлений. Переделываю (пытаюсь переделать) готовые скрипты из инета под свои запросы.
Прошу отнестись с пониманием, это первая моя работа с php.

//задачи admin.php
1. Рубрики и разделы
2. Добавление объявления
3. Обзор всех объявлений
4. Удаление объявлений
(3 и 4 не делала т.к. еще не смогла разобраться с выводом и записью)

//задачи index.php
1. Первый уровень обзор (таблица) рубрик и разделов с нумерацией количества объявлений
2. Второй уровень Вывод объявлений

(Загвоздка в том, что мне хочется, чтобы при добавлении объявления, если выбрать тип недвижимости квартира ($estate[1]) запись в файл объявления, а также ее вывод был нр. $form1,
А если выбрать тип недвижимости все остальное, то вывод был $form2.
Вот соответственно и
$form1=" <h3>$razdel </h3><h3>$rubrika </h3>
<p>&nbsp;</p>
<table width=600 height=126>
<tr bgcolor=#E1E1E1 align=center height=35>
<td width=44 >кол-во комнат</td>
<td width=42 >адрес</td>
<td width=32>этаж</td>
<td width=57>площадь</td>
<td width=35>тел.</td>
<td width=37>ж/д</td>
<td width=44>балкон</td>
<td width=35>цена</td>
<td width=234>примечание</td>
</tr>
<tr>
<td >$room[1]</td>
<td>$address</td>
<td>$flor</td>
<td>$area</td>
<td>$tel</td>
<td>$door</td>
<td>$bal, $bal3, $bal4</td>
<td>$price.</td>
<td>$body, $fileField</td>
</tr>
</table>";
$form2=" <h3>$razdel </h3><h3>$rubrika </h3>
<p>&nbsp;</p>
<table width=600 height=157>
<tr>
<td height=35 colspan=2 bgcolor=#E1E1E1>$estate</td>
</tr>
<tr>
<td width=79></td>
<td width=509 height=70>$address, $flor, $area, $tel, $door, $bal, $bal3, $bal4, $price, $body </td>

</tr>
</table>";)

Вот что у меня получилось... или не получилось..

Прошу подсказать как сделать... Заранее спасибо всем кто отзовется).

admin.php

PHP:
скопировать код в буфер обмена
  1.  
  2. include "config.php";
  3.  
  4.  
  5. function replacer ($text) { // ФУНКЦИЯ очистки кода
  6. $text=str_replace(" ",' ',$text);
  7. $text=str_replace("&",'&',$text); // закоментируйте эту строку если вы используете языки: Украинский, Татарский, Башкирский и т.д.
  8. $text=str_replace(">",'>',$text);
  9. $text=str_replace("<",'<',$text);
  10. $text=str_replace("\"",'"',$text);
  11. $text=preg_replace("/\n\n/",'<p>',$text);
  12. $text=preg_replace("/\n/",'<br>',$text);
  13. $text=preg_replace("/\\\$/",'$',$text);
  14. $text=preg_replace("/\r/",'',$text);
  15. $text=preg_replace("/\\\/",'\',$text);
  16. $text=str_replace("\r\n","<br> ",$text);
  17. $text=str_replace("\n\n",'<p>',$text);
  18. $text=str_replace("\n",'<br> ',$text);
  19. $text=str_replace("\t",'',$text);
  20. $text=str_replace("\r",'',$text);
  21. $text=str_replace('   ',' ',$text);
  22. return $text; }
  23.  
  24.  
  25.  
  26. // Блок ПЕРЕМЕЩЕНИЯ ВВЕРХ/ВНИЗ РАЗДЕЛА или ТОПИКА
  27. if(isset($_GET['movetopic'])) { if ($_GET['movetopic'] !="") {
  28. $move1=$_GET['movetopic']; $where=$_GET['where'];
  29. if ($move1=="0" or $move1=="1") {exit("$back. Невозможно переместить самый первый раздел");}
  30. if ($where=="0") {$where="-1";}
  31. $move2=$move1-$where;
  32. $file=file("$datadir/boardbase.dat"); $imax=sizeof($file);
  33. if (($move2>=$imax) or ($move2<"0")) {exit("$back. Невозможно передвинуть последний раздел");}
  34. $data1=$file[$move1]; $data2=$file[$move2];
  35. $fp=fopen("$datadir/boardbase.dat","a+");
  36. flock ($fp,LOCK_EX);
  37. ftruncate ($fp,0);
  38. // Меняем местами два соседних раздела
  39. for ($i=0; $i<$imax; $i++) {if ($move1==$i) {fputs($fp,$data2);} else  {if ($move2==$i) {fputs($fp,$data1);} else {fputs($fp,$file[$i]);}}}
  40. fflush ($fp);
  41. flock ($fp,LOCK_UN);
  42. fclose($fp);
  43. Header("Location: admin.php?event=razrubr"); exit; }}
  44.  
  45.  
  46.  
  47. // Блок ПЕРЕСЧЁТА кол-ва рубрик и объявлений
  48. if (isset($_GET['event'])) { if ($_GET['event']=="revolushion") {
  49. $lines = file("$datadir/$datafile");
  50. $countmf=count($lines)-1;
  51. $n="0";$i="-1";$u=$countmf-1;$k="0";$it=0;
  52.  
  53. do {$i++; $dt=explode("|", $lines[$i]);
  54. $fid=$dt[0]; $itogos="0";$itogo="0";$itogop="0";
  55.  
  56. if (is_file("$datadir/$fid.dat")) {
  57. $msglines=file("$datadir/$fid.dat");
  58. if (count($msglines)>0) {
  59.  
  60. $itogo=count($msglines); $it="-1"; $itmax=$itogo-1;
  61. do {$it++; $dtt = explode("|", $msglines[$it]);
  62. if ($dtt[4]=="П") {$itogop++;} else {$itogos++;}
  63. } while ($it<$itmax);
  64. }
  65. }
  66.  
  67. if ($dt[1]=="R") {$lines[$i]="$dt[0]|$dt[1]|$dt[2]|$dt[3]|\r\n";} else {$lines[$i]="$dt[0]|$dt[1]|$itogop|$itogos|\r\n";}
  68. } while($i < $countmf);
  69.  
  70. // сохраняем обновлённые данные о кол-ве объявлений
  71. $file=file("$datadir/$datafile");
  72. $fp=fopen("$datadir/$datafile","w");
  73. flock ($fp,LOCK_EX);
  74. for ($i=0;$i< sizeof($file);$i++) {fputs($fp,$lines[$i]);}
  75. flock ($fp,LOCK_UN);
  76. fclose($fp);
  77. exit("$shapka <center><BR>Всё успешно пересчитано.<BR><BR><h3>$back</h3></center>"); }
  78. }
  79.  
  80.  
  81.  
  82. // Добавление РУБРИКИ
  83. if (isset($_GET['newrubrika']))  { $ftype=$_POST['ftype']; $zag=$_POST['zag'];
  84. if (strlen($zag)<3) {exit("$back. Тема объявления должна содержать <B> более 3 символов </B>!");}
  85.  
  86. // пробегаем по файлу ищем наибольшей номер рубрики и добавляем +1
  87. $fid="0"; if (is_file("$datadir/$datafile")) { $lines=file("$datadir/$datafile"); $imax = count($lines); $i=0; do {$dt = explode("|", $lines[$i]); if ($fid<$dt[0]) {$fid=$dt[0];} $i++;} while($i < $imax); $fid++;}
  88.  
  89. $zag=str_replace("|"," ",$zag);
  90. if ($ftype=="") {$text="$fid|$zag|0|0|";} else {$text="$fid|R|$zag|0|";}
  91. $text=stripslashes($text);
  92. $text=htmlspecialchars($text);
  93. $text=str_replace("\r\n", "<br>", $text);
  94.  
  95. $fp=fopen("$datadir/$datafile","a+");
  96. flock ($fp,LOCK_EX);
  97. fputs($fp,"$text\r\n");
  98. fflush ($fp);
  99. flock ($fp,LOCK_UN);
  100. fclose($fp);
  101. $fp=fopen("$datadir/$fid.dat","a+");
  102. fflush ($fp);
  103. flock ($fp,LOCK_UN);
  104. fclose($fp);
  105. Header("Location: admin.php?event=razrubr"); exit; }
  106.  
  107. // Корректируем кол-во объяв в категориях
  108. $lines=null; $lines=file("$datadir/$datafile"); $itogo=count($lines); $i=$itogo; $ok1=null; $ok2=null;
  109. do {$i--; $dt=explode("|",$lines[$i]);
  110. $lines[$i]=$lines[$i];
  111. if ($newru[1]==$dt[0]) {$ok=1; if ($type=="С") {$dt[3]++;} else {$dt[2]++;} $lines[$i]="$dt[0]|$dt[1]|$dt[2]|$dt[3]|\r\n";}
  112. if ($ok1!=null) {if ($dt[1]=="R") {$ok1=null; $dt[3]++; $lines[$i]="$dt[0]|R|$dt[2]|$dt[3]|\r\n";}}
  113. if ($id==$dt[0]) {$ok=1; if ($type=="С") {$dt[3]--;} else {$dt[2]--;} if ($dt[3]<0) $dt[3]=0; if ($dt[2]<0) $dt[2]=0; $lines[$i]="$dt[0]|$dt[1]|$dt[2]|$dt[3]|\r\n";}
  114. if ($ok2!=null) {if ($dt[1]=="R") {$ok2=null; $dt[3]--; if ($dt[3]<0) $dt[3]=0; $lines[$i]="$dt[0]|R|$dt[2]|$dt[3]|\r\n";}}
  115. } while($i > 0);
  116. $file=file("$datadir/$datafile");
  117. $fp=fopen("$datadir/$datafile","w");
  118. flock ($fp,LOCK_EX);
  119. ftruncate ($fp,0);
  120. for ($i=0;$i<$itogo;$i++) {fputs($fp,$lines[$i]);}
  121. fflush ($fp);
  122. flock ($fp,LOCK_UN);
  123. fclose($fp);
  124.  
  125. print "<BR><BR><BR><center><B>рубрика и текст объявления успешно изменены<BR><BR><BR></B><script language='Javascript'>function reload() {location = \"admin.php?event=topic&id=$id\"}; setTimeout('reload()', 1000);</script>";
  126. exit; }
  127. }
  128. }
  129.  
  130.  
  131.  
  132. // РЕДАКТИРОВАНИЕ РУБРИКИ
  133. if (isset($_GET['event']))  {
  134.  
  135. if (($_GET['event']=="add") or ($_GET['event'] =="addlink"))  {
  136.  
  137. // если выбрано - редактирование РУБРИК. $fnomer - номер ячейки, которую необходимо заменить.
  138. if (isset($_GET['rd']))  { $rd=$_GET['rd']; $fnomer=$_POST['fnomer'];
  139. $zag=$_POST['zag']; $spros=$_POST['spros']; $predl=$_POST['predl']; $idtopic=$_POST['idtopic'];
  140.  
  141. $text="$idtopic|$zag|$spros|$predl|";
  142. $text=str_replace("\r\n", "", $text);
  143.  
  144. $file=file("$datadir/$datafile");
  145. $fp=fopen("$datadir/$datafile","a+");
  146. flock ($fp,LOCK_EX);
  147. ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ
  148. for ($i=0;$i< sizeof($file);$i++) {if ($fnomer!=$i) {fputs($fp,$file[$i]);} else {fputs($fp,"$text\r\n");}}
  149. fflush ($fp);
  150. flock ($fp,LOCK_UN);
  151. fclose($fp);
  152.  
  153. // Заносим новое название рубрики в каждую строку файла с объявлениями
  154. $linesrdt=file("$datadir/$idtopic.dat");
  155. $fp=fopen("$datadir/$idtopic.dat","a+");
  156. flock ($fp,LOCK_EX);
  157. ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ
  158. for ($i=0;$i< sizeof($linesrdt);$i++) {$drdt = explode("|", $linesrdt[$i]); $text1="$drdt[0]|$zag|$drdt[2]|$drdt[3]|$drdt[4]|$drdt[5]|$drdt[6]|$drdt[7]|$drdt[8]|$drdt[9]|$drdt[10]|$drdt[11]|$drdt[12]|$drdt[13]|$drdt[14]|$drdt[15]|$drdt[16]|$drdt[17]|$drdt[18]|$drdt[19]|$drdt[20]|"; $text1=str_replace("\r\n", "", $text1); fputs($fp,"$text1\r\n");}
  159. fflush ($fp);
  160. flock ($fp,LOCK_UN);
  161. fclose($fp);
  162. Header("Location: admin.php?event=razrubr"); exit; }
  163. }
  164.  
  165.  
  166.  
  167.  
  168.  
  169. $shapka="<html><head>
  170. <title>Админпанель - $brdname</title>
  171. <META HTTP-EQUIV='Pragma' CONTENT='no-cache'>
  172. <META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'>
  173. <META content='text/html; charset=windows-1251' http-equiv=Content-Type>
  174. <LINK href='$brdskin/styleadmin.css' rel=stylesheet type=text/css>
  175. </head><body><table width=1024 border=0 style=margin-top:10 style=margin-left:10%>
  176. <tr height=20>
  177. <td width=200 rowspan=2><img src=pictures/log1.png width=201 height=63 /></td>
  178.  <td width=64 rowspan=3></td>
  179.  <td width=277 height=30><font size=5 color=#000066><a href='admin.php?event=razrubr'>Разделы</font></a></td>
  180.  <td width=268 height=30><font size=5 color=#000066><a href='admin.php?event=config'>Настройки</a>  </font></td>
  181.  <td width=199 rowspan=2><font size=3 color=#000066></font></td>
  182. </tr>
  183. <tr height=20>
  184. <td height=26><font size=5 color=#000066>Посещаемость</font></td>
  185.  <td height=26><font size=5 color=#000066><a href='admin.php?event=makecopy'>Сделать копию БД</a></font></td>
  186. </tr>
  187. <tr height=20>
  188. <td height=20 align=right><a href='admin.php'><font size=5 color=#000066>АДМИНПАНЕЛЬ</font></a></td>
  189.  <td height=20><font size=5 color=#000066><a href='admin.php?event=adverts'>Добавить объявление</a> </font></td>
  190.  <td height=20><font size=5 color=#000066><a href='admin.php?event=restore'>Восстановить из копии</a> </font></td>
  191.  <td height=20><font size=5 color=#000066></font></td>
  192. </tr>
  193. <tr height=20>
  194. <td height=20></td>
  195.  <td height=20></td>
  196.  <td height=20><font size=5 color=#000066>Добавить новость</font></td>
  197.  <td height=20><font size=5 color=#000066><a href='admin.php?event=revolushion'>Пересчитать</a></font></td>
  198.    <td height=20><font size=5 color=#000066></font></td>
  199. </tr>
  200. <tr height=20>
  201. <td height=20></td>
  202.  <td height=20></td>
  203.  <td height=20><font size=5 color=#000066>Все объявления</font></td>
  204.  <td height=20><font size=5 color=#000066></font></td>
  205.    <td height=20><font size=4 color=#000066><a href='admin.php?event=clearcooke'>Выход</a></font></td>
  206. </tr>
  207. <tr height=20 bgcolor=#2a59e9>
  208. <td height=20 colspan=5></td>
  209. </tr> ";
  210.  
  211.  
  212. // Главная
  213. if(!isset ($_GET['event'])) {
  214.         print "$shapka";}
  215.  
  216. // Выводим все рубрики
  217. if($_GET['event'] == "razrubr") {
  218. if (!is_file("$datadir/$datafile")) {$add1="<center><h3>файл $datadir/boardbase.dat НЕ существует! СРОЧНО восстановитесь из копии!!! Либо перезалейте указанный файл из архива!</h3>"; $stop=1; $lines=file("$datadir/copy.dat"); $data1size = sizeof($lines); $i=count($lines); }
  219. else {$lines=file("$datadir/$datafile"); $data1size = sizeof($lines); $i=count($lines); $add1="";}
  220.  
  221. $toper="
  222. <BR><TABLE align=center cellPadding=2 cellSpacing=1 width=500>
  223. <TR  align=center class=smallest bgColor=#cccccc><TD width=5%><B>№ п/п</B></TD><TD width=80%><B>Разделы</B></TD><TD width=5%><B>Итого</B></TD><TD colspan=4 width=15%><B>Операции</B></TD></TR>";
  224.  
  225. if (is_file("$datadir/copy.dat")) {
  226. if (count(file("$datadir/copy.dat"))<1) {$a2="<font color=red size=+1>НО файл копии ПУСТ! Срочно пересоздайте!</font><br> (смотрите права доступа, если эо сообщение повторяется)";} else {$a2="";}
  227. $a1=round((mktime()-filemtime("$datadir/copy.dat"))/86400); if ($a1<1) $a1="сегодня</font>"; else $a1.="</font> дней назад.";
  228. $add="<br><center>Копия была создана <font color=black size=+1>".$a1." $a2</center>"; } else {$add="";}
  229.  
  230. print"$shapka  <TABLE cellPadding=2 cellSpacing=0 width=50%><tr height=25 align=center><TD width=50%> $add1 $add";
  231. if (isset($stop)) {exit("Дальнейшая работа админпанели НЕВОЗМОЖНА!!!");} else {print"$toper";}
  232. if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="0";}
  233. $a1="0";
  234.  
  235. if ($i>0) {
  236. do {$dt = explode("|", $lines[$a1]);
  237.  
  238. $halfrubsize=round($data1size/2); // определяем кол-во рубрик в каждом столбце
  239. if ($a1==$halfrubsize) {print "</table></td><td align=center width=50%>$toper";}
  240. $a1++;
  241. $numpp=$a1-1;
  242.  
  243. if ($dt[1]!="R") {$kolvo=$dt[2]+$dt[3]; $add="<UL><a href=\"admin.php?event=topic&id=$dt[0]\">$dt[1]</a>";} else {$kolvo=""; $add="<B>$dt[2]</B>";}
  244.  
  245.  
  246. print"<tr align=center>
  247. <td><font size=-1>$a1</font></td>
  248. <td align=left>$add</td>
  249. <td><font size=-1>$kolvo</font></td>
  250. <td width=10><B><a href='admin.php?movetopic=$numpp&where=1'>Вв.</a></B></td>
  251. <td width=10><B><a href='admin.php?movetopic=$numpp&where=0'>Нз.</a></B></td>
  252. <td width=5%><B><a href='admin.php?xd=$numpp'>.X.</a></B></td></tr>";
  253. } while($a1 < $i);
  254. } else {echo'<br><center><h3>файл основной БД пуст! добавьте рубрики, либо восстановите из копии (если вы её делали вообще...)</h3></center>';}
  255.  
  256. echo'</table></tr></td></table>';
  257.  
  258.  
  259. // если выбрана метка .P. - редактирование рубрики, то ищем его и выводим в форму
  260. if (isset($_GET['rd'])) { $rd=$_GET['rd']; $dt = explode("|", $lines[$rd]);
  261.  
  262. print "<BR><center><table><tr><td valign=top><B>Рубрика</td><td>
  263. <form action='admin.php?event=add&rd=$rd' method=post name=REPLIER>
  264. <input type=text value=\"$dt[1]\" name=zag size=50><br><br>
  265. <input type=hidden name=spros value=\"$dt[2]\">
  266. <input type=hidden name=predl value=\"$dt[3]\">
  267. <input type=hidden name=idtopic value=\"$dt[0]\">
  268. <input type=hidden name=fnomer value=\"$rd\">
  269. <center><input type=submit  value='Изменить рубрику'></form>
  270. </td></tr></table>
  271. <SCRIPT language=JavaScript>document.REPLIER.zag.focus();</SCRIPT><BR></td></tr></table>";
  272. } else {
  273. print "<center><BR><form action=?newrubrika=add method=post name=REPLIER>
  274. Добавить: <input type=radio name=ftype value='razdel'> Раздел &nbsp;&nbsp; <input type=radio name=ftype value=''checked> <B>Рубрику</B>  &nbsp;&nbsp;&nbsp;<input type=text name=zag size=40> <input type=submit value='Добавить'></form>
  275. <SCRIPT language=JavaScript>document.REPLIER.zag.focus();</SCRIPT>";
  276.  
  277. }
  278.  
  279. }  
  280.  
  281.  
  282.  
  283. // Сделать копию БД
  284. if ($_GET['event']=="makecopy")  {
  285. if (is_file("$datadir/$datafile")) {$lines=file("$datadir/$datafile");}
  286. if (!isset($lines)) {$datasize=0;} else {$datasize=sizeof($lines);}
  287. if ($datasize<=0) {exit("$shapka Проблемы с Базой данных - база повреждена. Размер = 0!");}
  288. if (copy("$datadir/$datafile", "$datadir/copy.dat")) {print "$shapka <center><BR>Копия база данных создана.<BR><BR><h3>$back</h3></center>";} else {print"$shapka Ошибка создания копии БАЗЫ Данных. Попробуйте создать вручную файл copy.dat в папке $datadir и выставить ему права на ЗАПИСЬ - 666 или полные права 777 и повторите операцию создания копии!";}
  289. exit; }
  290.  
  291.  
  292.  
  293. // Восстановить из копии БД
  294. if ($_GET['event']=="restore")  {
  295. if (is_file("$datadir/copy.dat")) {$lines=file("$datadir/copy.dat");}
  296. if (!isset($lines)) {$datasize=0;} else {$datasize=sizeof($lines);}
  297. if ($datasize<=0) {exit("$shapka Проблемы с копией базы данных - она повреждена. Восстановление невозможно!");}
  298. if (copy("$datadir/copy.dat", "$datadir/$datafile")) {print "$shapka <center><BR>БД восстановлена из копии.<BR><BR><h3>$back</h3></center>";} else {print"$shapka Ошибка восстановления из копии БАЗЫ Данных. Попробуйте вручную файлам copy.dat и mainforum.dat в папке $datadir выставить права на ЗАПИСЬ - 666 или полные права 777 и повторите операцию восстановления!";}
  299. exit; }
  300.  
  301.  
  302. // ОБРАБОТКА добавления объявления
  303.  
  304. if ($_GET['event'] =="addadverts") {  
  305. echo"$shapka <p>Объявление успешно добавлено</p> ";
  306. echo"<a href='admin.php'>перейти на главную </a> ";
  307. echo"<a href='admin.php?event=adverts'> добавить объявление</a> ";
  308.  
  309.  
  310.  
  311.  
  312.  
  313. // Категория
  314. $dtemp=explode("|", $_POST['rubrika']); if (!isset($dtemp[1])) exit("$back и выбирете категорию!");
  315. $katnumber=$dtemp[0]; $rname=$dtemp[2]; $katname=$dtemp[3]; $fid=$dtemp[1]; $days=$_POST['days'];
  316. $katname.="[ktname]".$rname;
  317. if (!ctype_digit($fid)) {exit("$back и выбирете категорию!");}
  318.  
  319.  
  320. // Блок добавляет единицы к кол-ву объявлений в категории
  321. $realbase="1"; if (is_file("$datadir/$datafile")) $lines=file("$datadir/$datafile");
  322. if (!isset($lines)) $datasize=0; else $datasize=sizeof($lines);
  323. if ($datasize<=0) {if (is_file("$datadir/copy.dat")) {$realbase="0"; $lines=file("$datadir/copy.dat"); $datasize=sizeof($lines);}}
  324. if ($datasize<=0) exit("$back. Проблемы с Базой данных, файл данных пуст - обратитесь к администратору. <br><B>Файл РУБРИК несуществует! Зайдите в админку и создайте рубрики!</b>");
  325. $i=count($lines);
  326.  
  327. $itogo=$i; $ok=null;
  328.  
  329. do {$i--; $dt=explode("|",$lines[$i]);
  330. $lines[$i]=$lines[$i];
  331. if ($fid==$dt[0]) {$ok=1; if ($type=="С") {$dt[3]++;} else {$dt[2]++;} $lines[$i]="$fid|$dt[1]|$dt[2]|$dt[3]|\r\n";}
  332. if ($ok!=null) {if ($dt[1]=="R") {$ok=null; $dt[3]++; $lines[$i]="$dt[0]|R|$dt[2]|$dt[3]|\r\n";}}
  333. } while($i > 0);
  334. $file=file("$datadir/$datafile");
  335. $fp=fopen("$datadir/$datafile","a+");
  336. flock ($fp,LOCK_EX);
  337. ftruncate ($fp,0);
  338. for ($i=0;$i<$itogo;$i++) {fputs($fp,$lines[$i]);}
  339. fflush ($fp);
  340. flock ($fp,LOCK_UN);
  341. fclose($fp);
  342.  
  343. // формы
  344.  
  345. if (isset($_POST['estate'])) $estate=$_POST['estate'];
  346. $estate=array("1"=>"квартира", "2"=>"здание", "3"=>"офис", "4"=>"база", "5"=>"склад", "6"=>"другое", "7"=>"",);
  347.  
  348. if ($estate[1]==TRUE) {$estate=$estate[1];}
  349. if ($estate[2]==TRUE) {$estate=$estate[2];}
  350. if ($estate[3]==TRUE) {$estate=$estate[3];}
  351. if ($estate[4]==TRUE) {$estate=$estate[4];}
  352. if ($estate[5]==TRUE) {$estate=$estate[5];}
  353. if ($estate[6]==TRUE) {$estate=$estate[7];}
  354.  
  355. if (isset($_POST['room'])) $room=$_POST['room'];
  356. $room=array("0"=>"м/с", "1"=>"1", '2'=>'2', '3'=>'3', '4'=>'4', '5'=>'5',);
  357. ksoft ($room);
  358. for (Reset($room); list ($k, $v)=each($room);)
  359. echo "$k=>$v";
  360. if (isset($_POST['address'])) $address=$_POST['address'];
  361. if (isset($_POST['flor'])) $flor=$_POST['flor'];
  362. if (isset($_POST['area'])) $area=$_POST['area'];
  363. $tel=$_POST['tel'];
  364. if (isset($_POST['tel'])) {
  365. if ($_POST['tel']===$tel[1]) echo "Есть";
  366. if ($_POST['tel']===$tel[2]) echo "Нет";}else{$tel="";}
  367. $door=$_POST['door'];
  368. if (isset($_POST['door'])) {
  369. if ($_POST['door']===$door[1]) echo "Есть";
  370. if ($_POST['door']===$door[2]) echo "Нет";}else{$door="";}
  371. $bal=$_POST['bal'];
  372. if (isset($_POST['bal'])) {
  373. if ($_POST['bal']===$bal[1]) echo "Есть";
  374. if ($_POST['bal']===$bal[2]) echo "Нет";}else{$bal="";}
  375. $bal3=$_POST['bal3'];
  376. if (isset($_POST['bal3'])) {echo "застекленный";} else {echo "незастекленный";}
  377. if (isset($_POST['bal4'])) $bal4=$_POST['bal4'];
  378. echo "размер" . $_POST['bal4'] . "";
  379. if (isset($_POST['price'])) $price=$_POST['price'];
  380. if (isset($_POST['body'])) $body=$_POST['body'];
  381.  
  382.  
  383. // БЛОК ГЕНЕРИРУЕТ СЛЕДУЮЩИЙ ПО ПОРЯДКУ НОМЕР ОБЪЯВЛЕНИЮ
  384. // считываем весь файл в объявлениями в память
  385. $allid=null;
  386. $records=file("$datadir/$datafile");
  387. $imax=count($records);
  388. $i=$imax;
  389. if ($i > 0) { do {$i--;
  390. $rd=explode("|",$records[$i]);
  391. $allid[$i]=$rd[10]; }
  392. while($i>0);
  393. //natcasesort($allid); // сортируем по возрастанию
  394. $id=1000; $id="$fid";
  395. do { $id++; if (is_file("$datadir/$fid.dat")) $id++; } while(in_array($id,$allid));
  396. } else $id=$fid."1000"; // if ($i > 0)
  397. if ($estate[1]==TRUE) {$text="$katnumber|$katname|$room|$address|$flor|$area|$tel|$door|$bal|$bal3|$bal4|$price|$body|$fileField|$fid";}
  398. else {$text="$katnumber|$katname|$estate|$address|$flor|$area|$tel|$door|$bal|$bal3|$bal4|$price|$body|$fileField|$fid";}
  399.  
  400.  
  401. $text=htmlspecialchars($text);
  402. $text=stripslashes($text);
  403. $text=str_replace("\r\n","<br>",$text);
  404.  
  405.  
  406. // запись данных в файл
  407. $fp=fopen("$datadir/$datafile","a+");
  408. flock ($fp,LOCK_EX);
  409. fputs($fp,"$text\r\n");
  410. flock ($fp,LOCK_UN);
  411. fclose($fp);
  412.  
  413.  
  414.  
  415.  
  416. }
  417. // ДОБАВЛЕНИЕ ОБЪЯВЛЕНИЯ
  418.  
  419. if ($_GET['event'] =="adverts") {  
  420. if (!isset($_GET['fid'])) {
  421. print"$shapka";
  422.  
  423. if (isset($_GET['fid'])) {$fid=$_GET['fid'];} else {$fid="";}
  424. $estate=null; $room=null; $address=null; $flor=null; $area=null; $tel=null; $door=null; $bal=null; $bal3=null; $bal4=null; $price=null; $body=null;
  425.         print"
  426.  <table width=712 height=614  border=1 double #000><form action='admin.php?event=addadverts' enctype=multipart/form-data method=post>
  427.   <tr>
  428.    <td width=142 height=44 bgcolor=#f0f0f0><B>$rubrika</B>$info</td>
  429.    <td width=554>
  430.        <SELECT name=rubrika class=maxiinput><option>Выберите рубрику</option>\r\n";
  431.                
  432.                 // Блок считывает все категории из файла
  433. $realbase="1"; if (is_file("$datadir/$datafile")) $lines=file("$datadir/$datafile");
  434. if (!isset($lines)) $datasize=0; else $datasize=sizeof($lines);
  435. if ($datasize<=0) {if (is_file("$datadir/copy.dat")) {$realbase="0"; $lines=file("$datadir/copy.dat"); $datasize=sizeof($lines);}}
  436. $imax=count($lines);
  437.  
  438. $i="0"; $r="0"; $cn=0;
  439. do {$dt=explode("|", $lines[$i]);
  440. if ($fid==$dt[0]) $fy="selected"; else $fy="";
  441. if ($dt[1]!="R") print "<OPTION value=\"$i|$dt[0]|$r|$dt[1]|\"$fy>$r - $dt[1]</OPTION>\r\n";
  442. else {$r=$dt[2]; if ($cn!=0) {echo'</optgroup>'; $cn=0;} $cn++; print "<optgroup label=' - $dt[2]'>";}
  443. $i++;
  444. } while($i < $imax);
  445.  
  446. print "</td>
  447.  </tr>
  448.     <td bgcolor=#f0f0f0>тип недвижимости</td>
  449.    <td>
  450.      <input type=radio name=estate  value=\"$estate[1]\"  checked/> квартира
  451.      <input type=radio name=estate  value=\"$estate[2]\" /> здание
  452.      <input type=radio name=estate value=\"$estate[3]\" /> офис
  453.      <input type=radio name=estate  value=\"$estate[4]\" /> база
  454.      <input type=radio name=estate value=\"$estate[5]\" /> склад
  455.      <input type=radio name=estate  value=\"$estate[6]\" /> другое
  456.      <input type=text value=\"$estate[7]\" name=newcity size=30 maxlength=40 class=maininput style='FONT-SIZE: 14px; WIDTH: 100px'>
  457.    </td>
  458.  </tr>
  459.  <tr>
  460.    <td width=142 height=44 bgcolor=#f0f0f0>количество комнат</td>
  461.    <td width=554>
  462.      
  463.      <select name=room id=1>
  464.      <option value=\"$room[0]\">м/с</option>
  465.      <option value=\"$room[1]\">1</option>
  466.      <option value=\"$room[2]\">2</option>
  467.      <option value=\"$room[3]\">3</option>
  468.      <option value=\"$room[4]\">4</option>
  469.      <option value=\"$room[5]\">5</option>
  470.      </select>
  471.    </td>
  472.  </tr>
  473.  <tr>
  474.    <td bgcolor=#f0f0f0>адрес</td>
  475.    <td>
  476.      <input type=text name=address value=\"$address\" />
  477.    </td>
  478.  </tr>
  479.   <tr>
  480.   <td bgcolor=#f0f0f0>этаж</td>
  481.    <td>
  482.      <input type=text name=flor value=\"$flor\" />
  483.    </td>
  484.  </tr>
  485.  <tr>
  486.    <td bgcolor=#f0f0f0>площадь</td>
  487.    <td>
  488.      <input type=text name=area value=\"$area\" />
  489.    </td>
  490.  </tr>
  491.  <tr>
  492.    <td bgcolor=#f0f0f0>телефон</td>
  493.    <td>
  494.      <input type=radio name=tel value=\"$tel[1]\"  checked/> есть
  495.      <input type=radio name=tel value=\"$tel[2]\" /> нет
  496.    </td>
  497.  </tr>
  498.   <tr>
  499.    <td bgcolor=#f0f0f0>ж / дверь</td>
  500.    <td>
  501.      <input type=radio name=door value=\"$door[1]\"  checked/> есть
  502.      <input type=radio name=door  value=\"$door[2]\" /> нет
  503.   </td>
  504.  </tr>
  505.  <tr>
  506.    <td height=99 bgcolor=#f0f0f0>балкон</td>
  507.    <td>
  508.      <input type=radio name=bal value=\"$bal[1]\" checked/> есть
  509.      <input type=radio name=bal value=\"$bal[2]\" /> нет
  510.    
  511.  
  512.  <p>
  513.    <input type=checkbox name=bal3 value=\"$bal3\"/>
  514.    застекленный
  515. </p>
  516.  
  517.  <input type=text name=bal4 value=\"$bal4\" />
  518. размер
  519. </td>
  520.  </tr>
  521.  <tr>
  522.    <td height=67 bgcolor=#f0f0f0>цена</td>
  523.    <td>
  524.    <input type=text name=price value=\"$price\"/>
  525.   </td>
  526.  </tr>
  527.  <tr>
  528.    <td bgcolor=#f0f0f0>примечание</td>
  529.    <td>
  530.      <textarea name=body cols=45 rows=5>$body</textarea>
  531.  </td>
  532.  </tr>
  533.  
  534. </table>";
  535.  
  536. echo "<table width=712><tr><td  align=right style=padding-right:50><INPUT class=longok type=submit value=Сохранить></td></tr> </form></table>";
  537. }
  538. }


index.php
PHP:
скопировать код в буфер обмена
  1. include "config.php";
  2.  
  3.  
  4.  
  5. // Функция "ПРОДОЛЖЕНИЕ ШАПКИ" - закрывает ВСЕ таблицы
  6. function addtop($brdskin) { global $wrbname,$wrbpass,$datadir;
  7. if (isset($_COOKIE['wrbcookies'])) {// ищем В КУКАХ wrbcookies чтобы вывести ИМЯ
  8. $wrbc=$_COOKIE['wrbcookies']; $wrbc=htmlspecialchars($wrbc);
  9. $wrbc=stripslashes($wrbc); $wrbc=explode("|", $wrbc); $wrbname=$wrbc[0]; $wrbpass=$wrbc[1];}
  10. else {$wrbname=null; $wrbpass=null;}
  11. echo'<TD align=right>';
  12. return true;}
  13.  
  14.  
  15.  
  16. // Функция сортировки
  17. function prcmp ($a, $b) {if ($a==$b) return 0; if ($a>$b) return -1; return 1;}
  18.  
  19.  
  20. function replacer ($text) { // ФУНКЦИЯ очистки кода
  21. $text=str_replace(" ",' ',$text);
  22. $text=str_replace("&",'&',$text);
  23. $text=str_replace(">",'>',$text);
  24. $text=str_replace("<",'<',$text);
  25. $text=str_replace("\"",'"',$text);
  26. $text=preg_replace("/\n\n/",'<p>',$text);
  27. $text=preg_replace("/\n/",'<br>',$text);
  28. $text=preg_replace("/\\\$/",'$',$text);
  29. $text=preg_replace("/\r/",'',$text);
  30. $text=preg_replace("/\\\/",'\',$text);
  31. $text=str_replace("\r\n","<br> ",$text);
  32. $text=str_replace("\n\n",'<p>',$text);
  33. $text=str_replace("\n",'<br> ',$text);
  34. $text=str_replace("\t",'',$text);
  35. $text=str_replace("\r",'',$text);
  36. $text=str_replace('   ',' ',$text);
  37. return $text; }
  38.  
  39.  
  40. if (!is_file("top.html")) $topurl="top.html"; else $topurl="top.html";
  41.  
  42.  
  43. // Первый уровень
  44.  
  45. if (!isset($_GET['id'])) {  
  46.  
  47. $realbase="1"; if (is_file("$datadir/$datafile")) $lines=file("$datadir/$datafile");
  48. if (!isset($lines)) $datasize=0; else $datasize=sizeof($lines);
  49. if ($datasize<=0) {if (is_file("$datadir/copy.dat")) {$realbase="0"; $lines=file("$datadir/copy.dat"); $datasize=sizeof($lines);}}
  50. if ($datasize<=0) exit("$back. Проблемы с Базой данных, файл данных пуст - обратитесь к администратору. <br><B>Файл РУБРИК несуществует! Зайдите в админку и создайте рубрики!</b>");
  51. $i=count($lines); $imax=$i;
  52.  
  53. include "$topurl";  
  54.  
  55. $imagefile=1; $rubitogo=0; $msgitogo=0; $itogo=0;
  56. $record=array_fill(0, $imax,''); // создаём пустой массив под названия рубрик и разделов
  57.  
  58. // считаем количестов РУБРИК (чтобы картинку потом верную показывать)
  59. do {$i--; $dt=explode("|",$lines[$i]); if ($dt[1]=="R") $imagefile++;} while($i>0); $i=$imax;
  60.  
  61.  
  62. //Таблица с основными ячейками главная ячейка
  63. // формируем список "наоборот" (так как мы считаем количество объявлений в рубрике)
  64. do {$i--; $dt=explode("|",$lines[$i]);
  65.  
  66.  
  67. $fid="$dt[0]"; $url="index.php?id=$fid";
  68.  
  69. if ($dt[1]=="R" and $i>0) {$record[$i].='</TD></TR></TABLE><br>@endtable@';}
  70.  
  71. if ($dt[1]=="R") {
  72. $record[$i].="<TABLE  width=220  border=0 border-collapse:collapse style=font:#ffffff>
  73. <TR>
  74. <TD height=18 width=220 align=left style=text-indent:62 font-size:25 ><h4><B><a href='index.php?id=$fid&R'>$dt[2]</a> [$rubitogo]</B></h4></TD>
  75. </TR><TR><TD colspan=3>
  76. ";
  77. $rubitogo=0; $imagefile=1;}
  78. //остальные ячейки функция что при нажатии открывается и открывается только если есть объявление
  79.  
  80. if ($dt[1]!="R") { $rubitogo=$rubitogo+$dt[2]+$dt[3]; $msgitogo=$dt[2]+$dt[3]; $itogo=$itogo+$msgitogo;
  81.  
  82. if ($msgitogo>"0") { $ok1="onmouseover=\"tover(this)\" onmouseout=\"tout(this)\"";
  83. $ok2="<A href='$url' style='text-decoration: none;'>$dt[1]</A>";
  84. } else {$ok2="<font color=#ffffff>$dt[1]</font>"; $ok1="";}
  85.  
  86. if ($litemode==TRUE) { $record[$i].='<span style="line-height:0px">';
  87. $record[$i].="$ok2 "; if ($msgitogo>0) $record[$i].="[$msgitogo] "; else $record[$i].="&nbsp;\r\n";
  88. } else {
  89. $record[$i].="<TR onmouseover=\"trtover(this)\" onmouseout=\"trtout(this)\">
  90. <TD colspan=0 $ok1 height=15 width=250 align=left style=text-indent:22>$ok2";
  91. if ($msgitogo>0) $record[$i].=" [$msgitogo]"; else $record[$i].="&nbsp; </TD></TR>\r\n";
  92. }  //if ($litemode==TRUE)
  93. } // if $dt[1]!="R"
  94. } while($i > 0);
  95.  
  96.  
  97. // печатаем список "наоборот" (так как он снизу вверх сформирован)
  98. $si=0;
  99.  
  100. //самая главная ТАБЛИЦА
  101. echo'<TABLE cellSpacing=0 cellPadding=0 width=1024 border=0 align=left background="pictures/cap.jpg" style="margin-left: 10%; color:#ffffff"><TR><TD valign=left width=240>';
  102. do {
  103. if (strstr($record[$i],"@endtable@")) { $si++;
  104. if ($si==$colrub) {$chto="</TD></TR><TR><TD vAlign=top>\r\r\n"; $si=0;} else $chto="</TD><TD vAlign=top>\r\r\n";
  105. $record[$i]=str_replace("@endtable@","$chto",$record[$i]); }
  106.  
  107. print"$record[$i]"; $i++; } while($i < $imax);
  108. echo'</TD></TR></TABLE>
  109. </TD></TR></TABLE>'; // закрываем таблицы с объявлениями
  110.  
  111. if ($realbase==FALSE) $text_base="<br><br><font color=red>Основной файл базы данных повреждён, доска работает на копии. Администратор! Зайди в админпанель и восстанови базу данных из копии, затем сделай пересчёт количества объявлений!</font>"; else $text_base="";
  112.  
  113.  
  114. }
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122. // Второй уровень
  123.  
  124. if (isset($_GET['id']) and (strlen($_GET['id'])<=2) and isset($_GET['R'])) { $fid=$_GET['id'];
  125.  
  126. $realbase="1"; if (is_file("$datadir/$datafile")) $lines=file("$datadir/$datafile");
  127. if (!isset($lines)) $datasize=0; else $datasize=sizeof($lines);
  128. if ($datasize<=0) {if (is_file("$datadir/copy.dat")) {$realbase="0"; $lines=file("$datadir/copy.dat"); $datasize=sizeof($lines);}}
  129. if ($datasize<=0) exit("$back. Проблемы с Базой данных, файл данных пуст - обратитесь к администратору. <br><B>Файл РУБРИК несуществует! Зайдите в админку и создайте рубрики!</b>");
  130. $i=count($lines);
  131.  
  132. include "$topurl";  // подключаем ШАПКУ
  133.  
  134. $n="0"; $a1="-1"; $u=$i-1; $total="0"; $i="0"; $cm="0"; $si="0"; $flag=null; $itogos=0; $itogo="0"; $it=0;
  135.  
  136. echo'<TABLE class=bigmaintbl border=0 width=500 cellSpacing=10 cellPadding=1 align=center><TR><TD align=left vAlign=top>';
  137.  
  138. do {$a1++; $dt=explode("|", $lines[$a1]);
  139.  
  140. $url="index.php?id=$dt[0]";
  141. if ($dt[1]=="R") $cm++;
  142.  
  143. if ($dt[1]=="R" and $dt[0]==$fid) { $flag++; $si++;
  144. print"<TABLE cellSpacing=0 cellPadding=0 width=250 border=0><TR>
  145. <TD width=200 valign=middle><h4><B>$dt[2]</B></h4></TD>
  146. </TR><TR><TD colspan=3><TABLE cellSpacing=0 cellPadding=0 width=100% border=0>"; }
  147.  
  148. if ($dt[1]!="R" and $flag==1) $it=$dt[2]+$dt[3];
  149.  
  150. if ($dt[1]=="R" and $dt[0]>$fid) $flag=null;
  151.  
  152. if ($dt[1]!="R" and $dt[0]>$fid and $flag!=null)  {
  153.  
  154. $itogoo=$dt[2]+$dt[3]; if ($itogoo>5) $ob=$dt[0];
  155. if (($dt[2]+$dt[3])>"0") {$ok1="onmouseover=\"tover(this)\" onmouseout=\"tout(this)\"";}
  156. else {
  157. if (is_file("$datadir/$fid.dat")) {$line=file("$datadir/$dt[0].dat"); $itek=count($line);} $ok1=""; }
  158.  
  159. if ($it>0) {$ok2="<A href='$url' style='text-decoration: none;'>$dt[1]</A>";} else {$ok2="<font color=#808080>$dt[1]</font>";}
  160.  
  161. print"<TR onmouseover=\"trtover(this)\" onmouseout=\"trtout(this)\">
  162. <TD $ok1 height=20>
  163. $ok2</TD><TD width=20>"; if ($it>0) print"$it"; else print"&nbsp; "; print"</TD></TR>\r\n";}
  164.  
  165. $i++;
  166. $itogo=$itogo+$it;
  167. } while($a1 < $u);
  168.  
  169. // закрываем центральную таблицу
  170. print"</TD></TR></TABLE></TD></TR></TABLE></td>";
  171.  
  172.  
  173. // считываем text из файла
  174. $text=file("$datadir/$datafile"); $i=count($text);
  175. $text = explode("|", $text);
  176.  
  177. if ($text="$katnumber|$katname|$room|$address|$flor|$area|$tel|$door|$bal|$bal3|$bal4|$price|$body|$fileField|$fid") {
  178.         print "<p style=text-indent:20px;>
  179.  <h3>$razdel </h3><h3>$rubrika </h3>
  180. <p>&nbsp;</p>
  181. <table width=600 height=126>
  182.  <tr bgcolor=#E1E1E1 align=center height=35>
  183.    <td width=44 >кол-во комнат</td>
  184.    <td width=42 >адрес</td>
  185.    <td width=32>этаж</td>
  186.    <td width=57>площадь</td>
  187.    <td width=35>тел.</td>
  188.    <td width=37>ж/д</td>
  189.    <td width=44>балкон</td>
  190.    <td width=35>цена</td>
  191.    <td width=234>примечание</td>
  192.  </tr>
  193.  <tr>
  194.    <td >$room[1]</td>
  195.    <td>$address</td>
  196.    <td>$flor</td>
  197.    <td>$area</td>
  198.    <td>$tel</td>
  199.    <td>$door</td>
  200.    <td>$bal, $bal3, $bal4</td>
  201.    <td>$price.</td>
  202.    <td>$body, $fileField</td>
  203.  </tr>
  204.  </table>";
  205.                 } else {
  206.                         print "
  207.  <h3>$razdel </h3><h3>$rubrika </h3>
  208. <p>&nbsp;</p>
  209. <table width=600 height=157>
  210.  <tr>
  211.   <td height=35 colspan=2 bgcolor=#E1E1E1>$estate</td>
  212.  </tr>
  213.  <tr>
  214.    <td width=79></td>
  215.    <td width=509 height=70>$address, $flor, $area, $tel, $door, $bal, $bal3, $bal4, $price, $body </td>
  216.    
  217.  </tr>
  218.  </table>";}
  219.  
  220. echo'</td></tr></table>';
  221.  
  222.  
  223. }
  224.  

(Отредактировано автором: 25 Августа, 2011 - 18:07:31)



-----
Я только учусь...
 
 Top
PATCH
Отправлено: 08 Августа, 2011 - 14:46:48
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




с 7 раза как прочел вроде немного допер о чем вы)))

Цитата:
(Загвоздка в том, что мне хочется, чтобы при добавлении объявления, если выбрать тип недвижимости квартира ($estate[1]) запись в файл объявления, а также ее вывод был нр. $form1,
А если выбрать тип недвижимости все остальное, то вывод был $form2.

PHP:
скопировать код в буфер обмена
  1. if($estate[1])
  2. { echo $form1;}
  3. else
  4. {echo $form2;}

(Отредактировано автором: 08 Августа, 2011 - 14:47:23)

 
 Top
wredyatina
Отправлено: 08 Августа, 2011 - 14:50:15
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Авг. 2010  
Откуда: Челны


Помог: 0 раз(а)




)) Спасибо за ответ.

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


-----
Я только учусь...
 
 Top
PATCH
Отправлено: 08 Августа, 2011 - 14:52:44
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




в начале кода выставляем
для вывода ошибок) 2. я написал скрипт соответствено вашему описанию)) вреатли кто то будет капатся в тех дебрях) хотя бы html от php отделили бы). чем вас не устаривает хранение в бд и запись в бд? зачем марока с записью в файл) который темболее если запросить на прямую выведит все что находится в файле (или будет указано в исходном коде страницы)

(Отредактировано автором: 08 Августа, 2011 - 14:58:34)

 
 Top
iflight
Отправлено: 08 Августа, 2011 - 14:58:10
Post Id



Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011  
Откуда: Россия, Сыктывкар


Помог: 2 раз(а)




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

Мы темболее запутаемся, выводите ошибки -
в начале скрипта.

Зы. не полагайтесь на скрипты "из инета"
 
 Top
EuGen Администратор
Отправлено: 08 Августа, 2011 - 14:59:15
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)






-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
PATCH
Отправлено: 08 Августа, 2011 - 15:20:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




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

CODE (html):
скопировать код в буфер обмена
  1. //задачи admin.php
  2. 1. Рубрики и разделы
  3. 2. Добавление объявления
  4. 3. Обзор всех объявлений
  5. 4. Удаление объявлений
  6. (3 и 4 не делала т.к. еще не смогла разобраться с выводом и записью)
  7.  
  8. //задачи index.php
  9. 1. Первый уровень обзор (таблица) рубрик и разделов с нумерацией количества объявлений
  10. 2. Второй уровень Вывод объявлений


для начала сделайте простой скрипт к примеру форма для добавление и сам скрипт добавление в бд данных. каждый подпункт делай не в 1 файле а в разных файлах что бы потом понять что к чему. и бо по себе знаю, знания и понимания языка php больше закрепляется на самописной практике ,а не на скаченых скриптах в 600 строк. + разделяете html и php
PHP:
скопировать код в буфер обмена
  1.  include("путьдофайла");
да бы сделать код более читабельным, когда у вас будет возникать ошибка так ее проще обнаружить. да и форумчанинам будет проще вам помоч с проблемой.

а ошибке у вас в вашем скаченом коде скорее из за того что вы затронули какуюто переменую или функцию не зная его полного значение в скрипте)

(Отредактировано автором: 08 Августа, 2011 - 15:23:20)

 
 Top
wredyatina
Отправлено: 09 Августа, 2011 - 15:21:53
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Авг. 2010  
Откуда: Челны


Помог: 0 раз(а)




Спасибо за ответы, переделала и разделила все страницы. Сейчас делаю с бд.

Подскажите, пожалуйста,
1. каким образом лучше всего записать в бд разделы доски объявлений,
2. и вывести список разделов в виде меню?


-----
Я только учусь...
 
 Top
PATCH
Отправлено: 09 Августа, 2011 - 20:29:27
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




по конкретнее что это за так называемые разделы

вывести список в меню можно так:


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?
  3. @$cat_res3 = mysql_query("SELECT title,id FROM categories") ;
  4. @$cat_row3 = mysql_fetch_array($cat_res3);
  5. ?>
  6.  
  7.  
  8. <select name="categories">
  9. <?
  10. do{print ("<option  value='".$cat_row3['id']."'>".$cat_row3['title']."</option>");}
  11. while ($cat_row3 = mysql_fetch_array($cat_res3));
  12. ?>
  13. </select>


собстевно предположу что разделы объявлений это типо категории тогда таблица состоит из id (autoincriment) и title
код на добавление будет таким:

советую тут разделить php от html) эт просто я их счас совместил как писал пост) что бы непутать код разными include

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  <form action="add_cat.php" method="post">
  3.  <div>Введите название категории</div>
  4. <input name="title" type="text"  size="50" maxlength="255">
  5. <p><input name="add_cat_submit" type="submit" value="Добавить категорию"></p>
  6.  </form>
  7.  
  8. <?      if(isset($_POST['add_cat_submit']))
  9.         {
  10.                 $title = $_POST['title'] ;
  11.                 if(empty($title))
  12.                 {exit ("<script type='text/javascript'>alert('Вы не заполнели все поля') </script>");}
  13.        
  14.                 $title = mysql_escape_string($title);
  15.                 $title= trim($title);
  16.                 $title= htmlspecialchars($title);
  17.                
  18.                 $add = mysql_query ("INSERT INTO categories (title) VALUES ('$title')");
  19.                 if(isset($add)) {echo "Категория успешно добавлена";}
  20.         }
  21. ?>
  22.  
  23.  

(Отредактировано автором: 09 Августа, 2011 - 20:34:13)

 
 Top
wredyatina
Отправлено: 25 Августа, 2011 - 16:03:47
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Авг. 2010  
Откуда: Челны


Помог: 0 раз(а)




PATCH спасибо за ответ. Я с разделами вроде бы разобралась. Вот что у меня получилось...
Функции output_option_one и output_option_two идентичны за исключением способа вывода объявлений ( разные таблицы)
Сейчас я и не могу написать ссылку из '.$category[name].'

Есть две таблицы:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. // для разделов
  3.                 mysql_query("CREATE TABLE `categories` (
  4.               `id` int(11) NOT NULL auto_increment,
  5.               `parent_id` text NOT NULL ,
  6.               `name` text NOT NULL,
  7.               PRIMARY KEY  (`id`)
  8.             )");
  9. // для объявлений
  10.         mysql_query("CREATE TABLE `adverts` (
  11.               `id` int(20) NOT NULL auto_increment,
  12.               `category_id` int(11) NOT NULL default '0',
  13.                 ...
  14.               `img_big` longblob NULL,
  15.              `img_small` blob NULL,
  16.              `mimetype` varchar(16) NULL default `image/*`,
  17.                PRIMARY KEY  (`id`)
  18.                  FOREIGN KEY ('category_id') REFERENCES 'categories' ('id')
  19.             )");


Вот index.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php // Обработка вывода объвлений и главной страницы
  2.        
  3.         // Вывод ошибок
  4.         ini_set('display_errors',1);
  5.        
  6.         // Подключение файлов
  7.         require_once "error.php";
  8.  
  9. if ( !isset( $_GET["action"] ) ) $_GET["action"] = "index";
  10.  
  11. switch ( $_GET["action"] )
  12. {
  13.  case "categories":    // Список разделов в виде меню
  14.    show_categories(); break;
  15.  case "out1":    // Вывод первый вариант
  16.    output_option_one(); break;
  17.  case "out2":    // Вывод второй вариант
  18.    output_option_two(); break;
  19.  case "news":      // Вывести новости (функция пока не добавлена на эту страницу)
  20.    show_news(); break;
  21.  default: // !!! МОЖНО ЛИ ВЫБРАТЬ УСЛОВИЯ?
  22.    show_categories();
  23.         show_news();
  24. }      

Проблема сейчас в том, что я запуталась маленько, и не могу написать ссылку, чтобы при выборе раздела $category[name] переходила на функции output_option_one и output_option_two, в зависимости от выбора субкатегории...

Сама я понимаю, это так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if ($category[name] == "Новостройки"; || $category[name] == "Квартиры"; || $category[name] == "Иногородние жилые";)
  3. {echo '<li><a href="index.php?action=out1">'.$category[name].'</a>['.$number.']';} // Выполнение функции out1
  4. else {echo '<li><a href="index.php?action=out2">'.$category[name].'</a>['.$number.']';}

Но как связать это с номерами id (categories) и category_id (adverts) непредставляю... Не понял

PHP:
скопировать код в буфер обмена
  1. // Выводим все катерогии и разделы
  2. function show_categories()
  3. {
  4.  echo '<menu>';
  5.          $cat = "SELECT id, parent_id FROM categories ORDER BY id DESC"; //выводим категории
  6.          $resc = mysql_query ($cat);
  7.          while( $categories = mysql_fetch_array( $resc ) ) {
  8.                         echo '<li>'.$categories[parent_id].'';
  9.                         echo '<ul>';
  10.                          $scat = "SELECT * FROM categories ORDER BY id DESC"; //выводим субкатегории
  11.                          $ress = mysql_query ($scat);
  12.                          while( $category = mysql_fetch_array( $ress ) ) {
  13.                            $nn = "SELECT * FROM adverts WHERE category_id= ".$category[id]." "; //выводим объявления в субкатегории для определения количества
  14.                            $resn = mysql_query ($nn);
  15.                            $number = mysql_num_rows($resn); // считаем
  16.                             if($number>0){
  17.                                    
  18.                               echo '<li><a href="">'.$category[name].'</a>['.$number.']'; // КАК НАПИСАТЬ ССЫЛКУ?
  19.                           echo '</li></ul>';
  20.                                 } else { // $number == 0;
  21.                               echo '<li>'.$category[name].'[0]';
  22.                           echo '</li></ul>';
  23.                                 }  // end if
  24.                         } // end category
  25.                         echo '</li>'; } // end categories
  26.  echo '</menu>';
  27. } // end show_categories()
  28.  
function output_option_one()
Спойлер (Отобразить)
function output_option_two()
Спойлер (Отобразить)

Заранее спасибо за ответы Улыбка
(Добавление)
Вроде бы разобралась... Добавила аргумент функции output_option ($category);
Объединила output_option_one и output_option_two.
Я не уверена, что правильно сделала...
PHP:
скопировать код в буфер обмена
  1. // Выводим все катерогии и разделы
  2. function show_categories()
  3. {
  4.  echo '<menu>';
  5.          $cat = "SELECT id, parent_id FROM categories ORDER BY id DESC"; //выводим категории
  6.          $resc = mysql_query ($cat);
  7.          while( $categories = mysql_fetch_array( $resc ) ) {
  8.                         echo '<li>'.$categories[parent_id].'';
  9.                         echo '<ul>';
  10.                          $scat = "SELECT * FROM categories ORDER BY id DESC"; //выводим субкатегории
  11.                          $ress = mysql_query ($scat);
  12.                          while( $category = mysql_fetch_array( $ress ) ) {
  13.                                  output_option ($category); // создаем аргумент функции
  14.                            $nn = "SELECT * FROM adverts WHERE category_id= ".$category[id]." "; //выводим объявления в субкатегории для определения количества
  15.                            $resn = mysql_query ($nn);
  16.                            $number = mysql_num_rows($resn); // считаем
  17.                             if($number>0){
  18.                               echo '<li><a href="index.php?action=out&id='.$category[id].'">'.$category[name].'</a>['.$number.']'; // КАК НАПИСАТЬ ССЫЛКУ?
  19.                           echo '</li></ul>';
  20.                                 } else { // $number == 0;
  21.                               echo '<li>'.$category[name].'[0]';
  22.                           echo '</li></ul>';
  23.                                 }  // end if
  24.                         } // end category
  25.                         echo '</li>'; } // end categories
  26.  echo '</menu>';
  27. } // end show_categories()
  28.  


PHP:
скопировать код в буфер обмена
  1.        
  2. function output_option($category)
  3. {
  4.         // Постраничный вывод
  5. $sum = 15; // число записей на странице
  6. //count считает количество строк
  7. $resstr = mysql_query("SELECT count(*) FROM adverts WHERE category_id = ".$category[id]." ORDER BY room DESC");
  8. $arr = mysql_fetch_row($resstr);
  9. $rec = $arr[0];  // общее число записей в таблице  
  10.                    
  11. // если страницы не существует, выводим первую страницу
  12. if(!isset($_GET['str']))
  13. {$str = 0;}
  14. else
  15. {$str = $_GET['str'];}
  16.                    
  17. // получем номер начальной записи страницы
  18. $start = $str * $sum;
  19.        
  20. $apart = "SELECT * FROM adverts WHERE category_id = ".$category[id]." LIMIT $start, $sum";
  21. $result = mysql_query( $apart );
  22. $n = mysql_num_rows($result); // возвращаем число рядов результата запроса
  23.                    
  24. // если страница не первая, выводим ссылку НАЗАД
  25. if ($str > 0)
  26. {
  27. $p = $str - 1;
  28. echo "<a href=index.php?str=$p>НАЗАД</a>";
  29. }
  30.                    
  31. $str++;  // увеличиваем переменную $str на единицу;
  32. // выводим ссылку на следующие пять записей, если она есть,
  33. // то есть число записей, которые нужно вывести,
  34. // и смещение не превышает общего числа записей
  35.                    
  36. if($start + $n < $rec)
  37. echo "<a href=index.php?str=$str>ДАЛЕЕ</a>";
  38.  
  39. // выводим записи
  40. for ($i = 0; $i < $n; $i++)
  41. {                  
  42. while( $adv= mysql_fetch_array( $result ) ) {
  43.        
  44.  
  45.    // Разделы
  46.   echo '<h3>'.$category[parent_id].': '.$category[name].'</h3>' ;
  47.   // Выводим в таблице
  48.   echo '<table width="564" border="0px double #000" class="advor">' ;
  49. if ($category[name] == "Новостройки" || $category[name] == "Квартиры/Малосемейки" || $category[name] == "Иногородние жилые")
  50. { // Форма вывода 1 для квартир
  51. // Вывод первой строки
  52.   echo '<tr class="sell" bgcolor="#E1E1E1" align="center" height="35">
  53.    <td width="44" >кол-во комнат</td>
  54.    <td width="42" >адрес</td>
  55.    <td width="32">этаж</td>
  56.    <td width="57">площадь</td>
  57.    <td width="35">тел.</td>
  58.    <td width="37">ж/д</td>
  59.    <td width="44">балкон</td>
  60.    <td width="35">цена</td>
  61.    <td width="234">примечание</td>
  62.  </tr>';
  63.   echo ' <tr class="sell">';
  64.   // Выводим количество комнат
  65.   echo '<td>'.$adv['room'].'</td>';
  66.   // Выводим данные
  67.   echo '<td>'.$adv['address'].'</td>';
  68.   echo '<td>'.$adv['flor'].'</td>';
  69.   echo '<td>'.$adv['area'].'</td>';
  70.   echo '<td>'.$adv['tel'].'</td>';
  71.   echo '<td>'.$adv['door'].'</td>';
  72.   echo '<td>'.$adv['bal'].''.$adv['bal3'].''.$adv['bal4'].'</td>';
  73.   echo '<td>'.$adv['price'].'</td>';
  74.   echo '<td>'.$adv['body'].'';
  75.   // Выводим изображение
  76.   $title = str_replace( '"', '', $adv['title'] );
  77.   echo '<div><a href="newsimage.php?size=big&id='.$adv['id'].'" target="_blank">';
  78.   echo '<img src="newsimage.php?size=small&id='.$adv['id'].'" alt="'.$title.'" border="0" /></a></div>';
  79.   // Разделительная линия между отдельными изображениями
  80.   echo '<hr>'; } // if $category[name]
  81. else {  // Форма вывода 2
  82.  echo '<tr class="sell">';
  83.   echo '<td height="35" colspan="2" bgcolor="#E1E1E1"><div align="center">'.$adv['estate'].'';
  84.   echo '</div></td> ';
  85.   echo '</tr>';
  86.   $query1 = "SELECT * FROM adverts ORDER BY estate DESC LIMIT 30";
  87.   $res1 = mysql_query( $query );
  88.   while( $adverts1 = mysql_fetch_array( $res ) ) {
  89.   echo '<tr class="sell"> ';
  90.   echo '<td width="79">';
  91.    // Выводим изображение
  92.   $title1 = str_replace( '"', '', $adverts1['title'] );
  93.   echo '<div><a href="newsimage.php?size=big&id='.$adverts1['id'].'" target="_blank">';
  94.   echo '<img src="newsimage.php?size=small&id='.$adverts1['id'].'" alt="'.$title1.'" border="0" /></a></div>';
  95.   // Разделительная линия между отдельными изображениями
  96.   echo '<hr>';
  97.   echo '</td>';
  98.   echo '<td width="509" height="70">'.$adverts1['address'].', '.$adverts1['flor'].', '.$adverts1['area'].', '.$adverts1['tel'].', '.$adverts1['door'].', '.$adverts1['bal'].', '.$adverts1['bal3'].', '.$adverts1['bal4'].', '.$adverts1['price'].', '.$adverts1['body'].'';} // end while adverts1
  99. }// end else $category[name]
  100.   } //end $adv
  101.   echo '</td></tr></table>';
  102.    
  103.    echo '<h1>%s</h1><p>%s</p>';
  104. } // end for
  105. } // end output_option

(Отредактировано автором: 25 Августа, 2011 - 16:44:02)



-----
Я только учусь...
 
 Top
wredyatina
Отправлено: 02 Сентября, 2011 - 15:43:00
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Авг. 2010  
Откуда: Челны


Помог: 0 раз(а)




Помогите, пожалуйста, застопорилась на одном скрипте...
Не могу понять каким образом сделать ссылку из каталога...
Таблица: id, title, pid
Вывод каталога вот такой...
CODE (htmlphp):
скопировать код в буфер обмена
  1. function tree($pid, $lvl){
  2.     $query = mysql_query("SELECT * FROM catalogue WHERE pid = '$pid'") or die(mysql_error());
  3.     while($categ = mysql_fetch_object($query)){
  4.  
  5.        for($i=0;$i<$lvl;$i++){
  6.        echo " &nbsp;";
  7.       }
  8.       $lvl++;
  9.       echo $categ->title;
  10.        echo "<br>\n";
  11.        tree($categ->id, $lvl--);
  12.     }
  13. }
  14. tree(0, 0); //Вывод скрипта


-----
Я только учусь...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB