-1
<?php
  if (isset($_POST['submit']))
  {

    if (isset($_POST['a']) and $_POST["a"]!=='')
    {
     $misamarti = $_POST["a"];
     echo $misamarti;  
    }
  } 
?>

<form method="post" action="">
  <input type="text" name"a" value="<?php echo $misamarti; ?>" />
  <input type="submit" name="submit" />
</form>

在此之后我得到

注意:未定义的变量: 第 21行C:\xampp\htdocs\template\admin_panel\1.php中的misamarti

这是输入字段的内部。

4

8 回答 8

2

因为在您的表单提交之前,变量$misamarti将保持未定义。所以总是练习定义/初始化你的变量。

$misamarti = ''
if(isset($_POST['submit'])){    
     if(isset($_POST['a']) and $_POST["a"]!==''){
        $misamarti = $_POST["a"];    
        echo $misamarti;  
      }
}
于 2013-06-05T11:45:50.140 回答
2

它应该name="a"<input type=text

于 2013-06-05T11:46:33.403 回答
1

首先,您在输入名称处忘记了 = 。

其次,您应该将 $misamarti 放在双引号中以使其正常工作。

所以输入应该是这样的:

<input type="text" name="a" value="<?php echo "$misamarti" ?>" />
于 2013-06-05T11:48:26.367 回答
0

你可以试试这个代码可能对你有帮助..

  <?php
      if (isset($_POST['submit']))
      {

        if (isset($_POST['a']) and $_POST["a"]!=='')
        {
         $misamarti = $_POST["a"];
         echo $misamarti;  
        }
      } 
  ?>

    <form method="post" action="">
      <input type="text" name="a"  />
      <input type="submit" name="submit" />
    </form>

并尝试此代码

    <?php
        $misamarti='';
      if (isset($_POST['submit']))
      {

        if (isset($_POST['a']) and $_POST["a"]!=='')
        {
         $misamarti = $_POST["a"];
         echo $misamarti;  
        }
      } 
    ?>

    <form method="post" action="">
      <input type="text" name="a" value="<?php echo $misamarti ?>" />
      <input type="submit" name="submit" />
    </form>
于 2013-06-05T12:06:07.740 回答
0

改变

<input type="text" name"a" value="<?php echo $misamarti; ?>" />

<input type="text" name="a" value="<?php echo $misamarti; ?>" />
于 2013-06-05T12:56:00.710 回答
0

我不是 PHP 专家,但我怀疑范围$misamarti仅在if块内部,因此当您稍后在页面中尝试echo它时,它不存在。(至少它在其他更静态类型的语言中是这样工作的。)如果是这种情况,请if首先在块之外定义变量,将其设置为某个默认值。像这样的东西:

$misamarti = "";
if(isset($_POST['submit'])) {
    if(isset($_POST['a']) and $_POST["a"]!=='') {
        $misamarti = $_POST["a"];
        echo $misamarti;  
    }
}
于 2013-06-05T11:48:41.873 回答
0

$misamartiif()仅在条件成功时才被定义。

if()条件失败时,变量未定义。因此,当您在代码中进一步使用它时,它会抛出您报告的错误。

您可以通过在代码顶部为变量定义默认值来解决此问题:

<?php
$misamarti = '';    //add this line at the top of the program.
if(isset($_POST['submit'])) {
     //.... etc....
于 2013-06-05T11:47:24.180 回答
0

而不是使用关键字and,使用&& 另外,在顶部定义 misamarti,像这样

<?php
$misamarti;
if(isset($_POST['submit'])){
    if(isset($_POST['a']) && $_POST["a"]!==''){
        $misamarti = $_POST["a"];
        echo $misamarti;  
    }
}
?>

对于您的 HTML, a 未定义,因为 Name 未定义

<input type="text" name="a" value="<?php echo $misamarti; ?>"/>
于 2013-06-05T11:48:04.793 回答