脚本未将输入发布到PHP服务器脚本
Script not posting input to PHP server script.
我们正在我们的网站上实现一个表单,让人们订阅他们的设备。我们使用jquery.easing.js只在其他字段正确时显示某些字段。javascript也在验证输入。
现在,当谈到sumbit时,我们希望向PHP脚本发送两个字段,这样它就可以向我们发送带有下标的电子邮件。
表格正在工作,只是我们没有收到电子邮件。我们已经调查过了,但找不到解决办法。有人能帮我们吗?
Javascript(提交部分):
$('#submit').click(function(e)
{
e.preventDefault();
var mac=$("#mac").val();
var store=$("#store").val();
//alert(mac);
//alert(store);
//
var dataString = 'mac=' + mac + 'store=' +store;
$.ajax({
type: 'POST',
url: 'ajax/subscribe.php',
data: dataString,
success: function(data) {
$("#optoutform").show().html("<h3>You have successfully opted-out.</h3>");
},
error: function(data) {
$("#optoutform").show().html("<h3>There was an error processing your request.</h3>");
}
});
return valid;
});
订阅.php
$to = "request@domain.com";
$subject = "Request";
$mac = $_REQUEST['#mac'] ;
$store = $_REQUEST['#store'] ;
$headers = "From: request@domain.com";
$sent = mail($to, $subject, $mac, $store, $headers) ;
更新:
好的,我已经将subscribe.php编辑为:
$to = "request@domain.com";
$subject = "Request";
$message = "<h1>Request</h1>";
$message .= "<strong>MAC</strong>: POST_$mac";
$message .= "<strong>Store</strong>: POST_$store";
$headers = "From:youremail@domain.com";
$headers .= "MIME-Version: 1.0'r'n";
$headers .= "Content-type: text/html'r'n";
$sent = mail($to, $subject, $mail_body, $headers);
根据POST,我们已经将dataString更改为正确的,但仍然没有电子邮件发送到我们的收件箱。。。
我们还能做错什么?
您的dataString不正确,您忘记了一个'&'vars之间:
var dataString = 'mac=' + mac + '&store=' + store;
另外,不需要字符串,只需传递一个对象,jQuery就可以完成剩下的工作:
$.ajax({
type: 'POST',
url: 'ajax/subscribe.php',
data : {mac: mac, store: store},
etc...
正如Ross所说,如果您使用POST方法传递变量,请使用$_POST来访问它们。不要使用$_REQUEST。此外,您的dataString变量不正确,您忘记了&,应该是:
var dataString = 'mac=' + mac + '&store=' +store;
对于POST方法使用
var dataString = {'mac':mac,'store':store};
对于GET方法,请使用
var dataString = 'mac=' + mac + '&store=' + store;
您的PHP请求中不需要标签。更改
$mac = $_REQUEST['#mac'] ;
$store = $_REQUEST['#store'] ;
至
$mac = $_REQUEST['mac'] ;
$store = $_REQUEST['store'] ;
你还需要&在设置另一个变量之前签名,因此更改
var dataString = 'mac=' + mac + 'store=' +store;
至
var dataString = 'mac=' + mac + '&store=' +store;
它似乎在发送邮件,但不允许通过服务器。
如果我使用的是PHPMailer icm SMTP。我正在使用gmail-smtp设置,并在激活订阅时返回此消息。hp:
无法发送消息。错误:SMTP Connect()失败。
`$mac=修剪($_POST['mac']);$store=修剪($_POST[‘store’]);
$body = '<p>'.$mac.'<br />';
$body .= $store.'</p>';
require($_SERVER['DOCUMENT_ROOT']."/include/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // vertel de class om SMTP te gebruiken
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = 'smtp.gmail.com'; // SMTP server
$mail->Port = 465; // SMTP poort
$mail->Username = 'username@gmail.com'; // eigen gmail-adres
$mail->Password = 'password'; // gmail wachtwoord
上面出了什么问题(我在共享主机上)
相关文章:
- 如何将字符串值从php页面发送到java脚本页面
- php脚本中无法识别ajax传递的值
- 使用JS在服务器上运行PHP脚本
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 使用php脚本验证访问者的年龄,并在不刷新的情况下根据结果加载iframe
- jQuery DataTable返回带有数据的PHP脚本
- php中的脚本重定向是递归的
- 通过JavaScript设置的表单字段的值不会作为$_POST的一部分传递给PHP脚本
- PHP和JS脚本的奇怪问题,在我刷新页面之前第一次失败
- 如何在脚本部分使用php部分代码中的变量
- 单击Dojo按钮执行PHP脚本
- wp_dequeue_script VS 从函数中删除脚本.php
- 读取 Java 脚本 / PHP 类似文件 / 缺少换行符
- 隐藏输入(html表单确认)-服务器端脚本?(php)
- 同时在java脚本(php模块)中添加/删除类
- jQuery加载img,同时执行Python脚本PHP
- 加载脚本Php / Javascript
- 反向链接检查脚本PHP
- 在没有服务器端脚本(PHP)的情况下,在所有页面上显示相同的内容(页眉、导航栏、边栏、页脚)
- 如何使一个脚本(PHP)登录到一个网站(没有API),并单击一个按钮