Загрузка записи с первичным ключом в URL? - PullRequest
0 голосов
/ 02 января 2012

возможно ли использовать GET или что-то подобное для загрузки записи в форму?.

Например, у меня есть для formA, где он имеет список foreach всех клиентов в БД, в конце каждой строки у меня есть ссылка, которая называется 'edit', эта ссылка идет на formB.php и устанавливается как это >>

sitename.com/FormB.php?token=<?php echo $ID ?>

Это дает вам URL, который выглядит следующим образом:

http://www.sitename.com/formB.php?token=25

Ссылка выше, например, загрузит запись с идентификатором 25 во вторую форму.

Я не уверен, как обрабатывать ссылку во второй форме, вы можете отобразить GET ID во второй форме, или это должен быть токен GET?.

Ответы [ 2 ]

3 голосов
/ 02 января 2012

В PHP есть предопределенная переменная $_GET. В основном это массив, содержащий все GET paremeters:

// url = index.php?foo=bar&hello=world

echo $_GET['foo']; // bar
echo $_GET['hello']; // world

Итак, учитывая ваш URL и запрос:

$query = 'SELECT * FROM `table` WHERE `token`=' . $_GET['token'];

Чтобы избежать эксплойтов безопасности, нам нужно использовать функцию mysql_real_escape_string вокруг пользовательского параметра при использовании строк. При использовании других типов, таких как числа, вы можете просто разобрать его в число.

// if token is a number
$query = 'SELECT * FROM `table` WHERE `token`=' . intval($_GET['token']);

// if token is a string
$query = 'SELECT * FROM `table` WHERE `token`=' . mysql_real_escape_string($_GET['token']);
1 голос
/ 02 января 2012

Вы можете получить доступ к своему параметру GET с помощью массива $_GET.Чтобы увидеть, что там, вы можете использовать: print_r($_GET);

Во втором случае вам придется использовать $_GET['token'] в качестве параметра с именем token.

Примечание. Если выПередав параметр в SQL-запрос, убедитесь, что он защищен.В этом случае с intval().SQL-инъекции плохие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...