0

我制作了一个 html 表单,用于更新 mySQL DB 中我的表中的某些字段,成功更新后应该将我引导到成功页面,否则会给出错误消息。指示错误

我使用表单验证,但到目前为止,我的表格中的字段没有任何反应,它只会将我引导到一个空白页面

这是表单代码:

<html>
    <body>
    <form action="http://localhost/wordpress/orgupdate.php" method="post" name="myForm">
        Name <input id="name" type="text" name="name" />
        Telephone <input id="telephone" type="text" name="telephone" />
        Fax <input id="fax" type="text" name="fax" />
        Web address <input id="webaddress" type="text" name="webaddress" />
        State <input id="state" type="text" name="state" />
        Address <input id="address" type="text" name="address" />
        <input type="submit"  name= "submit" value="update" />
    </form>
    </body>
</html>


<script type="text/javascript">// <![CDATA[
    /* JS validation code here */

    function validateForm()
    {
        /* Validating name field */
        var x=document.forms["myForm"]["name"].value;
        if (x==null || x=="")
        {
            alert("Name must be filled out");
            return false;
        }
        /* Validating email field */
        var x=document.forms["myForm"]["telephone"].value;

        if (x==null || x=="")
        {
            alert("telephone must be filled out");
            return false;
        }
    }
// ]]>
</script>

这是我的 php 文件:

<?php 
//establish connection
$con = mysqli_connect("localhost","xx","xxxx","android_app"); 
//on connection failure, throw an error
if(!$con) {  
    die('Could not connect: '.mysql_error()); 
}

//get the form elements and store them in variables
$name=$_POST['name']; 
$telephone=$_POST['telephone']; 
$fax=$_POST['fax']; 
$webaddress=$_POST['webaddress']; 
$state=$_POST['state']; 
$address=$_POST['address'];

$query= update  islamic_organisation SET (Telephone ='$telephone', Fax ='$fax', WebAddress ='$webaddress', state ='$state', Address ='$address' WHERE  Name  ='$name');

//Redirects to the specified page
header("Location: http://localhost/wordpress/?page_id=857");
?>

任何想法 ?

4

2 回答 2

2
$query= "update  islamic_organisation SET Telephone ='$telephone', Fax ='$fax', WebAddress ='$webaddress', state ='$state', Address ='$address' WHERE  Name  ='$name'";
$result=mysqli_query($con,$query) or die(mysqli_error());

编辑1:

printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($con));
于 2013-05-04T08:32:33.610 回答
2

几点:

  1. 如果你得到空白页,这通常意味着某处有错误,但由于你关闭了调试而没有显示。

    您通过转到 wp-config.php 并将其设置为 true 来打开调试:

    define('WP_DEBUG', true);
    
  2. 你的$query= update台词真的很奇怪。正如乔恩在评论中提到的,你应该在那里得到一个错误。
  3. 在为 WordPress 中的表单命名字段时,请避免使用诸如“名称”、“城市”之类的通用词,并使用更独特的词。

更新:(重要)

我刚刚注意到您将原始用户输入放入 SQL 语句中。您应该保护您的查询免受SQL 注入

这是一个问题的答案mysqli_query,向您展示了如何做到这一点。

于 2013-05-04T08:48:15.153 回答