我有一个表单无法与数据库正常工作。请帮忙我使用了时事通讯.php我已经拥有的代码,并编辑了登录信息以满足此客户的需求。任何帮助,不胜感激。
这是我的代码:
<form method="post" action="newsletter.php">
<div class="row half">
<div class="6u"><input type="text" class="text" name="name" placeholder="Name" /></div>
<div class="6u"><input type="text" class="text" name="email" placeholder="Email" /></div>
</div>
<div class="row half">
<div class="12u">
<textarea name="message" placeholder="Message"></textarea>
</div>
</div>
<div class="row">
<div class="12u">
<ul class="actions">
<li><input type="submit" value="Send Message" /></li>
</ul>
</div>
</div>
</form>
时事通讯.php
<?php
error_reporting(E_ALL);
define('DB_NAME', 'Newsletter');
define('DB_USER', '*****');
define('DB_PASSWORD','******');
define('DB_HOST','50.62.209.154:3306');
$link=mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
die('Could not connnect to the database' . mysql_error());
}
$db_selected=mysql_select_db(DB_NAME, $link);
if (!$db_selected) {
die('Can''t use' . DB_NAME . ':' . mysql_error());
}
echo 'Connected Successfuly';
$value = $_POST['name,email,message'];
$sql = "INSERT INTO newsletter (name, email, message) VALUES ('$value')";
echo "value=$value sql=$sql";
if (!mysql_query($sql)) {
die('Error: ' . mysql_error());
}
mysql_close();
?>
尝试:
$value = '"'.$_POST['name'].'","'.$_POST['email'].'","'.$_POST'message'].'"';
尽管我建议考虑使用 MySQIi,因为 MySQL 库已被较新版本的 PHP 弃用,并研究预准备语句和数据清理以防止 SQL 注入。
编辑
您还应该至少在每个 POST 变量周围使用 mysql_real_escape_string(),以防止人们在单引号(或双引号,具体取决于您包装代码时使用的双引号)进行表单输入并导致问题。
如:
$value = '"'.mysql_real_escape_string($_POST['name']).'","'.mysql_real_escape_string($_POST['email']).'","'.mysql_real_escape_string($_POST'message']).'"';
使用评论中的信息进行编辑
就像夏洛特提到的,你真的也应该开始使用PDO。在尝试学习它时,我喜欢遵循的指南之一是:http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers
但你可能想问夏洛特她是否有任何其他资源,因为她比我更熟悉PDO。