Как получить значение из URL [закрыто]


Я хочу получить значение из URL, чтобы выбрать данные из базы данных по ID. Мне нужно значение для id.

Например, если я открою www.example.com/index.php?id=12
Я хочу получить значение, чей id = 12 в базе данных.

Если я открою www.example.com/index.php?id=7
получить значение, чей id = 7 в базе данных и так далее.

У меня есть код:

$results = mysql_query("SELECT * FROM next WHERE id=$id");    
while ($row = mysql_fetch_array($results))     
{       
    $url = $row['url'];
    echo $url;    
}
5 4

5 ответов:

URL сайта:

http://www.example.com/?id=2

Код:

$id = intval($_GET['id']);
$results = mysql_query("SELECT * FROM next WHERE id=$id");    
while ($row = mysql_fetch_array($results))     
{       
    $url = $row['url'];
    echo $url; //Outputs: 2
}

Существует два способа получить переменную из URL в PHP:

Когда Ваш url: http://www.example.com/index.php?id=7 Вы можете получить этот id с помощью команды $_GET['id'] или $_REQUEST['id'] и сохранить в переменной $id.

Давайте посмотрим:

// url is www.example.com?id=7

//get id from url via $_GET['id'] command:
$id = $_GET['id']

То же самое будет:

//get id from url via $_REQUEST['id'] command:
$id = $_REQUEST['id']
Отличие состоит в том, что переменная может быть передана в файл через url или через метод POST.

Если переменная передается через url, то вы можете получить ее с помощью $_GET['variable_name'] или $_REQUEST['variable_name'], но если переменная размещена, то вам нужно, чтобы вы $_POST['variable_name'] или $_REQUST['variable_name']

Таким образом, как вы видите, $_REQUEST['variable_name'] можно использовать в обоих направлениях.

P. S: Также помните-никогда не делайте так: $results = mysql_query("SELECT * FROM next WHERE id=$id"); это может вызвать инъекцию MySQL, и ваша база данных может быть взломана.

Попробуйте использовать:

$results = mysql_query("SELECT * FROM next WHERE id='".mysql_real_escape_string($id)."'");

Это значение можно получить с помощью массива $_GET. Таким образом, значение id будет сохранено в $_GET['id'].

Таким образом, в вашем случае вы можете сохранить это значение в переменной $idследующим образом:
$id = $_GET['id'];

Вы можете получить доступ к этим значениям с помощью глобальной переменной $_GET

//www.example.com/index.php?id=7
print $_GET['id']; // prints "7"

Вы должны проверить все "входящие" данные пользователя-так вот, этот " id " является INT. Не используйте его непосредственно в SQL (уязвимо для SQL-инъекций).

Можно также получить строковое значение запроса в виде:

$uri =  $_SERVER["REQUEST_URI"]; //it will print full url
$uriArray = explode('/', $uri); //convert string into array with explode
$id = $urlArray[1];