【问题标题】:how write action to form with wordpress如何用wordpress编写动作形成
【发布时间】:2017-11-08 16:56:09
【问题描述】:

我在 wordpress 数据库中添加新表并创建表单以在此表中插入数据,但数据没有插入到表中,并且对我显示“糟糕!找不到该页面。” .
同一页面中的所有代码名称为“cv-employersignup.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>

我不知道是什么错误

【问题讨论】:

  • 我不知道这是否只是你的错误粘贴,但这个 &lt;/div 缺少一个 &gt;
  • 您没有回复。你要么留下问题,要么等待魔法药水。祝你好运,我已经留下了问题。

标签: php sql wordpress


【解决方案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

表单“action”也可以留空。

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

【讨论】:

    【解决方案2】:

    这部分代码:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 2019-05-16
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      相关资源
      最近更新 更多