如何用wordpress写作动作

时间:2017-11-08 16:56:09

标签: php sql wordpress

我在wordpress数据库中添加新表,我创建表单以在此表中插入数据,但数据不会插入表中并在我看来“哎呀!找不到该页面”。 。
所有代码在同一页面中的名称为“cv-employerignignup.php”

<?php
function addnewemployer(){
    $name = $_POST["name"];
    $country = $_POST["country"];
    $email = $_POST["email"];
    $pass = $_POST["pass"];
    $confpass = $_POST["confpass"];
    $cellphone = $_POST["cellphone"];
    $website = $_POST["website"];

    if($name !="" && $country  !="" && $email !="" && $pass !="" && $confpass !="" && $cellphone !="" && $website !="" && $pass == $confpass){
        $newwmployer= "INSERT INTO employer (company_name,country,email,password,phone,website) VALUES ('".$name."' , '".$country."' , '".$email."' , '".$pass."' , '".$cellphone."' , '".$website."')";

        if(mysql_query($newwmployer)){
            echo "<script> alert('<p> مرحبا بك في موقع سى ڨى <br> لقد سجلت بيناتك بنجاح <br>
            من فضلك قم بتاكيد بريدك الالكترونى </p>'); </script>";
        }
        else {
            echo "<script> alert('نعتذر هناك خطا من فضلك حاول التسجيل مره اخرى');</script>" ;
        }
    }
    else{
        echo "<script> alert('من فضلك املئ جميع الخانات'); </script>";
    }

    if(isset($_POST['addemployer']))
    {
        addnewemployer();
    }
}
?>

<div class="col-lg-12 signup">
    <div class="col-lg-6 employer">
        <form action="#" method="_POST">
            <input type="text" placeholder=" اسم الشركة " name="name" class="form-control input-lg">
            <input type="text" placeholder=" بلد الشركة  " name="country" class="form-control input-lg">
            <input type="email" placeholder=" البريد الالكتروني " name="email" class="form-control input-lg">
            <input type="text" placeholder="كلمة المرور " name="pass" class="form-control input-lg">
            <input type="text" placeholder=" تأكيد كلمة المرور" name="confpass" class="form-control input-lg">
            <input type="text" placeholder=" رقم الجوال " name="cellphone" class="form-control input-lg">
            <input type="url" placeholder=" الموقع الخاص بالشركة " name="website" class="form-control input-lg">
            <button type="submit" class="btn btn-warning btn-lg btn-block" name="addemployer" onclick="addnewemployer()"> تسجيل </button>
        </form>
    </div>
</div>

我不知道错误是什么

2 个答案:

答案 0 :(得分:1)

运行 addnewemployer()的行位于函数 addnewemployer()中 - 您需要将其取出并将其添加到函数本身之后。

function addnewemployer(){ 
    // your function as above
    ... 
}
if(isset($_POST['addemployer']))
{
    // notice how it actually calling it now
    addnewemployer();
}

您还应该使用WordPress的原生 wp_insert_post 来实现此目的。注意:您需要在 addnewemployer 功能的顶部调用全局变量 $ post

表单“操作”也可以留空。

<form action="" method="POST">

答案 1 :(得分:0)

您的代码的这一部分:

if(isset($_POST['addemployer']))
{
    addnewemployer();
}

负责检查数据是否从表单发布到此文件。如果是,则调用addnewemployer()函数。

但令人惊讶的是,您已将此代码块放在函数中,因此代码的这一部分永远不会运行,并且永远不会调用addnewemployer()函数。

您需要做的是从您的函数中提取此代码块。所以你的代码应该是这样的:

function addnewemployer(){
    $name = $_POST["name"];
    $country = $_POST["country"];
    $email = $_POST["email"];
    $pass = $_POST["pass"];
    $confpass = $_POST["confpass"];
    $cellphone = $_POST["cellphone"];
    $website = $_POST["website"];

    if($name !="" && $country  !="" && $email !="" && $pass !="" && $confpass !="" && $cellphone !="" && $website !="" && $pass == $confpass){
        $newwmployer= "INSERT INTO employer (company_name,country,email,password,phone,website) VALUES ('".$name."' , '".$country."' , '".$email."' , '".$pass."' , '".$cellphone."' , '".$website."')";

        if(mysql_query($newwmployer)){
            echo "<script> alert('<p> مرحبا بك في موقع سى ڨى <br> لقد سجلت بيناتك بنجاح <br>
            من فضلك قم بتاكيد بريدك الالكترونى </p>'); </script>";
        }
        else {
            echo "<script> alert('نعتذر هناك خطا من فضلك حاول التسجيل مره اخرى');</script>" ;
        }
    }
    else{
        echo "<script> alert('من فضلك املئ جميع الخانات'); </script>";
    }
}

if(isset($_POST['addemployer'])){
    addnewemployer();
}

您的代码的另一个问题是您选择了wordpress标记,并且还提到您已在wordpress中添加了此表,但您没有使用任何wordpress功能!

但您的代码的另一个问题是使用了mysql,这是不推荐使用的。您强烈建议使用mysqlipdo,然后使用parameter bindingprepared statement来阻止sql injection