Php 除ID外,未向数据库发送任何内容

Php 除ID外,未向数据库发送任何内容,php,phpmyadmin,Php,Phpmyadmin,出于某种原因,除了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="

出于某种原因,除了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;
 }
//为id创建一个随机数,并检查数据库中当前是否存在该随机数
$success=FALSE;
而($success==FALSE){
$rand=rand(100000,999999);
$q=“从$tablename中选择*,其中rand='$rand';
$r=mysql\u查询($q,$link);
echo mysql_error();
如果存在(mysql_num_rows($r)){//id
继续;
}否则{
$success=TRUE;
} 
} 
//在此处插入数据,id为$rand
$query=“插入$tablename值(“$rand”、“$youremail”、“$name”、“$receiveremail”、“$message”)”;
$result=mysql\u查询($query,$link);
如果(!$result){
echo“查询失败:”.mysql\u error()。“
\n”; 出口 }

这是数据库结构,你能看到有什么问题吗?

首先,这段代码在PHP版本>=5.4中无法工作,因为
register\u globals
已关闭。在几乎所有其他系统上,register_globals都是关闭的,因为这是一个很大的安全问题

最好使用$\u POST['fieldname']

第二,您的代码容易受到sql注入的攻击

最后,mysql_*函数不应该再使用了,因为它们很旧,被pdo或mysqli_*取代,后者可以处理sql注入

如果您解决了这三件事(或至少前两件),您的代码应该可以工作或显示有用的错误消息


最后一件事-如果启用警告,你会发现出了什么问题

啊,好吧,我使用的是我在外部硬盘上找到的一些旧代码,我不做很多php编码,直到只有ID被发送到数据库//在这里插入你的数据,ID为$rand$firstname=mysql\u real\u escape\u string($\u POST['yourmail'])$lastname=mysql\u real\u escape\u字符串($\u POST['name'])$email=mysql\u real\u escape\u字符串($\u POST['receiveremail'])$datepicker=mysql\u real\u escape\u字符串($\u POST['message'])$query=“在$tablename(rand、youremail、name、receiveremail、message)中插入值(“$rand.”、“$youremail.”、“$name.”、“$receiveremail.”、“$message.”);mysql_query($query)或die(mysql_error());