|
|
|
| Добрый день Господа! Прошу у Вас помощи, НЕМОГУ РАЗОБРАТЬСЯ КАК СТРОЯТЬСЯ ДИНАМИЧЕСКИЕ ССЫЛКИ подскажите принцип
<a href="index_например_два.php?ЧТО ЗДЕСЬ ПИШЕТСЯ ДАЛЬШЕ?"> Ссылка</a>
|
С уважением Чайка. | |
|
|
|
|
|
|
|
для: Чайка
(15.02.2006 в 14:31)
| | А какая цель ссылки? Что вы хотите сделать при помощи её? | |
|
|
|
|
|
|
|
для: cheops
(15.02.2006 в 14:45)
| | Есть две таблицы tab1 и tab2. Созданы в MySQL. Первичные ключи id_tab1 и id_tab2 соответственно. Первая таблица оглавление, вторая статьи. Оглавление в виде ссылок выводиться в цикле в index.php. Как сослаться на index_2.php чтобы выводилась соответствующая статья по этой ссылке в файле index_2.php? | |
|
|
|
|
|
|
|
для: Чайка
(15.02.2006 в 16:45)
| | Я бы засунул все в одну таблицу...
Но раз вы хотите...
index.php?id_tab2=номер статьи
|
а в файле index.php
$sql="SELECT * FROM tab2 WHERE id_tab2= $id_tab2";
|
Код не защищен, так что в реальном приложении так лучше не делать. | |
|
|
|
|
|
|
|
для: Loki
(15.02.2006 в 16:59)
| | Спасибо! Все просто и понятно.
PS: А как защитить код? Как делается в реальном приложении?
С уважением Чайка. | |
|
|
|
|
|
|
|
для: Чайка
(16.02.2006 в 12:29)
| | ничего сверхъестественного: просто аккуратно проверяются все данные входящие от пользователя (POST, GET, COOKIE) на соответсвие тому, что от них ожидают.
http://www.softtime.ru/info/articlephp.php?id_article=35
http://www.softtime.ru/info/articlephp.php?id_article=36 | |
|
|
|
|
|
|
|
для: Чайка
(16.02.2006 в 12:29)
| | в реальном приложении нужно много о чем думать.... Например, предотвращать SQL-инъекции, то есть попытки под видом номера статьи дописать в хвост SQL-оператора продолжение запроса, которое выведет на страницу закрытую информацию, изменит данные в таблице или сотворит еще какую нибудь пакость.
В Вашем случае, самый простой способ - написать что-то вроде
$id_tab2 = 0 + $id_tab2;
$sql="SELECT * FROM tab2 WHERE id_tab2= $id_tab2";
|
Такая конструкция, как минимум, уберет нечисловые данные из значения в заголовке запроса. | |
|
|
|
|
|
|
|
для: Trianon
(16.02.2006 в 12:49)
| | Спасибо! А может так?
“данные=htmlspecialchars(новые данные)”
|
| |
|
|
|
|
|
|
|
для: Чайка
(16.02.2006 в 13:09)
| | так в этом случае запрос к БД все равно вызовет ошибку... придет-то текст, там где ожидается число. | |
|
|
|
|
|
|
|
для: Loki
(16.02.2006 в 13:13)
| | Понятно! Подскажите, а в данной записи $id_tab2 = 0 + $id_tab2; речь идет о принадлежности переменной к типу данных? | |
|
|
|
|
|
|
|
для: Чайка
(16.02.2006 в 13:29)
| | >Понятно! Подскажите, а в данной записи $id_tab2 = 0 +
>$id_tab2; речь идет о принадлежности переменной к типу
>данных?
да, можно сказать и так. | |
|
|
|
|
|
|
|
для: Чайка
(15.02.2006 в 14:31)
| | Если имеется ввиду ссылка типа
<a href="index.php?action=rm">1</a>
//здесь описано что файлу такому-то (index.php) выбрать действие согласно ключу rm, файл может быть любой :-)
то пишем следующее либо в отдельном файле либо в самом индексе:
<?php
switch($_GET['action']) {
// переменная Get может быть и POST смотрите что сервер хостера понимает
case "nb" :
//это ключи для определения вариантов действия
require_once("a.php");
//соответственно само действие
break;
//выход если совпадения с этим вариантом не наблюдается и команда перехода к следующему варианту
case "nb1" :
require_once("d.php");
break;
case "compl" :
require_once("c.php");
break;
case "access" :
require_once("access.php");
break;
case "rm" :
require_once("1.php");
break;
case "drv" :
require_once("7.php");
break;
case "mail" :
require_once("mail.php");
break;
default : print "Данных нет";
break;
}
?>
|
Но учтите если это будет отдельный файл то в круглых скобках путь придеться писать полностью,
т.е с каталогами, смотрите как сервер хостера поймет (некоторые хотят от корня сайта почему-то) | |
|
|
|
|
|
|
|
для: essenia
(15.02.2006 в 16:18)
| | Спасибо! | |
|
|
|