【发布时间】:2018-08-29 10:43:05
【问题描述】:
对 PHP 非常陌生,制作一个将其内容发布到 PHP 文件的 Web 表单。 PHP 文件需要将数据捆绑到给自己的电子邮件中,因为我没有足够的信心将数据直接发送到我们的系统中。我将一个测试 PHP 文件上传到服务器进行测试,在周末我收到了许多由该文件发送的空白电子邮件,我认为这意味着有人在未填写表单的情况下访问该文件。
- 当有人导航到我的 php 文件时,我是否使用了正确的 if 语句来阻止代码运行?
- 如何使 .php 对除网络表单以外的任何人都无法访问?
-
我犯了什么明显的错误吗?
<?php if($_SERVER["REQUEST_METHOD"] == "POST") { $emailbody = 'Name: '.$_POST['m_title'].' '.$_POST['m_firstname'].' '.$_POST['m_surname']."\n" .'Email: '.$_POST['m_email']."\n" .'Phone: '.$_POST['m_phone']."\n" .'D.O.B: '.$_POST['m_dob_day'].' '.$_POST['m_dob_month'].' '.$_POST['m_dob_year']."\n" .'Postcode: '.$_POST['m_postcode']."\n" .'Lenders: '.$_POST['m_bank1'].','.$_POST['m_bank2'].','.$_POST['m_bank3'].','.$_POST['m_bank4'].','.$_POST['m_bank5'].','.$_POST['m_bank6'].','.$_POST['m_bank7'].','.$_POST['m_bank8']; mail('**removed**', 'Web Lead', $emailbody); header('Location: https://www.**removed**' true, 301); } exit();?>
【问题讨论】:
-
在您对
header的调用中,true关键字的含义是什么? (这似乎是一个错字/复制粘贴错误) -
@Gabriel 它替换了以前设置的标题。这是默认行为。我猜这是因为 OP 需要 3 个 arg 但我不知道为什么;)
-
很对,复制粘贴出错。谢谢。
-
@Robert :我指的是无效的语法(在某处缺少逗号,假设 OP 真的想传递 3 个 args :))