我正在开发一个将文件附加到电子邮件的PHP表单,并试图优雅地处理上传文件太大的情况.
我了解到有两个设置php.ini会影响文件上传的最大大小:upload_max_filesize和post_max_size.
如果文件的大小超过upload_max_filesize,PHP将文件的大小返回为0.这很好; 我可以检查一下.
但如果超过post_max_size,我的脚本会无声地失败并返回到空白表单.
有没有办法抓住这个错误?
我正在尝试使用构建一个简单的登录系统<form method="post">.我的笔记本电脑上的MAMP一切正常,但是当我将脚本上传到服务器(Windows)时,它无效; 好像$ _POST数组是空的.
我评论了除了骨头之外的一切,但它仍然不起作用.
index.php文件:
<form id="login-form" method="POST" action="_scripts/check_login.php">
Email Address
<input name="login-email" type="text" id="login-email">
Password
<input name="login-password" type="text" id="login-password">
<input type="submit" name="Submit" id="login-button" value="Login">
</form>
Run Code Online (Sandbox Code Playgroud)
_scripts/check_login.php :(除了一些var_dump以外,我已删除了所有内容以进行调试)
var_dump($_POST);
$loginEmail = trim($_POST['login-email']);
echo '<br>';
$loginPassword = ($_POST['login-password']);
var_dump($loginEmail);
echo '<br>';
var_dump($loginPassword);
Run Code Online (Sandbox Code Playgroud)
当我提交表单时,无论我在文本字段中添加什么,我都会看到:
array(0) { }
string(0) ""
NULL
Run Code Online (Sandbox Code Playgroud)
如果我在上面两个文件中将"post"的所有实例更改为"get",一切正常.但我不想用get.(如果我使用method ="post"提交表单,则$ _REQUEST不起作用).
注意,这一切都可以在localhost上运行,但不能在服务器上运行(运行Windows.)所以这似乎是服务器的问题,但我不知道是什么.你可以在这里看到PHPInfo:http://brailleapps.org/phpinf0.php
有任何想法吗?
编辑:解决了!见下文.
我有最简单的形式,我想做的就是回复文本框中写的任何内容.
HTML:
<form action="" method="post">
<input type="text" name="firstname">
<input type="submit" name="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)
PHP:
if(isset($_POST['submit'])){
$test = $_POST['firstname'];
echo $test;
}
Run Code Online (Sandbox Code Playgroud)
问题是它不能在我的服务器上运行(它可以在另一台服务器上运行).有没有人知道什么可能是错的?服务器上还有其他表单,工作正常.