【问题标题】:How get value from URL [closed]如何从 URL 中获取价值 [关闭]
【发布时间】:2013-09-27 11:13:50
【问题描述】:

我想从 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;    
}

【问题讨论】:

标签: php mysql database url


【解决方案1】:

网站网址:

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
}

【讨论】:

    【解决方案2】:

    在 PHP 中有两种从 URL 获取变量的方法:

    当您的 URL 为:http://www.example.com/index.php?id=7 时,您可以通过 $_GET['id']$_REQUEST['id'] 命令获取此 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']$_REQUEST['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)."'");
    

    【讨论】:

    • 您的$_REQUEST 示例中仍有$_GET。另外,如果你想获取GET 数据,你应该使用$_GET。这意味着你永远不应该使用$_REQUEST
    • @djot 同意你关于 GET 的看法。是的,使用精确的方法来缓存变量总是更好,但我只是为了理解@Vaja 变量是如何发送到文件以及如何缓存它们而写的。
    • 谢谢大家,对不起,我不能评价你们所有人,但女巫更简单,先把它捶打一下,谢谢大家
    【解决方案3】:

    您可以使用$_GET 数组获取该值。所以 id 值将存储在$_GET['id']

    因此,在您的情况下,您可以将该值存储在 $id 变量中,如下所示:

    $id = $_GET['id'];
    

    【讨论】:

    • 这对我不起作用。我不知道为什么,但是变量变空了...:|
    【解决方案4】:

    您可以使用全局 $_GET 变量访问这些值

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

    您应该检查所有“传入”用户数据 - 所以在这里,“id”是一个 INT。不要直接在你的 SQL 中使用它(容易受到 SQL 注入)。

    【讨论】:

    • 谢谢大家,对不起,我不能评价你们所有人,但女巫更简单,先把它捶打,谢谢大家
    • 我是第一个...好吧,第二个;)
    【解决方案5】:

    你也可以得到一个查询字符串值:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      相关资源
      最近更新 更多