2017-11-08 20 views
-1

wordpressデータベースに新しいテーブルを追加して、このテーブルにデータを挿入するフォームを作成しますが、データはテーブルに挿入されずに表示されます。見つかりました。 。
それは名前 "CV-employersignup.php" 私はエラーwordpressでフォームを書く動作を教えてください

+0

これはあなたの悪いペーストであるかどうかわかりませんが、この ' 'がありません。 –

+0

あなたは応答に失敗しました。あなたが質問を残したか、魔法の薬を待っていたか。幸い、私は質問を残しました。 –

答えて

0

あなたのコードのこのセクションにあるかわからない

<?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> 

だ同じページのすべてのコード:

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の機能のいずれかを使用していません!

しかし、あなたのコードに関するもう1つの問題は、非推奨のmysqlです。あなたは強く)が機能addnewemployer(の内側にある)mysqliまたはpdoを使用して、あなたがaddnewemployerを(実行sql injection

1

行を防ぐためにparameter bindingprepared statementを使用することが提案 - あなたはそれを取る必要があり、関数自体の後に追加してください。

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

また、これを達成するためのWordPressのネイティブwp_insert_postを使用する必要があります。注:グローバル変数を投稿addnewemployer機能の上部にあるポストに電話する必要があります。

フォームの「アクション」も空白のままにすることができます。

<form action="" method="POST"> 
関連する問題