所以这是我的完整代码
<!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'];
,我不知道我做错了什么。有什么想法吗?
答案 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。