Php 除ID外,未向数据库发送任何内容
出于某种原因,除了ID之外,没有任何东西被发送到我的数据库 HTMLPhp 除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="
<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());