Closed. This question is
off-topic。它目前不接受答案。
想改进这个问题吗?
Update the question所以堆栈溢出的值小于aa>。
5年前关闭。
所以我有一个“玩家”的网站,我有一个表格,人们可以用来向我发送关于他们想和我和我的竞技场球队比赛的请求。到目前为止,我只是设法让php向我发送Name、Msg、Server和ingame char Name,但它不保存电子邮件,它只是在我的数据库中的Email列为空,有没有ide我做错了什么?
我将为php发送代码,该代码将信息发送到数据库,如果它可以与validate一起使用的话。
$con=mysqli_connect("DBadress","DBNAME","DBPW","DB");
//connectar till min DB
if (mysqli_connect_errno()) {
echo "Misslyckades att ansluta till MySQL: " . mysqli_connect_error();
}
$Namn = mysqli_real_escape_string($con, $_POST['Namn']);
$Epost = mysqli_real_escape_string($con, $_POST['Epost']);
$Pers = mysqli_real_escape_string($con, $_POST['Pers']);
$Ingame = mysqli_real_escape_string($con, $_POST['Ingame']);
$Server = mysqli_real_escape_string($con, $_POST['Server']);
$Meddelande = mysqli_real_escape_string($con, $_POST['Meddelande']);
//escape variables för säkerhet
$sql="INSERT INTO Bokningar (Namn, Pers, Epost, Ingame, Server, Meddelande)
VALUES ('$Namn', '$Pers', '$Epost', '$Ingame', '$Server', '$Meddelande')";
if (!mysqli_query($con,$sql)) {
die ('Error: ' . mysqli_error ($con));
}
echo "Meddelande sparat";
mysqli_close($con);
否则这个代码对我来说是完美的
这是验证码
function check_email_address($Epost) {
if (!preg_match("/^[^@]{1,64}@[^@]{1,255}$/", $Epost)) {
return false;
}
$email_array = explode("@", $Epost);
$local_array = explode(".", $Epost_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if (!preg_match("/^(([A-Za-z0-9!#$%&'*+\/=?^_`{|}~-][A-Za-z0-9!#$%&'*+\/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $local_array[$i])) {
return false;
}
}
if (!preg_match("/^\[?[0-9\.]+\]?$/", $Epost_array[1])) {
$domain_array = explode(".", $Epost_array[1]);
if (sizeof($domain_array) < 2) {
return false;
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if (!preg_match("/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/", $domain_array[$i])) {
return false;
}
}
}
return true;
}
你应该利用准备陈述
if(check_email_address($_POST['Epost'])){
/* check connection */
if (mysqli_connect_errno()) {
echo( "Misslyckades att ansluta till MySQL: " . mysqli_connect_error());
exit();
}
$query = "INSERT INTO Bokningar (Namn, Pers, Epost, Ingame, Server, Meddelande)
VALUES (?, ?, ?, ?, ?, ?)";
/* create a prepared statement */
if ($stmt = mysqli_prepare($con, $query)) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "ssssss",
$_POST['Namn'], $_POST['Epost'],
$_POST['Pers'],$_POST['Ingame'],
$_POST['Server'], $_POST['Meddelande']);
/* execute query */
mysqli_stmt_execute($stmt);
}
/* close connection */
mysqli_close($con);
}else{
echo( "Email is not valid!!");
exit();
}