Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ссылки в PHP
 
 автор: Sajmon_root   (29.01.2010 в 11:41)   письмо автору
 
 

Привет всем! Помогите разобраться с такой задачей!
Суть вопроса состоит в следующем: есть такая строка
http://www.maxlen.zp.ua/index.php?id=2
как она работает мне понятно, есть база данных в которой уже вбит HTML код и чтоб вибрать данные они используют воборку, я так думаю примерно так
SELECT *  from table where $_POST['id']


но мне не поеятна вот это строка! Подскажите как это работает!
http://propello.com.ua/index.php?option=com_content&task=blogcategory&id=0&Itemid=6

заранее благодарю за помощь!

  Ответить  
 
 автор: cheops   (29.01.2010 в 12:08)   письмо автору
 
   для: Sajmon_root   (29.01.2010 в 11:41)
 

При помощи id=2 вы передаете один GET-параметр с именем id и значением 2, если вам в этой же ссылке нужно предать ещё один параметр, то вы разделяете его при помощи амперсанда &, например, ссылка
http://www.softtime.org/index.php?id=2&name=hello

по мимо уже упомянутого параметра id, передас ещё один параметр с именем name и значением "hello"

  Ответить  
 
 автор: Sajmon_root   (29.01.2010 в 12:39)   письмо автору
 
   для: cheops   (29.01.2010 в 12:08)
 

НУ я так понимаю это нужно тля того чтоб сделать выборку из БД да?
а как тогда выглядит запрос а БД ? это надо через AND? т е
SELECT * FROM table WHERE  $_GET['id'] AND $_GET['iname']
правельно?

  Ответить  
 
 автор: neadekvat   (29.01.2010 в 14:15)   письмо автору
 
   для: Sajmon_root   (29.01.2010 в 12:39)
 

Во-первых, "правильно".
Во-вторых, подставлять параметры, полученные от пользователя, без обработки в запрос - грех. Прочтите это.
В-третьих, синтаксис WHERE не верный. Надо: "WHERE `столбец` = 'значение'"
В-четвертых, по первому вопросу: вы привели пример URL, которые используются в Joomla!, и параметры там используются совершенно по-разному. Для чего конкретно - надо смотреть исходники.

  Ответить  
 
 автор: cheops   (30.01.2010 в 10:34)   письмо автору
 
   для: Sajmon_root   (29.01.2010 в 12:39)
 

Обычно запрос выглядит следующим образом
<?php
  $query 
"SELECT * FROM table WHERE id={$_GET['id']} AND iname='{$_GET['iname']}'";
?>

Однако, перед подстановкой GET-параметров в SQL-запрос, их подвергают проверке на допустимость или преобразуют к соответствующему формату, чтобы предотвратить SQL-инъекцию (взлом). Например, целые числа преобразуют при помощи intav()
<?php
  $_GET
['id'] = intva($_GET['id']);
?>

а стрковые экранируют, с учетом режима магических кавычек, например, так
<?php
      
if (!get_magic_quotes_gpc()) $_GET['iname'] = mysql_escape_string($_GET['iname']);
?>

  Ответить  
 
 автор: neadekvat   (30.01.2010 в 11:14)   письмо автору
 
   для: cheops   (30.01.2010 в 10:34)
 

> при помощи intav()
> intva($_GET['id'])
Мне кажется, или вы имели в виду функцию intval()? =)

  Ответить  
 
 автор: cheops   (30.01.2010 в 11:38)   письмо автору
 
   для: neadekvat   (30.01.2010 в 11:14)
 

Да, конечно, опечатался, имеется в виду intval().

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования