我正在尝试创建一个脚本,从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
}
?>
答案 0 :(得分:3)
在你的if语句中使用=赋值运算符,而你应该使用==比较。
答案 1 :(得分:1)
您将值指定为布尔条件,而不是使用布尔表达式。
而不是
if($set = "1")
你应该使用
if($set == "1")
答案 2 :(得分:1)
您无需执行empty
和isset
你可以用三项声明来做到这一点
$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)
<?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
}