我正在调用一个ajax表单提交脚本,如下所示:
$(function() {
$('.simple-success').hide();
$("#submit_button").click(function() {
var firstname=$("input#Firstname").val();
var lastname=$("input#Lastname").val();
var email = $("input#email").val();
var title = $("input#title").val();
var organization = $("input#organization").val();
var dataString = 'firstname='+ firstname + '&lastname=' + lastname + '&email=' + email + '&title=' + title + '&organization=' + organization;
$.ajax({
type: "POST",
url: "optIn.php",
data: dataString,
success: function() {
$('.emailform').fadeOut(100).hide();
$('.simple-success').fadeIn(100).show();
alert('sucess')
}
});
return false;
});
});
脚本从表单中提取数据,因为我可以在数据字符串的警报中查看数据。然而,由于一些奇怪的原因,即使PHP脚本看起来是正确的,数据也从未发送到数据库。PHP脚本在下面给出
<?php
$firstname = stripslashes(strip_tags($_POST['firstname']));
$lastname = stripslashes(strip_tags($_POST['lastname']));
$email = stripslashes(strip_tags($_POST['email']));
$title = stripslashes(strip_tags($_POST['title']));
$organization = stripslashes(strip_tags($_POST['organization']));
$pdbHost = "localhost";
$pdbUserName = "******";
$pdbPassword = "******";
$pdbName = "db1080824_emails";
// Connect to mySQL
$conlink = mysql_connect($pdbHost, $pdbUserName, $pdbPassword);
if(!$conlink) {die('Unable to connect to '.$pdbHost);}
if (!mysql_select_db($pdbName, $conlink)){die('Cannot find database '.$pdbName);}
//SQL query
$SQL2="INSERT INTO `db1080824_emails`.`emails` (`record_id` ,`firstname`,`lastname`,`email`,`title`,`organization`)VALUES (NULL , '".$firstname."', '".$lastname."', '".$email."', '".$title."', '".$organization."')";
mysql_query($SQL2);
// Connect to Closing the connection
mysql_close($conlink);
?>
mysql服务器位于服务器上,并且已经创建了带有表的数据库,所以我不确定这里出了什么问题
任何输入都是很棒的
您可以在php中回显所需的一切,并像这样提醒它:
success: function(html) {
$('.emailform').fadeOut(100).hide();
$('.simple-success').fadeIn(100).show();
alert(html)
}
它还将显示php文件中发生的错误。
第一个选项:使用xdebug。http://xdebug.org这是最好的选择,因为它将为您提供全面的调试支持,并可以帮助您解决各种PHP/MMySQL问题。然而,正确设置可能会很痛苦,根据您的环境,这可能不是一种选择。
第二个选项:查看PHP错误日志。此日志的位置取决于您的服务器设置。如果您正在使用托管服务,则应通过主机的控制面板提供该服务。如果您的服务器是带有Apache的Linux,则日志通常位于Apache日志文件(/var/log/apache2/error.log或类似文件)或vhost日志文件(与文档根目录位于同一位置的日志文件夹)中。只需检查日志,就可以快速诊断和修复许多PHP错误。
第三种选择:打印错误字符串。试试这个:
if( !mysql_query( $SQL2 ) ) {
die( 'Error ' . mysql_errno( ) . ': ' . mysql_error( ) );
}
然后在Firebug或类似工具中检查响应。
无论你做什么,都要确保对这些输入进行消毒。永远不要认为来自web客户端的任何数据都是安全的,因为将任意数据POST到表单中是微不足道的http://us.php.net/manual/en/function.mysql-real-escape-string.php