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]   

> Описание: Нужна помощь по доработке и усовершенствованию движка
Ruskat
Отправлено: 08 Февраля, 2010 - 16:25:51
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Март 2008  


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




Есть такой вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2.    <?PHP
  3. /* Защита передачи данных */
  4.  
  5. if (isset($_POST['k1']))
  6. {
  7. $k1 = $_POST['k1'] ;
  8. }
  9. if (isset($_POST['k2']))
  10. {
  11. $k2 = $_POST['k2'] ;
  12. }
  13. if (isset($_POST['k3']))
  14. {
  15. $k3 = $_POST['k3'] ;
  16. }
  17.  
  18. if (isset($_POST['k4']))
  19. {
  20. $k4 = $_POST['k4'] ;
  21. }
  22. if (isset($_POST['k5']))
  23. {
  24. $k5 = $_POST['k5'] ;
  25. }
  26. if (isset($_POST['et1']))
  27. {
  28. $et1 = $_POST['et1'] ;
  29. }
  30. if (isset($_POST['et2']))
  31. {
  32. $et2 = $_POST['et2'] ;
  33. }
  34.  
  35. if (isset($_POST['cena']))
  36. {
  37. $cena = $_POST['cena'] ;
  38. }
  39. if (isset($_POST['sor']))
  40. {
  41. $sor = $_POST['sor'] ;
  42. }
  43. /* Защита передачи данных */
  44.  
  45. /* кол комнат*/
  46. if (isset($k1))
  47. {
  48. }
  49. else
  50. {
  51. $k1 = 0;
  52. }
  53. if (isset($k2))
  54. {
  55. }
  56. else
  57. {
  58. $k2 = 0;
  59. }
  60. if (isset($k3))
  61. {
  62. }
  63. else
  64. {
  65. $k3 = 0;
  66. }
  67. if (isset($k4))
  68. {
  69. }
  70. else
  71. {
  72. $k4 = 0;
  73. }
  74. if (isset($k5))
  75. {
  76. }
  77. else
  78. {
  79. $k5 = 0;
  80. }
  81.  
  82. if ($k1 == 0 and $k2 == 0 and $k3 == 0 and $k4 == 0 and $k5 == 0)
  83. {
  84. $k1 = 1;
  85. $k2 = 2;
  86. $k3 = 3;
  87. $k4 = 4;
  88. $k5 = 5;
  89. }
  90. /* кол комнат*/
  91.  
  92. /*районы */
  93. if (isset($ray))
  94. {
  95.  
  96. }
  97. else
  98. {
  99. $ray[] = "Центр левый";
  100. $ray[1] = "Центр правый";
  101. $ray[2] = "Вокзальная";
  102. $ray[3] = "ДНС";
  103. $ray[4] = "Пионерская";
  104. $ray[5] = "Матросова";
  105. $ray[6] = "Глиняна-Осипенко";
  106. $ray[7] = "Поселок";
  107. $ray[8] = "П. Запорожца";
  108. $ray[9] = "Шевченко";
  109. $ray[10] = "Томиловская";
  110. $ray[11] = "Леваневского";
  111. $ray[12] = "Некрасова-Комсомольский";
  112. $ray[13] = "Таращанский-Зареччя";
  113. $ray[14] = "Пищана";
  114. $ray[15] = "Гайок";
  115. }
  116. /*районы */
  117.  
  118. /* цена */
  119. if ($cena <= 0)
  120. {
  121. $cena = 999999999;
  122. }
  123. /* цена */
  124. if ($et1 <= 0)
  125. {
  126. $et1 =0;
  127. }
  128.  
  129. if ($et2 <= 0)
  130. {
  131. $et2 =1000;
  132. }
  133.  
  134. $db = mysql_connect ($server_name, $user_name, $password);
  135. mysql_select_db ($base_name,$db);
  136.  
  137.  $result = mysql_query ("SELECT * FROM  p_kvart  WHERE  (komnat = '$k1' or
  138. komnat = '$k2' or komnat = '$k3' or komnat = '$k4' or komnat = '$k5') and
  139. ( `rayon` IN    ('".implode("','",$ray)."') )
  140. and ( cena <= '$cena' ) and ( etag >= '$et1' and etag <= '$et2' )  ORDER BY '$sor' ",$db);
  141. $myrow = mysql_fetch_array($result);
  142.  
  143. $rows = mysql_num_rows($result);
  144.  
  145.  
  146. if ($rows == 0)
  147. {
  148. echo "$center_up ничего не найдено. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  149. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  150. <a href=forma_poiska_p_kvart.php>Искать заново </a>$center_dn ";
  151. }
  152. else
  153. {
  154. echo  "$center_up Количество найденных предложений: $rows. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  155. &nbsp;&nbsp;&nbsp;&nbsp;
  156. <a href=forma_poiska_p_kvart.php >Искать заново </a>$center_dn";
  157. }
  158.  
  159. $val = "$";
  160.  
  161.  
  162. echo "$center_up<table border='1' cols='1' rules='rows' width =600px align = center>
  163.        <tr>
  164.   <td width =15px  align = center>Комнат</td>
  165.   <td width =20px  align = center>Этаж</td>
  166.   <td width =20px align = center >Этажей </td>
  167.   <td width =150px >  <center>Район</center> </td>
  168.   <td width =60px align = center >Цена</td>
  169.   <td width =20px align = center>Валюта</td>
  170.   <td width =170px align = center>Коммент </td>
  171.   <td width =90px align = center >Телефон</td>
  172.        </tr>";
  173.  
  174.     do
  175.  ("<tr>
  176.   <td width =15px  align = center><div class= 'rayon' >%s</div> </td>
  177.   <td width =20px  align = center><div class= 'rayon' >%s</div> </td>
  178.   <td width =20px align = center ><div class= 'rayon' >%s</div> </td>
  179.   <td width =150px >  <center>%s</center> </td>
  180.   <td width =60px align = center ><div class= 'rayon' >%s</div> </td>
  181.   <td width =20px align = center><div class= 'rayon' >%s</div> </td>
  182.   <td width =170px align = center><div class= 'rayon' >%s</div> </td>
  183.   <td width =90px align = center ><right>%s</right></td>
  184. </tr>",$myrow['komnat'],$myrow['etag'],$myrow['etagdom'], $myrow['rayon'] ,$myrow['cena'],"$val",$myrow['koment'],$myrow['tel']);  
  185.  
  186. while  ($myrow = mysql_fetch_array($result));
  187. echo "</table>$center_dn";
  188.  
  189. ?>
  190.  

1-Нужно, чтобы если нет данных по поиску, то выводилось только "ничего не найдено. Искать заново" и без этой
PHP:
скопировать код в буфер обмена
  1. echo "$center_up<table border='1' cols='1' rules='rows' width =600px align = center>
  2.        <tr>
  3.   <td width =15px  align = center>Комнат</td>
  4.   <td width =20px  align = center>Этаж</td>
  5.   <td width =20px align = center >Этажей </td>
  6.   <td width =150px >  <center>Район</center> </td>
  7.   <td width =60px align = center >Цена</td>
  8.   <td width =20px align = center>Валюта</td>
  9.   <td width =170px align = center>Коммент </td>
  10.   <td width =90px align = center >Телефон</td>
  11.        </tr>";
  12.  
  13.     do
  14.  ("<tr>
  15.   <td width =15px  align = center><div class= 'rayon' >%s</div> </td>
  16.   <td width =20px  align = center><div class= 'rayon' >%s</div> </td>
  17.   <td width =20px align = center ><div class= 'rayon' >%s</div> </td>
  18.   <td width =150px >  <center>%s</center> </td>
  19.   <td width =60px align = center ><div class= 'rayon' >%s</div> </td>
  20.   <td width =20px align = center><div class= 'rayon' >%s</div> </td>
  21.   <td width =170px align = center><div class= 'rayon' >%s</div> </td>
  22.   <td width =90px align = center ><right>%s</right></td>
  23. </tr>",$myrow['komnat'],$myrow['etag'],$myrow['etagdom'], $myrow['rayon'] ,$myrow['cena'],"$val",$myrow['koment'],$myrow['tel']);  
  24.  
  25. while  ($myrow = mysql_fetch_array($result));
  26. echo "</table>$center_dn";
таблички.
И за одно: можно ли реализовать, чтобы в этом
CODE (html):
скопировать код в буфер обмена
  1. <select name="ray[]" size="5" class="select" multiple="multiple">
  2.  
  3.   <option value= "Гайок"> Гайок </option>
  4.   <option value="Пионерская"> Пионерская </option>
  5.   <option value="ДНС"> ДНС </option>
  6.   <option value="Вокзальная"> Вокзальная </option>
  7.   <option value="Поселок"> Поселок </option>
  8.   <option value="Центр левый"> Центр левый </option>
  9.   <option value="Центр правый"> Центр правый</option>
  10.   <option  value= "Пищана"> Пищана </option>
  11.   <option value= "Таращанский-Зареччя"> Таращанский-Зареччя </option>  
  12.   <option value= "Шевченко"> Шевченко </option>  
  13.   <option value="Глиняна-Осипенко"> Глиняна-Осипенко </option>
  14.   <option value= "П. Запорожца"> П. Запорожца </option>
  15.   <option value= "Некрасова-Комсомольский"> Некрасова-Комсомольский </option>
  16.   <option value= "Леваневского"> Леваневского </option>
  17.   <option value= "Томиловская"> Томиловская </option>
  18.   <option value="Матросова" > Матросова </option>
  19.  
  20.  
  21. </select>
списке ещё добавить галочку, которая будет включать и отключать возможность выделять пункты в списке кликами БЕЗ нажатия на CTR? Спасибо.
 
 Top
ZeiZ
Отправлено: 09 Февраля, 2010 - 19:44:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 231
Дата рег-ции: Нояб. 2009  
Откуда: Москва


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




PHP:
скопировать код в буфер обмена
  1.  <?PHP
  2. /* Защита передачи данных */
  3.  
  4. if (isset($_POST['k1']))
  5. {
  6. $k1 = $_POST['k1'] ;
  7. }
  8. ...


А где здесь защита??? Не понял

Как пример глобальный массив $_POST можно защищать так:

PHP:
скопировать код в буфер обмена
  1. if (count($_POST) > 0) {
  2. // ЕЩЁ МОЖНО ТАК:
  3. # if ($_SERVER['REQUEST_METHOD']=='POST') {
  4.  
  5.         // обрабатываем данные без порчи
  6.         foreach($_POST as $key => $value) {
  7.         $value=trim($value); // убираем пробелы в начале и в конце переменной.
  8.         $value = stripslashes($value); //убираем слеши
  9.         $value=htmlspecialchars($value); // заменяем символы исполнения хтмл на кодовые значения
  10.         $_POST[$key]=$value; //все изменения записываем обратно в массив $_POST
  11.         }
  12.         #echo("первоночальная обработка пройдена!");

(Добавление)
ДАЛЕЕ

PHP:
скопировать код в буфер обмена
  1. /* кол комнат*/
  2. if (isset($k1))
  3. {
  4. }
  5. else
  6. {
  7. $k1 = 0;
  8. }


а так код будет не короче???

PHP:
скопировать код в буфер обмена
  1. /* кол комнат*/
  2. if (!isset($_POST['k1']))
  3. {
  4. $k1 = 0; // или $_POST['k1'] = 0;! Зачем вводить новую переменную???
  5. }
  6.  


Честно говоря не совсем понятна игра в переменные в Вашем скрипте.
Попробуйте довести сократить код в 2-3 раза.
 
 Top
Ruskat
Отправлено: 21 Февраля, 2010 - 23:46:36
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Март 2008  


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




Спасибо. Помогите пожалуйста с комбо боксом.
CODE (html):
скопировать код в буфер обмена
  1. <select name="ray[]" size="5" class="select" multiple="multiple">
  2.  
  3.   <option value= "Гайок"> Гайок </option>
  4.   <option value="Пионерская"> Пионерская </option>
  5.   <option value="ДНС"> ДНС </option>
  6.   <option value="Вокзальная"> Вокзальная </option>
  7.   <option value="Поселок"> Поселок </option>
  8.   <option value="Центр левый"> Центр левый </option>
  9.   <option value="Центр правый"> Центр правый</option>
  10.   <option  value= "Пищана"> Пищана </option>
  11.   <option value= "Таращанский-Зареччя"> Таращанский-Зареччя </option>  
  12.   <option value= "Шевченко"> Шевченко </option>  
  13.   <option value="Глиняна-Осипенко"> Глиняна-Осипенко </option>
  14.   <option value= "П. Запорожца"> П. Запорожца </option>
  15.   <option value= "Некрасова-Комсомольский"> Некрасова-Комсомольский </option>
  16.   <option value= "Леваневского"> Леваневского </option>
  17.   <option value= "Томиловская"> Томиловская </option>
  18.   <option value="Матросова" > Матросова </option>
  19.  
  20.  
  21. </select>

Нужно настраивать цвет выделенного пункта, тип размер и цвет шрифта, и изменить вид кнопок справа под дизайн.
 
 Top
scray
Отправлено: 23 Февраля, 2010 - 18:37:51
Post Id


Гость


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


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




ZeiZ, если информация не будет нигде на странице выводится из БД, не лишнее ли использовать htmlspecialchars?
(Добавление)
mysql_real_escape_string() лучше использовать, если данные используются в SQL запросах
 
 Top
Ammy
Отправлено: 23 Февраля, 2010 - 23:57:40
Post Id



Частый гость


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


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




ZeiZ пишет:
Как пример глобальный массив $_POST можно защищать так:

Так можно нанести вред целостности данных. Вы так все данные обрабатываете? А где же любимый strip_tags? И куда уж короче такой записи:



?

Достаточно одной htmlspecialchars(), чтобы решить все его проблемы с XSS, если данные из глобального массива будут выводиться на странице. Если нет, и данные будут записываться в базу данных (уверена в этом), применяется отличная mysql_real_escape_string();

Цитата:


ДАЛЕЕ

а так код будет не короче???
PHP:
скопировать код в буфер обмена
  1.  
  2.    
  3.       /* кол комнат*/
  4.    
  5.       if (!isset($_POST['k1']))
  6.       {
  7.    
  8.             $k1 = 0; // или $_POST['k1'] = 0;! Зачем вводить новую переменную???
  9.  
  10.       }
  11.  
  12.  



ДАЛЕЕ

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $k1 = (!isset($_POST['k1'])) ? 0 : $_POST['k1'];
  4.  
  5.  

(Отредактировано автором: 24 Февраля, 2010 - 01:45:25)

 
 Top
Ruskat
Отправлено: 24 Февраля, 2010 - 22:56:21
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Март 2008  


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




А вот еще вопрос:
Есть файл:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. if ( isset( $_POST ) )
  4.    $postArray = &$_POST ;            // 4.1.0 or later, use $_POST
  5. else
  6.    $postArray = &$HTTP_POST_VARS ;    // prior to 4.1.0, use HTTP_POST_VARS
  7.  
  8. foreach ( $postArray as $sForm => $value )
  9. {
  10.    if ( get_magic_quotes_gpc() )
  11.        $postedValue = htmlspecialchars( stripslashes( $value ) ) ;
  12.    else
  13.        $postedValue = htmlspecialchars( $value ) ;
  14.  
  15.    
  16.    include '../../blocks/bd.php'; /*соединение с базой*/
  17.  
  18.    $db = mysql_connect ($server_name, $user_name, $password);
  19.    mysql_select_db ($base_name, $db);
  20.  
  21.  
  22.    $data = date("d:m:Y   H:i:s");
  23.  
  24.    $db = mysql_connect ($server_name, $user_name, $password);
  25.    mysql_select_db ($base_name, $db);
  26.  
  27.    $result = mysql_query ("INSERT INTO top_prod SET date_time='$data', description='$postedValue'");
  28.    if($result) echo "<font color=#green size=+4>Запись ТОПА ПРОДАЖИ добавлена  <br> Дата:$data <br></font>";
  29.    "INSERT INTO top_prod SET date_time='$data', description='$postedValue'"
  30.  
  31. ?>
  32.        <tr>
  33.            <th style="vertical-align: top"><?PHP echo $sForm?></th>
  34.            <td><pre><?PHP echo $postedValue?></pre></td>
  35.        </tr>
  36.    <?PHP
  37. }
  38. ?>
  39.    </table>
  40.    <div id="footer">
  41.        <hr />
  42.  
  43.  
  44. <?PHP
  45. $description = $postedValue;
  46. if (isset($_POST['id']))
  47. {
  48. $id = $_POST['id'] ;
  49. }
  50. if (isset($_POST['data']))
  51. {
  52. $data = $_POST['data'] ;
  53. }
  54. if (isset($_POST['description']))
  55. {
  56. $description = $_POST['description'] ;
  57. }
  58. if (isset($_POST['date_time']))
  59. {
  60. $date_time = $_POST['date_time'] ;
  61. }
  62. /* Защита передачи данных */
  63.  
  64.  
  65. $data = date("d:m:Y   H:i:s");
  66.  
  67. include '../../blocks/bd.php'; /*соединение с базой*/
  68.  
  69. $db = mysql_connect ($server_name, $user_name, $password);
  70. mysql_select_db ($base_name, $db);
  71.  
  72. $result = mysql_query ("INSERT INTO top_prod (id, data, date_time, description) VALUES  ('$id','$data','$date_time','$description')");
  73. //$result = mysql_query ("INSERT INTO a_dom (komnat,etag,rayon,cena,koment, tel, den, mes, god ) VALUES  ('$komnat','$etag','$rayon','$cena','$koment','$tel','$den','$mes','$god')");
  74.  
  75. if  ($result == 'true')
  76. {
  77. echo "<font color=#green size=+4>Запись ТОПА ПРОДАЖИ добавлена  <br> Дата:$data <br></font>";
  78. }
  79. else
  80. {
  81. echo mysql_error();
  82. //echo "<font color=#FF0000 size=+2>Запись не добавлена</font>";
  83. }
  84. echo "<br>";
  85. ?>

В нём данные выводятся переменной $postedValue. Но мне нужно, чтобы эти данные писались в таблицу top_prod базы.
А именно: '$id' - номер записи
'$data' - данные, которые получаю из $postedValue.
'$date_time' - дата и время добавления записи.
,'$description' - пока не используется..
 
 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