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 :: !!!Присвоение!!! [2]

 PHP.SU

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


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

> Описание: Присвоение значения переменной через тыкание ссылки!
Волк
Отправлено: 14 Октября, 2007 - 15:17:39
Post Id



Частый гость


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


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




Я понимаю что я пока-что не супер гуру по php, поэтому и спрашиваю. Но в чем же разница между (в отношение переменных) между БД и тем что они просто так будет лежать.

Какая разница между
PHP:
скопировать код в буфер обмена
  1.  if (isset($параметор_полученый_сервером)){
  2.  mysql_query("insert into table (пеменая) values("$параметор_полученый_сервером")");
  3.  }
  4.  

и

PHP:
скопировать код в буфер обмена
  1.  if (isset($параметор_полученый_сервером)){
  2.      $пеменая = $параметор_полученый_сервером;                        
  3.      }
  4.  


-----
Таран - оружие героев!
 
 Top
EuGen Администратор
Отправлено: 14 Октября, 2007 - 15:40:54
Post Id


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


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


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




Так как это уже оффтопик, я предлагаю Вам перенести Ваш вопрос в новую тему, там и обсудим.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Витяй
Отправлено: 15 Октября, 2007 - 19:34:47
Post Id


Новичок


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


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




Господа! Всем спасибо за ответы. Пойду почитаю мануал по БД...
 
 Top
evgenijj
Отправлено: 15 Октября, 2007 - 21:14:54
Post Id



Участник


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


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




Витяй пишет:
Если речь идет о ломании скрипта "левыми" даными, тогда придется каждый входящий бит проверять, сам понимаешь что это значит. Хотя можно ещё через ОП (объектное программирование) сделать, но это сложно.


Входящие данные надо проверять в любом случае. И какой стиль программирования ты используешь -- не важно: с одинаковой легкостью ломаются как классы, так и функции.

Подумал о том, что здесь тебя могуть сломать - значит защитился. Не подумал -- сломают. Лучше лишний раз перестраховаться.

Это уже везде написано
if ( !isset( $_GET["action"] ) ...
if ( !in_array( $_GET["action"[, $actions ) ) ...
Про попытку передачи через GET порядок сортировки записей в БД -- вообще молчу: попадаются еще такие
echo "< a hreh='index.php?action=getctg&sort=ASC'>Сортировать< /a>";

Всегда проверяй -- передан ли параметр ( GET или POST )? который ты ожидаешь
if( isset ( ... ) ) ...
и имеет ли это параметр то значение, которое ты ожидаешь?
if ( !in_array( $_GET("action"), $actions ) ) ...

И жизнь станет проще...

Никаких данных не должно идти на вход скрипта, если ты не уверен в их достоверности. Пользователь передал тебе e-mail? О.К.:
PHP:
скопировать код в буфер обмена
  1.  
  2. $error = '';
  3. // урезаем входные данные, даже на задумываясь -- до длины, указанной в параметре maxlength тега input
  4. $email  = substr( $_POST["email"], 0, 30 );
  5. $email  = trim( $email );
  6. if ( !preg_match( "#^[0-9a-z_-.]+@[0-9a-z-.]+.[a-z]{2,6}$#i" , $email ) )
  7.   error = $error.'<li>Некорректный e-mail</li>';
  8.  

И так -- для каждой позиции.
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( !empty ($error) ) die ( 'Запрещаю, ибо не ...' );
  3.  


И вот когда ты будешь точно уверен, что входные данные -- это именно те данные, котрые ты ждешь, можно спокойно работать...

Самое смешное, что в 99 случаев из 100 -- тебе даже не надо задумываться над такими вопросами. Если у тебя register_globals=Off интерпретатор PHP сам выдаст сообщение об ошибке -- типа, попытка использовать неопределенную переменную, или неопределенный индекс массива $_GET
 
 Top
EuGen Администратор
Отправлено: 15 Октября, 2007 - 22:08:23
Post Id


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


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


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




register_globals мировое зло.. сколько головной боли у меня в свое время из-за него было. Дабы не повторять имеющуюся тему и не писать оффтоп, дам ссылку:
http://forum.php.su/topic.php?fo...p;v=l#1191567768


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB