PHP $ _POST错误

Kar*_*enV 0 php forms post undefined

$ _POST ['str']我收到以下错误:

注意:第12行的C:\ Program Files\EasyPHP-5.3.8.0\www\strrev.php中的未定义索引:str

我花了太多时间为此寻找答案,但没有运气!请看一下代码,让我知道它有什么问题?

<html>
<head>
<title></title>
</head>
<body>
  <?php 
    if (trim($_POST['str'])) {
      $str = $_POST['str'];
  $len = strlen($str);
      for($i=($len-1); $i>=0;$i--) {
      echo $str[$i];
      } 
} else {
  ?>
<form method="post" action="">
    <input type="text" name="str" />
    <input type="button" name="submit" value="Reverse" />
    </form>
    <?php
  }
  ?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

它显示错误旁边的文本字段和反向按钮.而且,当我按下按钮时,什么都不会发生.

Dar*_*ren 6

更改if (trim($_POST['str']))if (!empty($_POST['str']))

您的if语句正在尝试修剪不存在的数组索引,从而导致错误.您必须先检查索引是否存在.

如果有人想知道 - 我使用empty而不是isset作为OP,通过使用trim暗示(或者至少从我推断),$_POST['str']包含空字符串的正确集合是不可接受的.但是,这并不能解决$_POST['str']包含大量空格的情况.