为什么我收到此PHP错误?

时间:2014-04-19 20:54:49

标签: php

所以这是我的完整代码

    <!DOCTYPE html>
<html>
<body>

<h1>Encrypt</h1>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Enter word to encrypt<input type="text" name="in">
<input type="submit">
<hr>
</form>
<h1>Decrypt</h1>
<form>
Enter word to decrypt<input type="text" name="out">
<input type="submit">
<hr>
</form>
</body>
</html>
<?php
$encrypt = $_POST['in'];
?>

这是我得到的错误

  

注意:未定义的索引:位于第20行的/Users/idrisk/Colourity/si/index.php中

第20行是$encrypt = $_POST['in'];,我不知道我做错了什么。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

作为php中表单的一般做法,请务必检查是否已单击提交按钮。

首先命名您的提交按钮:

<input type="submit" name="submit">

然后在你的php中进一步:

if (isset($_POST['submit'])) {
    // do your stuff, eg...
    $encrypt = $_POST['in'];
}

编辑#1:此外,您似乎有2个表单和2个提交按钮。我建议您只保留一个表单和一个提交按钮(删除第二个form元素和submit按钮。)

如果您确实需要2个表单,请以不同方式命名您的提交按钮,然后您可以单独调用它们。

<input type="submit" name="submit-in">

<!-- ... -->

<input type="submit" name="submit-out">

<?php // ...

if (isset($_POST['submit-in'])) {
    // do your stuff, eg...
    $encrypt = $_POST['in'];
}

if (isset($_POST['submit-out'])) {
    // do your stuff, eg...
    $dencrypt = $_POST['out'];
}

编辑#2:如果要回显表单中发布的内容,请确保在表单之前进行表单提交检查和变量设置,然后在表单之后回显变量(或者在任何地方)你想要的。)

答案 1 :(得分:1)

您需要首先检查表单是否已发送,如果表单尚未发送,则$_POST['in']尚不存在,从而导致错误

答案 2 :(得分:-1)

可能只是在关闭表单/表单,正文/然后然后是HTML / html

之后调用了php脚本

答案 3 :(得分:-4)

通过此$encrypt = $_POST['in'];替换此代码$encrypt = @$_POST['in']; 当您在远程服务器上上传此文件时,这是客户端服务器上的错误,您将看不到此错误。在将来看到此错误时,请在客户端服务器上使用@ sign。