PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Нужна помощь по доработке и усовершенствованию движка
Поиск в теме | Версия для печати
Ruskat
Отправлено: 08 Февраля, 2010 - 16:25:51
Гость
Покинул форум
Сообщений всего: 68
Дата рег-ции: Март 2008
Помог: 0 раз(а)
Есть такой вот код:
PHP:
скопировать код в буфер обмена
<?PHP
/* Защита передачи данных */
{
$k1 = $_POST [ 'k1' ] ;
}
{
$k2 = $_POST [ 'k2' ] ;
}
{
$k3 = $_POST [ 'k3' ] ;
}
{
$k4 = $_POST [ 'k4' ] ;
}
{
$k5 = $_POST [ 'k5' ] ;
}
if ( isset ( $_POST [ 'et1' ] ) ) {
$et1 = $_POST [ 'et1' ] ;
}
if ( isset ( $_POST [ 'et2' ] ) ) {
$et2 = $_POST [ 'et2' ] ;
}
if ( isset ( $_POST [ 'cena' ] ) ) {
$cena = $_POST [ 'cena' ] ;
}
if ( isset ( $_POST [ 'sor' ] ) ) {
$sor = $_POST [ 'sor' ] ;
}
/* Защита передачи данных */
/* кол комнат*/
{
}
else
{
$k1 = 0 ;
}
{
}
else
{
$k2 = 0 ;
}
{
}
else
{
$k3 = 0 ;
}
{
}
else
{
$k4 = 0 ;
}
{
}
else
{
$k5 = 0 ;
}
if ( $k1 == 0 and $k2 == 0 and $k3 == 0 and $k4 == 0 and $k5 == 0)
{
$k1 = 1 ;
$k2 = 2 ;
$k3 = 3 ;
$k4 = 4 ;
$k5 = 5 ;
}
/* кол комнат*/
/*районы */
{
}
else
{
$ray [ ] = "Центр левый" ;
$ray [ 1 ] = "Центр правый" ;
$ray [ 2 ] = "Вокзальная" ;
$ray [ 3 ] = "ДНС" ;
$ray [ 4 ] = "Пионерская" ;
$ray [ 5 ] = "Матросова" ;
$ray [ 6 ] = "Глиняна-Осипенко" ;
$ray [ 7 ] = "Поселок" ;
$ray [ 8 ] = "П. Запорожца" ;
$ray [ 9 ] = "Шевченко" ;
$ray [ 10 ] = "Томиловская" ;
$ray [ 11 ] = "Леваневского" ;
$ray [ 12 ] = "Некрасова-Комсомольский" ;
$ray [ 13 ] = "Таращанский-Зареччя" ;
$ray [ 14 ] = "Пищана" ;
$ray [ 15 ] = "Гайок" ;
}
/*районы */
/* цена */
if ( $cena <= 0)
{
$cena = 999999999 ;
}
/* цена */
if ( $et1 <= 0)
{
$et1 = 0 ;
}
if ( $et2 <= 0)
{
$et2 = 1000 ;
}
$result = mysql_query ( "SELECT * FROM p_kvart WHERE (komnat = '$k1 ' or komnat = '$k2 ' or komnat = '$k3 ' or komnat = '$k4 ' or komnat = '$k5 ') and
( `rayon` IN ('" . implode ( "','" , $ray ) . "') ) and ( cena <= '$cena ' ) and ( etag >= '$et1 ' and etag <= '$et2 ' ) ORDER BY '$sor ' " , $db ) ;
if ( $rows == 0)
{
echo "$center_up ничего не найдено.
<a href=forma_poiska_p_kvart.php>Искать заново </a>$center_dn " ;
}
else
{
echo "$center_up Количество найденных предложений: $rows .
<a href=forma_poiska_p_kvart.php >Искать заново </a>$center_dn " ;
}
$val = "$" ;
echo "$center_up <table border='1' cols='1' rules='rows' width =600px align = center>
<tr>
<td width =15px align = center>Комнат</td>
<td width =20px align = center>Этаж</td>
<td width =20px align = center >Этажей </td>
<td width =150px > <center>Район</center> </td>
<td width =60px align = center >Цена</td>
<td width =20px align = center>Валюта</td>
<td width =170px align = center>Коммент </td>
<td width =90px align = center >Телефон</td>
</tr>" ;
do
( "<tr>
<td width =15px align = center><div class= 'rayon' >%s </div> </td>
<td width =20px align = center><div class= 'rayon' >%s </div> </td>
<td width =20px align = center ><div class= 'rayon' >%s </div> </td>
<td width =150px > <center>%s </center> </td>
<td width =60px align = center ><div class= 'rayon' >%s </div> </td>
<td width =20px align = center><div class= 'rayon' >%s </div> </td>
<td width =170px align = center><div class= 'rayon' >%s </div> </td>
<td width =90px align = center ><right>%s </right></td>
</tr>" , $myrow [ 'komnat' ] , $myrow [ 'etag' ] , $myrow [ 'etagdom' ] , $myrow [ 'rayon' ] , $myrow [ 'cena' ] , "$val " , $myrow [ 'koment' ] , $myrow [ 'tel' ] ) ;
echo "</table>$center_dn " ;
?>
1-Нужно, чтобы если нет данных по поиску, то выводилось только "ничего не найдено. Искать заново" и без этой PHP:
скопировать код в буфер обмена
echo "$center_up <table border='1' cols='1' rules='rows' width =600px align = center>
<tr>
<td width =15px align = center>Комнат</td>
<td width =20px align = center>Этаж</td>
<td width =20px align = center >Этажей </td>
<td width =150px > <center>Район</center> </td>
<td width =60px align = center >Цена</td>
<td width =20px align = center>Валюта</td>
<td width =170px align = center>Коммент </td>
<td width =90px align = center >Телефон</td>
</tr>" ;
do
( "<tr>
<td width =15px align = center><div class= 'rayon' >%s </div> </td>
<td width =20px align = center><div class= 'rayon' >%s </div> </td>
<td width =20px align = center ><div class= 'rayon' >%s </div> </td>
<td width =150px > <center>%s </center> </td>
<td width =60px align = center ><div class= 'rayon' >%s </div> </td>
<td width =20px align = center><div class= 'rayon' >%s </div> </td>
<td width =170px align = center><div class= 'rayon' >%s </div> </td>
<td width =90px align = center ><right>%s </right></td>
</tr>" , $myrow [ 'komnat' ] , $myrow [ 'etag' ] , $myrow [ 'etagdom' ] , $myrow [ 'rayon' ] , $myrow [ 'cena' ] , "$val " , $myrow [ 'koment' ] , $myrow [ 'tel' ] ) ;
echo "</table>$center_dn " ;
таблички.
И за одно: можно ли реализовать, чтобы в этом CODE (
html ):
скопировать код в буфер обмена
<select name = "ray[]" size = "5" class = "select" multiple = "multiple" >
<option value = "Гайок" > Гайок </ option >
<option value = "Пионерская" > Пионерская </ option >
<option value = "ДНС" > ДНС </ option >
<option value = "Вокзальная" > Вокзальная </ option >
<option value = "Поселок" > Поселок </ option >
<option value = "Центр левый" > Центр левый </ option >
<option value = "Центр правый" > Центр правый</ option >
<option value = "Пищана" > Пищана </ option >
<option value = "Таращанский-Зареччя" > Таращанский-Зареччя </ option >
<option value = "Шевченко" > Шевченко </ option >
<option value = "Глиняна-Осипенко" > Глиняна-Осипенко </ option >
<option value = "П. Запорожца" > П. Запорожца </ option >
<option value = "Некрасова-Комсомольский" > Некрасова-Комсомольский </ option >
<option value = "Леваневского" > Леваневского </ option >
<option value = "Томиловская" > Томиловская </ option >
<option value = "Матросова" > Матросова </ option >
</ select >
списке ещё добавить галочку, которая будет включать и отключать возможность выделять пункты в списке кликами БЕЗ нажатия на CTR? Спасибо.
ZeiZ
Отправлено: 09 Февраля, 2010 - 19:44:11
Частый гость
Покинул форум
Сообщений всего: 231
Дата рег-ции: Нояб. 2009
Откуда: Москва
Помог: 0 раз(а)
А где здесь защита???
Как пример глобальный массив $_POST можно защищать так:
PHP:
скопировать код в буфер обмена
// ЕЩЁ МОЖНО ТАК:
# if ($_SERVER['REQUEST_METHOD']=='POST') {
// обрабатываем данные без порчи
foreach ( $_POST as $key => $value ) {
$value = trim ( $value ) ; // убираем пробелы в начале и в конце переменной. $value = htmlspecialchars ( $value ) ; // заменяем символы исполнения хтмл на кодовые значения $_POST [ $key ] = $value ; //все изменения записываем обратно в массив $_POST
}
#echo("первоночальная обработка пройдена!");
(Добавление)
ДАЛЕЕ
а так код будет не короче???
Честно говоря не совсем понятна игра в переменные в Вашем скрипте.
Попробуйте довести сократить код в 2-3 раза.
Ruskat
Отправлено: 21 Февраля, 2010 - 23:46:36
Гость
Покинул форум
Сообщений всего: 68
Дата рег-ции: Март 2008
Помог: 0 раз(а)
Спасибо. Помогите пожалуйста с комбо боксом.
CODE (
html ):
скопировать код в буфер обмена
<select name = "ray[]" size = "5" class = "select" multiple = "multiple" >
<option value = "Гайок" > Гайок </ option >
<option value = "Пионерская" > Пионерская </ option >
<option value = "ДНС" > ДНС </ option >
<option value = "Вокзальная" > Вокзальная </ option >
<option value = "Поселок" > Поселок </ option >
<option value = "Центр левый" > Центр левый </ option >
<option value = "Центр правый" > Центр правый</ option >
<option value = "Пищана" > Пищана </ option >
<option value = "Таращанский-Зареччя" > Таращанский-Зареччя </ option >
<option value = "Шевченко" > Шевченко </ option >
<option value = "Глиняна-Осипенко" > Глиняна-Осипенко </ option >
<option value = "П. Запорожца" > П. Запорожца </ option >
<option value = "Некрасова-Комсомольский" > Некрасова-Комсомольский </ option >
<option value = "Леваневского" > Леваневского </ option >
<option value = "Томиловская" > Томиловская </ option >
<option value = "Матросова" > Матросова </ option >
</ select >
Нужно настраивать цвет выделенного пункта, тип размер и цвет шрифта, и изменить вид кнопок справа под дизайн.
Ammy
Отправлено: 23 Февраля, 2010 - 23:57:40
Частый гость
Покинул форум
Сообщений всего: 140
Дата рег-ции: Сент. 2009
Помог: 0 раз(а)
ZeiZ пишет: Как пример глобальный массив $_POST можно защищать так:
Так можно нанести вред целостности данных. Вы так все данные обрабатываете? А где же любимый strip_tags? И куда уж короче такой записи:
?
Достаточно одной htmlspecialchars() , чтобы решить все его проблемы с XSS, если данные из глобального массива будут выводиться на странице. Если нет, и данные будут записываться в базу данных (уверена в этом), применяется отличная mysql_real_escape_string() ;
Цитата:
ДАЛЕЕ
а так код будет не короче???
ДАЛЕЕ
(Отредактировано автором: 24 Февраля, 2010 - 01:45:25)
Ruskat
Отправлено: 24 Февраля, 2010 - 22:56:21
Гость
Покинул форум
Сообщений всего: 68
Дата рег-ции: Март 2008
Помог: 0 раз(а)
А вот еще вопрос:
Есть файл:
PHP:
скопировать код в буфер обмена
<?PHP
$postArray = & $_POST ; // 4.1.0 or later, use $_POST
else
$postArray = & $HTTP_POST_VARS ; // prior to 4.1.0, use HTTP_POST_VARS
foreach ( $postArray as $sForm => $value )
{
else
include '../../blocks/bd.php' ; /*соединение с базой*/
$data = date ( "d:m:Y H:i:s" ) ;
$result = mysql_query ( "INSERT INTO top_prod SET date_time='$data ', description='$postedValue '" ) ; if ( $result ) echo "<font color=#green size=+4>Запись ТОПА ПРОДАЖИ добавлена <br> Дата:$data <br></font>" ;
"INSERT INTO top_prod SET date_time='$data ', description='$postedValue '"
?>
<tr>
<th style="vertical-align: top"><?PHP echo $sForm ?> </th>
<td><pre><?PHP echo $postedValue ?> </pre></td>
</tr>
<?PHP
}
?>
</table>
<div id="footer">
<hr />
<?PHP
$description = $postedValue ;
{
$id = $_POST [ 'id' ] ;
}
if ( isset ( $_POST [ 'data' ] ) ) {
$data = $_POST [ 'data' ] ;
}
if ( isset ( $_POST [ 'description' ] ) ) {
$description = $_POST [ 'description' ] ;
}
if ( isset ( $_POST [ 'date_time' ] ) ) {
$date_time = $_POST [ 'date_time' ] ;
}
/* Защита передачи данных */
$data = date ( "d:m:Y H:i:s" ) ;
include '../../blocks/bd.php' ; /*соединение с базой*/
$result = mysql_query ( "INSERT INTO top_prod (id, data, date_time, description) VALUES ('$id ','$data ','$date_time ','$description ')" ) ; //$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')");
if ( $result == 'true' )
{
echo "<font color=#green size=+4>Запись ТОПА ПРОДАЖИ добавлена <br> Дата:$data <br></font>" ;
}
else
{
//echo "<font color=#FF0000 size=+2>Запись не добавлена</font>";
}
echo "<br>" ;
?>
В нём данные выводятся переменной $postedValue. Но мне нужно, чтобы эти данные писались в таблицу top_prod базы.
А именно: '$id' - номер записи
'$data' - данные, которые получаю из $postedValue.
'$date_time' - дата и время добавления записи.
,'$description' - пока не используется. .
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB