由于某些原因,除了ID
之外,没有任何内容被发送到我的数据库HTML
<form action="sendmessage.php" method="post">
<input name="youremail" type="text" class="your-field" id="youremail" value="Your Email Address" size="35" />
<input name="name" type="text" class="their-field" id="name" value="Receivers Name" size="35" onclick="if(this.value == 'Receivers Name') { this.value = ''; }" />
<input name="receiveremail" type="text" class="their-field" id="receiveremail" value="Receivers Email Address" size="35" onclick="if(this.value == 'Receivers Email Address') { this.value = ''; }" />
<textarea name="message" cols="35" rows="5" class="valentine-message" id="textarea" onclick="if(this.value == 'Your Message') { this.value = ''; }" />Your Message</textarea>
<input class="button" name="" type="image" src="images/button.jpg" onClick="submit')">
</form>
PHP
// creates a random number for the id, ans check to see if the random number currently exists in database
$success = FALSE;
while($success == FALSE) {
$rand = rand(100000, 999999);
$q = "SELECT * FROM $tablename WHERE rand = '$rand'";
$r = mysql_query($q, $link);
echo mysql_error();
if(mysql_num_rows($r)) { //id exists
continue;
} else {
$success = TRUE;
}
}
// insert your data here with $rand as the id
$query = "INSERT into $tablename values ('$rand', '$youremail', '$name', '$receiveremail', '$message')";
$result = mysql_query($query, $link);
if (!$result) {
echo "Query Failed: " . mysql_error() . "<br />\n";
exit;
}
以下是数据库结构http://i50.tinypic.com/14jq3he.png你能看到任何问题吗?
答案 0 :(得分:0)
首先,由于register_globals
已关闭,此代码无法在PHP版本&gt; = 5.4中使用。在几乎所有其他系统上,register_globals都被关闭,因为这是一个很大的安全问题。
最好使用$ _POST ['fieldname']。
其次 - 你的代码容易受到sql注入攻击
最后,不应再使用mysql_ *函数了,因为它们已经老了,取而代之的是可以处理sql注入的pdo或mysqli_ *。
如果您修复了这三件事(或至少是前两件事),您的代码应该正常工作或显示有用的错误消息。
最后一件事 - 如果启用警告,你会发现什么是错误的