PHP/html电子邮件表单不再提交到mysql数据库

PHP/html电子邮件表单不再提交到mysql数据库,php,mysql,forms,email,Php,Mysql,Forms,Email,我创建了这个表单: <form method="post" action="process-form.php" id="emailForm" name="emailForm" target="_self"> <h4>Sign up to be notified when we go live!</h4> <label for="email">E-mail</label> <input type="te

我创建了这个表单:

<form method="post" action="process-form.php" id="emailForm" name="emailForm"      target="_self">  
    <h4>Sign up to be notified when we go live!</h4>
<label for="email">E-mail</label>
    <input type="text" name="email" id="email" />
<input type="submit" name="submit" id="submit" value="Submit"  onclick="return alert('Thanks! Your email has been added.');">

    <p>emails will not be shared with third parties</p>
</form>

注册以便在我们上线时收到通知!
电子邮件
电子邮件不会与第三方共享

使用此php代码

<?php

//open database connect
$username = "username";
$password = "password";
$hostname = "server"; 

$conn = mysql_connect($hostname, $username, $password);
if (!$conn) die('Could not connect: ' . mysql_error());

//emaillist is the name of the database
mysql_select_db('emaillist');

//Clean data
function clean_data($string){
  if (get_magic_quotes_gpc()){
    $string = stripslashes($string);
  }
  $string = strip_tags($string);
  return mysql_real_escape_string($string);
}

//Mail Header removal
function remove_headers($string){
  $headers = array(
        "/to\:/i",
        "/from\:/i",
        "/bcc\:/i",
        "/cc\:/i",
        "/Content\-Transfer\-Encoding\:/i",
        "/Content\-Type\:/i",
        "/Mime\-Version\:/i",
    );

    $string = preg_replace($headers, '', $string);
    return strip_tags($string);
}

//Pick up cleaned data
$email = clean_data($_POST['email']);


//Insert data
//emails is the name of the table
$query ="INSERT INTO emails (email)
  VALUES ('$email')";

mysql_query($query);

//close Connection
mysql_close($conn); 

//redirect to page
header('Location: defaultUpCyc.html');
?>

您应该通过添加以下内容来检查连接是否正常工作:

if (!$conn) { die('Could not connect: ' . mysql_error()); }
还要检查firebug以确保表单发布了数据。您还可以回显查询以检查格式。否则一切看起来都很好,所以我的假设是数据库连接不好


不过只是猜测一下:)

您应该通过添加以下内容来检查您的连接是否正常:

if (!$conn) { die('Could not connect: ' . mysql_error()); }
还要检查firebug以确保表单发布了数据。您还可以回显查询以检查格式。否则一切看起来都很好,所以我的假设是数据库连接不好


只是猜测一下:)

您测试站点上的表单标记没有定义其操作,这意味着它正在将数据发送给自己,HTML无法与数据库一起工作。

您测试站点上的表单标记没有定义其操作,这意味着它正在将数据发送给自己,HTML无法与数据库一起工作。

我认为您的问题在于onclick javascript,尝试删除它,它可能会工作

我想你的问题在于onclick javascript,尝试删除它,它可能会工作

我不知道如何在这里添加代码,所以我制作了一个粘贴:
您可以使用此

我不知道如何在此处添加代码,因此我制作了一个粘贴:

您可以使用此

您的代码根本没有执行任何类型的错误报告,甚至没有检查事件是否成功。例如,mysql_connect将返回数据库句柄,如果无法连接到数据库,则返回false。您没有检查mysql_connect是否返回了有效的db句柄,那么您的脚本如何知道它是否未能连接到数据库?代码中有很多点你没有检查操作是否成功,你的脚本可能在这些点中的任何一点上失败。我应该提到的是,我对大多数这方面都是新手。作为补充,您应该开始使用OO MySQLi类,因为它
允许您访问MySQL 4.1及更高版本提供的功能
您的代码根本没有执行任何类型的错误报告,甚至没有检查事件是否成功。例如,mysql_connect将返回数据库句柄,如果无法连接到数据库,则返回false。您没有检查mysql_connect是否返回了有效的db句柄,那么您的脚本如何知道它是否未能连接到数据库?代码中有很多点你没有检查操作是否成功,你的脚本可能在这些点中的任何一点上失败。我应该提到的是,我对大多数这方面都是新手。作为补充,您应该开始使用OO MySQLi类,因为它允许您访问MySQL 4.1及以上版本提供的功能。我已经添加了if(!$conn)die('cannotconnect:'.mysql_error());就在我接通电话之后。但我仍然没有得到一个错误。我如何回显我的查询以检查格式?您可以
echo$query或静默
错误日志($query)
将出现在服务器的错误日志中。不确定您是否有权访问bash,但如果您有权访问mysql-h HOSTNAME-uUSERNAME-p数据库,则应该能够从命令行访问mysql数据库。然后,您可以运行查询,查看它是否插入或出错。只是增加了更多调试技巧:)嗯,我不知道我是否有bash,但我会研究它。谢谢谢谢你,罗伯特。我已经添加了if(!$conn)die('cannotconnect:'.mysql_error());就在我接通电话之后。但我仍然没有得到一个错误。我如何回显我的查询以检查格式?您可以
echo$query或静默
错误日志($query)
将出现在服务器的错误日志中。不确定您是否有权访问bash,但如果您有权访问mysql-h HOSTNAME-uUSERNAME-p数据库,则应该能够从命令行访问mysql数据库。然后,您可以运行查询,查看它是否插入或出错。只是增加了更多调试技巧:)嗯,我不知道我是否有bash,但我会研究它。谢谢你会对此进行更多的扩展吗?当然,你不会将数据提交到你的process-form.php文件中-请参阅测试站点上的代码:谢谢Shomz!我甚至都没看到那东西在里面!没问题!通常是小而愚蠢的事情造成了我们的大部分问题现在一切都好了吗?您能进一步扩展吗?当然,您没有将数据提交到您的process-form.php文件中-请参阅测试站点上的代码:谢谢Shomz!我甚至都没看到那东西在里面!没问题!通常是小而愚蠢的事情造成了我们的大部分问题现在一切都好了吗?