PHP $ _GET URL信息

时间:2013-05-22 08:04:22

标签: php function get

我正在尝试创建一个脚本,从index.php?picid=33409等URL中提取信息,然后使用该号码(在这种情况下为33409)将图像保存在数据库中,如图像编号33409 。

但是,当我使用下面的代码时,只有在URL中有picid时它才能正常工作。如果只有index.php那么代码会显示每个if函数中的所有内容(我不希望它这样做)并且它告诉我"Notice: Undefined index: picid"恼人的错误。

非常感谢任何帮助!

<?php
if(empty($_GET['picid']))
    {
    $set="0";
    }
if(isset($_GET['picid'])) 
    {
    $set="1";
    }
if($set="0")
    {
    // code to do something
    }
if($set="1")
    {
    echo "all set";
    $picid = $_GET['picid'];
    // code to do something completely different using the picid
    }
?>

10 个答案:

答案 0 :(得分:3)

在你的if语句中使用=赋值运算符,而你应该使用==比较。

答案 1 :(得分:1)

您将值指定为布尔条件,而不是使用布尔表达式。

而不是

if($set = "1")

你应该使用

if($set == "1")

答案 2 :(得分:1)

您无需执行emptyisset

你可以用三项声明来做到这一点

$picid = (isset($_GET['picid')) ? $_GET['picid'] : null;

这会将$picid设置为网址中的值(如果有),或null如果不是

答案 3 :(得分:1)

尝试使用isset功能。这应该足够了。

if(isset($_GET['picid']){
   $set=1;
}else{
   $set=0;
}

答案 4 :(得分:1)

通知很明显。如果您只引用index.php,if条件将发出通知。尝试一些像

这样的事情
if(isset($_GET['picid'])&&$_GET['picid']!=''){
// the other conditions
}

答案 5 :(得分:0)

使用array_key_exists

<?php

    if (array_key_exists('picid', $_GET)) {
         $picid = $_GET['picid']
         // code to do stuff with picid
    } else {
         // code to do stuff when no picid is provided
    }
?>

答案 6 :(得分:0)

我建议将代码逻辑更改为:

$picid = 0;

if (isset($_GET['picid']) {
 $picid = intval($_GET['picid']);
}

if ($picid > 0) {
  //fetch it from the database
} else {
  //
}

您认为该网址没有picid。如果GET参数中有一个,请使用它的整数部分(以避免潜在的SQL注入)。如果没有,它的值仍然是最初的值,你做另一件事。

答案 7 :(得分:0)

if($set="0") <-- problem
{
// code to do something
}
if($set="1") <-- probelem 
{
echo "all set";
$picid = $_GET['picid'];
// code to do something completely different using the picid
}

那些需要== not =

答案 8 :(得分:0)

if (!empty($_GET['picid'])) {
    echo "all set";
    $picid = $_GET['picid'];
    // code to do something completely different using the picid
} else {
    // code to do something
}

答案 9 :(得分:0)

最好使用 intval()

$picid = isset($_GET['picid']) ? intval($_GET['picid'],0) : 0;

if($picid)
{
  //do something with it
}
else
{
  //picid doesn't exists
}