2017-07-04 7 views
0

WordPressでPHPを実装すると、私が予想していたよりも難しいことが分かります。 useful_functions.inc.phpと呼ばれる、データ検証などの便利な機能がすべてあるファイルを作成しました。WordPressにPHPを実装

私のスクリプトを実行すると、フォームが表示されます。ユーザーがフォームを送信すると、すべてのユーザー入力が取得されます。 useful_functions.inc.phpで確認します。

これはWordPress外ではすべて完璧ですが、内側は別の話です。 現時点で私は自分のフォームを見てもらえません。私はこれを見逃してしまったのですか?

<?php 
include_once ('scripts/useful_functions.inc.php'); 
global $wpdb; 

if (($_SERVER["REQUEST_METHOD"] == "POST")&& $voornaamErr== "" && $familienaamErr== "" && $emailErr== "" && $telErr== "" && $afileErr== "") { 
    try { 
     $table = $wpdb->prefix.'sollicitaties'; 
     $file = rand(1000,100000)."-".$_FILES['afile']['name']; 
     $file_size = $_FILES['afile']['size']; 
     $file_type = $_FILES['afile']['type']; 
     $file_loc = $_FILES['afile']['tmp_name']; 
     $folder="wp-content/themes/jobify-extended/uploads/"; 
     $data = array( 
      'voornaam' => $_POST['avoornaam'], 
      'familienaam' => $_POST['afamilienaam'], 
      'email' => $_POST['email'], 
      'tel' => $_POST['tel'], 
      'file' => rand(1000,100000)."-".$_FILES['afile']['name'], 
      'size' => $_FILES['afile']['size'], 
      'type' => $_FILES['afile']['type'], 
     ); 
     $new_size = $file_size/1024; 
     $new_file_name = strtolower($file); 
     $final_file=str_replace(' ','-',$new_file_name); 
     $format = array( 
      '%s', 
      '%s' 
     ); 

     if(move_uploaded_file($file_loc,$folder.$final_file)) 
     { 
      $success=$wpdb->insert($table, $data, $format,$folder); 
      if($success){ 
      ?> 
       <script> 
       alert('successfully uploaded'); 
       </script> 
       <?php 

       exit(); 
       } 
      } 
      catch(PDOException $e) 
       { 
       echo "Error: " . $e->getMessage(); 
       } 

      $conn->null; 

    } 

    else {?> 

     <form action="" method="post" enctype="multipart/form-data"> 
      <div class="field-wrap"> 
       <label>Voornaam</label><span class="error">* <?php echo $voornaamErr;?></span> 
        <input type="text" name="voornaam" value=""> 
      </div> <!-- /field-wrap--> 

      <div class="field-wrap"> 
       <label>Familienaam</label><span class="error">* <?php echo $familienaamErr;?></span> 
        <input type="text" name="familienaam" value="<?= isset($_POST['familienaam']) ? $_POST['familienaam'] : ''; ?>"> 
      </div> <!-- /field-wrap--> 


      <div class="field-wrap"> 
       <label>Email Adres</label><span class="error">* <?php echo $emailErr;?></span> 
        <input type="email" name="email" value="<?= isset($_POST['email']) ? $_POST['email'] : ''; ?>"> 
      </div> <!-- /field-wrap--> 

      <div class="field-wrap"> 
       <label>Telefoon/GSM</label><span class="error">* <?php echo $telErr;?></span> 
        <input type="text" name="tel" value="<?= isset($_POST['tel']) ? $_POST['tel'] : ''; ?>"> 
      </div> <!-- /field-wrap--> 

      <div class="field-wrap"> 
       <label>CV</label><span class="error">* <?php echo $afileErr;?></span> 
        <input type="file" name="afile" > 
      </div> <!-- /field-wrap--> 

     <button type="submit" class="button button-block" />Get Started</button> 
     </form> 
    <?php 
    } 
} 
?> 
+1

どのようなエラーが表示されますか? – vaso123

+0

@ vaso123私はWordPressページだけをヘッダで取得します....ページの残りの部分は空白です – Newbie2017

答えて

0

フォームには、たとえばcontact form 7などのプラグインを使用する必要があります。または、wp-ajaxまたはwp rest apiを介してフォームデータを取得するコードを作成します。

これはWordPressでどのくらいの頻度で行われたのですか。

関連する問題