2016-12-04 13 views
1

私は本当にこの問題に苦しんでいます。このファイルは警告なしで私のローカルのdevサイトで正常に動作します。ライブサイトに置くと致命的なエラーが発生し、アクティブ化が停止します。私はここで思いがけない終わりの理由を見つけるのは不可能だと思っています。私は両方のように、これは他のユーザーによって重複としてマークされていた、まだ、問題は、サーバーのセットアップとの違いを中心に解決した...だけでなく二つの異なるライブサイトと自身ではない厳格な構文をスクリプトの予期しない終了を見つけることができません

<?php if (! defined('ABSPATH')) exit; // Exit if accessed directly 
function the_note_form($atts){ 

    // prepare $home_page for defualt return to the homepage after note submit 
    $home_page = get_home_url(); 
     //get current users id 
     $users_id = get_current_user_id(); 
      // shortcode information 
      $id_location_form = shortcode_atts(array('location' => '', 'title' =>'', 'redirect' => $home_page, 'category_custom' => '', 'create_logged_out' =>'', 'create_logged_in'=>'', 'create_by_user_id' =>'', 'show_setup' =>'', 'id_can_see' => '0'), $atts); 
       //get a time stamp for the note 
       $entry_date = date('l jS \of F Y h:i:s A T'); //echo"$entry_date"; 
        // get current users name 
        $user_info = wp_get_current_user(); $users_name = $user_info->display_name ; 






if ($id_location_form['create_logged_in'] == 'yes' && is_user_logged_in() == "true") {include('form_build.php');} 
     //logged out form 
     if ($id_location_form['create_logged_out'] == 'yes' && is_user_logged_in() != "true") {include('form_build.php'); } 

       //specify only a user id tha can access the form. 
       if ($id_location_form['create_by_user_id'] == $users_id && $id_location_form['create_by_user_id'] != '') {include('form_build.php'); } 



//if the show_setup = yes then show this var_dump of the setu array 
if ($id_location_form['show_setup'] == "yes"){ ?> <pre> <?php print_r($id_location_form); ?> </pre> 
<? 
} 

//close the function 
} 

add_shortcode('the_note_input_form', 'the_note_form'); 



    /**************************** 
form input to database 
*******************************/ 



$security_input = 0; 


if (isset($_POST["submit_form"]) && $_POST["visitor_note"] != "") { 


    $table = $wpdb->prefix."my_notes"; 
    $name = strip_tags($_POST["visitor_name"], ""); 
    $note = strip_tags($_POST["visitor_note"], ""); 
    $vis_id = strip_tags($_POST["visitor_id"], ""); 
    $input_location = strip_tags($_POST["input_location"], ""); 
    $date_stamp = strip_tags($_POST["utc_create"], ""); 
    $category_custom = strip_tags($_POST["category_custom"], ""); 
    $id_can_view = strip_tags($_POST["id_can_see"], ""); 
    $status = strip_tags($_POST["status"], ""); 

    $wpdb->insert( 
     $table, 
     array( 
      'name' => $name, 
      'note' => $note, 
      'user_id' => $vis_id,  
      'time_of_entry' => $date_stamp, 
      'input_location' => $input_location, 
      'category' => $category_custom, 
      'id_can_view' => $id_can_view, 
      'status' => $status, 
      'security' => $security_input 
     ) 
    ); 

} 

を試してみました正しいとはいえ、まだ別の設定ではわかりません。ユーザーがこれを重複としてマークした理由はわかりません...また、問題を逃した別のユーザーもクイズを起こしました。

+0

投稿されたコードはうまく動作します。エラーは他の場所にある必要があります。 **完全**エラーメッセージを見てください。 –

+0

WP Debugを有効にしてサーバーログを確認できますか? – ste

+0

これは奇妙なことですが、私のローカルではエラーは表示されませんが、ライブサイトでプラグインを有効にすることはできません... – fullmoonfriday

答えて

1

<?は、PHPコードの開始として受け入れので、あなたのコードがローカルに動作している<?ので、ローカルサーバー上で、あなたのPHPは、おそらく短いオープンタグを有効にするために設定されていることを<?php ...

//if the show_setup = yes then show this var_dump of the setu array 
if ($id_location_form['show_setup'] == "yes"){ ?> <pre> <?php     
print_r($id_location_form); ?> </pre> 
<?php // was <? 
} 

注意する必要があります。あなたの他のサーバーはおそらく短いオープンタグを有効にしないことによって正しいことをしているので、<?はPHPコードの開始として認識されないので、あなたのコードはそこでは機能しません。いつもと同じように常に<?phpを使用することをお勧めします。

+0

ああああ、ああ私、ありがとう。 1つのセットアップがどのようにピックアップされるのか驚くべきことです。 – fullmoonfriday

+0

私の答えは理由が1つしかありませんが、他は動かないように更新しました。どちらの場所でも同じ設定を使用することをお勧めします(php.ini参照)。あなたのローカルで有効になっている短い公開タグを見るのは非常にまれです。他の非常に古い設定が有効になっているかどうかは疑問です。 – BareNakedCoder

+0

はい、それは完全に意味があります。私はオープンタグが受け入れられていることを知っていた、と私は一般的に他の人がPHPであることを確認するための装飾として考えた。おそらく私はそれが考えられる理由ではないと思ったのだろう。私は一般的に良い畜産のためにそれらを使用しましたが、これを落とし、それを懸念の可能性のある原因とは考えませんでした。再度、感謝します。私はいつもそれらを使うので、どこで終わるかは関係ありません。それは新しいセットアップですが、それは難しい教訓です。私はそのような困難を抱えていないことを願っています。 – fullmoonfriday

関連する問題