【问题标题】:Undefined variable error, but variable is defined [duplicate]未定义的变量错误,但变量已定义[重复]
【发布时间】:2014-10-09 21:14:29
【问题描述】:

单击提交按钮时我试图获取表单值,但是当我运行它时,出现以下错误:

Notice: Undefined variable: mail in C:\xampp\htdocs\mylearning\add_user.php on line 20

这是我的代码:

<html> 
<head> 
    <title> I am learning </title> 
</head> 
<body> 
    <form name="new_user" method="post" action="add_user.php">  
       <input type="text" name="mail"/> <br /> 
        <input type="text" name="name"/><br/> 
        <input type="submit" name="submitbtn"  value="continue"/> 
    </form>
 </body> 
</html>



<?php 
if(isset($_POST["submitbtn"])) 

$mail = isset($_POST['mail']);
$name1 = isset($_POST['name']); echo "Returned value from the function : $name1";  echo "Returned value from the function : $mail"; 

?>

【问题讨论】:

  • add_user.php 的第 20 行是什么?
  • 出现错误的行是什么
  • 向输入类型添加值有帮助吗?比如&lt;input type="text" value="" &gt;我怀疑$mail没有收到输入的值

标签: php html forms


【解决方案1】:

您错过了{ }if

试试这个方法:

        <html> 
    <head> 
        <title> I am learning </title> 
    </head> 
    <body> 
        <form name="new_user" method="post" action="add_user.php">  
           <input type="text" name="mail"/> <br /> 
            <input type="text" name="name"/><br/> 
            <input type="submit" name="submitbtn"  value="continue"/> 
        </form>
     </body> 
    </html>  
    <?php 
    if(isset($_POST["submitbtn"])) 
    {
        $mail = isset($_POST['mail']);
        $name1 = isset($_POST['name']); echo "Returned value from the function : $name1";  echo "Returned value from the function : $mail"; 
    }
    ?>

【讨论】:

  • 如果不是循环,就是语句。
  • 感谢您的指导。
  • @BindiyaPatoliya 没有必要
  • @krupalshah ,我知道,但如果我们在if 语句中有多行,那么这是必要的。
【解决方案2】:

您缺少 {},如果您省略它们,则只有在 if 之后的第一条指令将在 if 条件内执行,如果您需要多行,则需要添加大括号。

其他注意事项,您将isset 的值分配给$mail 变量,如果变量存在且不为null,isset 返回true,否则返回false,您可以使用三元运算符:

$mail = isset($_POST['mail']) ? $_POST['mail'] : '';

也就是说,如果 post 变量不为 null,则使用 that,否则使用 ' 空字符串,$name 也是如此。

【讨论】:

    【解决方案3】:
     if(isset($_POST["submitbtn"])){
     $mail = isset($_POST['mail']);
     $name1 = isset($_POST['name']); echo "Returned value from the function : $name1";
     }
    

    代码将打印 1Returned value from the function : 1 因为 $mail 和 $name1 是 1。这就是 isset 函数的返回值!它会检查您是否在这些文本字段中填写了某些内容,而不是您填写的内容。

    【讨论】:

    • 请不要重复答案...第一个答案是完全相同的事情
    猜你喜欢
    • 2020-11-30
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    相关资源
    最近更新 更多