当前位置: 首页 > 知识库问答 >
问题:

Php联系人表单插入Mysql

秦博达
2023-03-14

最后编辑:现在一切正常工作将在下面的工作代码,清理后像idealCastle说,并修复了一些语法错误,一切正常工作,因为它应该与javascript验证谢谢大家

超文本标记语言代码:

<form name = "contact " id="contact_form" action="postcontact.php" method="post" onsubmit="return validateForm();">
                <div id ="boxc">
                    <h3>Porosia juaj ?</h3>
                    <input name="orders" type="checkbox" value="veshje">Veshje
                    <input name="orders" type="checkbox" value="mbathje">Mbathje
                    <input name="orders" type="checkbox" value="stoli">Stoli
                </div>
                <div class="row">
                    <label class="required" for="name" >Emri:</label><br />
                    <input id="name" name="name" type="text" value="" size="30" placeholder = "Emri"/><br />
                    <span id="name_validation" class="error"></span>
                </div>
                <label class="required"  >Country/State:</label><br />
                <div class = "row"id="statecmb"><select name = "state">
                     <option value="chose" selected>[choose yours]</option>
                    <option value="albania">Albania</option>
                    <option value="kosovo">Kosovo</option>
                    <option value="germany">Germany</option>
                    <option value="bangladesh">Bangladesh</option>

                </select>
                <span id="state_validation" class="error"></span></div>
                <div class="row">
                    <label class="required" for="email" >Email:</label><br />
                    <input id="email" name="email" type="text" value="" size="30"placeholder = "Email" /><br />
                    <span id="email_validation" class="error"></span>
                </div>
                <div class="row">
                    <label class="required" for="message" >Mesazhi:</label><br />
                    <textarea id="message" name="message" rows="7" cols="30" placeholder = "Mesazhi"></textarea><br />
                    <span id="message_validation" class="error"></span>
                </div>

                <input name="submit" id = "sub"type="submit" value="Submit" />
                <div class="rating">
                    <h3>Vlerso Sherbimin :</h3>
                    <input type="radio" name="rate" value="1">1
                    <input type="radio" name="rate"value="2">2
                    <input type="radio" name="rate" value="3">3
                    <input type="radio"name="rate" value="4">4
                    <input type="radio" name="rate" value="5">5
                </div>
            </form>

Javascript文件:

function validateForm() {
    var valid = 1;
    var email = document.getElementById('email');
    var email_validation = document.getElementById("email_validation");
    var name = document.getElementById('name');
    var name_validation = document.getElementById("name_validation");
    var message_validation = document.getElementById("message_validation");
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if (name.value === "") {
        valid = 0;
        name_validation.innerHTML = "Ju lutem shenoni emrin tuaj";
        name_validation.style.display = "block";
        name_validation.parentNode.style.backgroundColor = "#FFDFDF";
    } else {
        name_validation.style.display = "none";
        name_validation.parentNode.style.backgroundColor = "transparent";
    }

    if (message.value === "") {
        valid = 0;
        message_validation.innerHTML = "Ju lutem plotesoni fushen e mesazhit";
        message_validation.style.display = "block";
        message_validation.parentNode.style.backgroundColor = "#FFDFDF";
    } else {
        message_validation.style.display = "none";
        message_validation.parentNode.style.backgroundColor = "transparent";
    }

    if (email.value === "") {
        valid = 0;
        email_validation.innerHTML = "Ju lutem shenoni email tuaj";
        email_validation.style.display = "block";
        email_validation.parentNode.style.backgroundColor = "#FFDFDF";
    } else {
        email_validation.style.display = "none";
        email_validation.parentNode.style.backgroundColor = "transparent";
    }

    if (!filter.test(email.value)) {
        valid = 0;
        email_validation.innerHTML = "Email juaj nuk eshte valid";
        email_validation.style.display = "block";
        email_validation.parentNode.style.backgroundColor = "#FFDFDF";
    } else {
        email_validation.style.display = "none";
        email_validation.parentNode.style.backgroundColor = "transparent";
    }
    if (!valid)
        alert("KENI ERROR : Fushat duhen te plotesohen ");

}

PHP文件:

<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'herdesigns';
$con = mysqli_connect($host, $user, $pass,$db) or die(mysqli_error());
/* mysqli_select_db($con , $db); */
?>

<?php

if (isset($_POST['submit']))
{
$name = mysqli_real_escape_string($con, $_POST['name']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$message = mysqli_real_escape_string($con, $_POST['message']);
$rate = mysqli_real_escape_string($con, $_POST['rate']);
$orders = mysqli_real_escape_string($con, $_POST['orders']);
$state = mysqli_real_escape_string($con, $_POST['state']);
/*$con = mysqli_connect($host, $user, $pass,$db) or die(mysqli_error());*/
/*mysqli_select_db($con , $db);*/
$sql = "INSERT INTO contacts (
orders,
name,
state,
email,
message,
rate
)
VALUES (
'$orders',
'$name',
'$state',
'$email',
'$message',
'$rate'
)";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "Mesazhi juaj eshte postuar me sukses";
header('Location:contact.php');

mysqli_query($con, $sql);

mysqli_close($con);
}
?>

共有2个答案

滑令
2023-03-14

可能是validform上的错误代码500。php。

请在firefox上安装firefug,它将为您节省大量时间。键入[F12]重新加载页面,网络选项卡将显示错误代码。

此外,您还需要通过web服务器获取此页面:http://localhost/dir/file取而代之的是c://shittyos\u amp/dir/thing。php

另外,您应该使用PDO的API进行连接,并且使用DB作为pdo的每个请求-

别担心,这很容易!请参阅PHP:mysql\u real\u escape\u字符串是否足以清理用户输入?

不要说您不需要安全性:如果用户在其中键入sql命令,此输入表单可能会删除您的数据库!

无论如何,如果文件是在客户端执行的,它将永远不会保护任何东西,因为JS可以被用户禁用。

注:我仍然认为自己是一个NOOB(这是我在这里的第一个答案!)永远不要忘记网络每天都在移动,这是安全的。后端和前端都是服务器端,这是应用程序的观点:前端=友好的界面(代码)后端=api(硬代码或低级代码)

附言:闪存是丑陋和过时的,Adobe产品不是自由的,他们的云很烂^^(巨魔关闭)

是你的吗?http://www.her-design.com/

段干弘扬
2023-03-14

编辑:现在()也将进入哪个字段?

如果没有实际的字段来发送日期时间,我会删除它。或者为此添加一个字段。尝试提交MySQL没有现在()它看起来像

$sql = "INSERT INTO contacts (
            name,
            email,
            message,
            rate,
            orders,
            state
        )
        VALUES (
            '$name',
            '$email',
            '$message',
            '$rate',
            '$orders', 
            '$state'
        )";

我注意到的第一件事是PHP代码显示在浏览器中。如果您被发送到文件:/,这不好,您应该使用

http//localhost/ 

(如果您在本地进行测试)或者当然,如果处于活动状态,则使用服务器url。

在这里找到
浏览器正在显示PHP代码,而不是处理它

其次,您应该清理输入的mysql数据。如果这些值中的任何一个以单引号/双引号提交内容,mysql查询将失败。

由于您使用的是一个旧的mysql函数,下面是应该可以使用的转义函数

 mysql_real_escape_string()

我会这样做,

 $sql = "INSERT INTO contacts (
            name,
            email,
            message,
            rate,
            orders,
            state
        )
        VALUES (
            '".mysql_real_escape_string($name)."',
            '".mysql_real_escape_string($email)."',
            '".mysql_real_escape_string($message)."',
            '".mysql_real_escape_string($rate)."',
            '".mysql_real_escape_string($orders)."', 
            '".mysql_real_escape_string($state)."',
            NOW()
        )";

我不确定是否有人是原因,但它们是你发布的红旗。您应该始终清理(转义)任何来自崩溃mysql查询的输入。

 类似资料:
  • 我正在为我的项目构建一个ajax/php联系表单,包含以下字段: 姓名(必填)、电子邮件(必填)、主题(必填)和网站(必填) 一切正常,现在唯一的问题是,如果用户没有在主题和或网站字段中键入任何内容,我收到的电子邮件显示这两个字段如下: 主题:(显示空白) 网址:(显示空白) 如果用户没有在我收到的电子邮件中键入任何内容,是否可能根本不显示这两个字段 名称:[用户名] 邮箱:[用户邮箱地址] 我只

  • 我有麻烦为我的联系表单获取正确的php脚本。我设法让它电子邮件我,但它没有显示一个名字,电子邮件或文本在电子邮件。 PHP脚本 联系表单

  • 联系人名单     登录至联系人名单 确认登入状态 编辑联系人名单

  • 问题内容: 我开发了一种将许多东西插入数据库的表单。但是以某种方式,当页面被填满时,它也只插入数据库管理员的user_password。我该如何解决这个问题? 问题答案: 您忘记输入关键字“ VALUES”。检查INSERT INTO的语法。 您传递给MySQL的变量(“ $ name”,“ $ password”,“ $ email”,“ $ contact”,“ $ age”,“ $ gend

  • 我有AMP中的HTML表单,带有POST操作;电子邮件的PHP文件使用Sendgrid API。我尝试了Json重定向的headers响应,但不起作用。 出于这个原因,我应用了JavaScript重定向(是的,我知道,这会为AMP验证生成错误,但我需要重定向到跟踪在线转换的感谢页面)。 PHP文件工作正常,所有电子邮件都是发送的,但没有JavaScript重定向,只有电子邮件发送的div成功或错误

  • 每次尝试提交此联系人表单时,都会收到以下错误消息: “请输入您的消息。” 名称错误消息和电子邮件错误消息不会出现,除非我将它们留空。我尝试在HTML中指定post。 以下是HTML: 下面是PHP: