2016-03-31 12 views
0

私はMySQL DBにいくつかのデータを提出するための簡単なフォームを持っています。ローカルマシンではうまく動作しますが、Wordpressのページテンプレート内ではエラーは発生しません。フォームは "sitename.com/upload"ページ内にあり、同じページ(リンクバーに表示されている)に送信した後にリダイレクトされますが、404ページのコンテンツがあります。 get_header();get_footer();というタグを付けずに試してみましたが、これはwpのいくつかの変数と衝突する可能性があると思ったからですが、同じ結果が得られました。解決フォーム提出Wordpressでのみ壊れたPHPコード

<?php function renderForm($name, $price, $error) 
{ 
// if there are any errors, display them 
if ($error != '') 
{ 
echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>'; 
} 
?> 
***** LONG HTML FORM IS HERE ***** 
<?php 
} 


// connect to the database 
include('connect-db.php'); 

// check if the form has been submitted. If it has, start to process the form and save it to the database 
if (isset($_POST['submit'])) 
{ 
// get form data, making sure it is valid 
$name = mysqli_real_escape_string($connection, htmlspecialchars($_POST['name'])); 
$price = mysqli_real_escape_string($connection, htmlspecialchars($_POST['price'])); 
$shortdesc = mysqli_real_escape_string($connection, htmlspecialchars($_POST['shortdesc'])); 
$longdesc = mysqli_real_escape_string($connection, htmlspecialchars($_POST['longdesc'])); 
$current_version = mysqli_real_escape_string($connection, htmlspecialchars($_POST['current-version'])); 
$content_rating = $_POST['contentrating']; 

if(isset($_POST['category'])) { 
    $category = implode(",", $_POST['category']); 
} else { 
    $category = ""; 
} 

if(isset($_POST['platform'])) { 
    $platform = implode(",", $_POST['platform']); 
} else { 
    $platform = ""; 
} 

if(isset($_POST['devices'])) { 
    $devices = implode(",", $_POST['devices']); 
} else { 
    $devices = ""; 
} 

    if(isset($_POST['gamemodes'])) { 
    $gamemodes = implode(",", $_POST['gamemodes']); 
} else { 
    $gamemodes = ""; 
} 


//FILE UPLOAD 
$images = array(); 
if(isset($_FILES['files'])){ 
    $errors= array(); 
    foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){ 
    $file_name =$_FILES['files']['name'][$key]; 
    $file_size =$_FILES['files']['size'][$key]; 
    $file_tmp =$_FILES['files']['tmp_name'][$key]; 
    $file_type=$_FILES['files']['type'][$key]; 
     if($file_size > 2097152){ 
     $errors[]='File size must be less than 2 MB'; 
     } 
     $desired_dir="uploads/images"; 
     if(empty($errors)==true){ 
      if(is_dir($desired_dir)==false){ 
       mkdir("$desired_dir", 0700); // Create directory if it does not exist 
      } 
      if(is_dir("$desired_dir/".$file_name)==true){ 
       move_uploaded_file($file_tmp,"uploads/images/".$file_name); 
      }else{     //rename the file if another one exist 
       $file_name = time()."-".$file_name; 
       $new_dir="uploads/images/".$file_name; 
       rename($file_tmp,$new_dir) ;  
      } 
      $images[] = $file_name;  
     }else{ 
       print_r($errors); 
     } 
    } 
    if(empty($error)){ 
    $imglinks = implode(" | ", $images); 
    } 
} 


//FILE UPLOAD END 


// check to make sure both fields are entered 
if ($name == '' || $price == '') 
{ 
// generate error message 
$error = 'ERROR: Please fill in all required fields!'; 

// if either field is blank, display the form again 
renderForm($name, $price, $error); 
} 
else 
{ 
$sql = "INSERT INTO vr_submitted_apps ". "(name, price, shortdesc, longdesc, crtvers, rating, category, platform, devices, gamemodes, images, dtime) ". "VALUES('$name','$price','$shortdesc','$longdesc','$current_version','$content_rating','$category','$platform','$devices','$gamemodes', '$imglinks', NOW())"; 

// save the data to the database 
mysqli_query($connection, $sql) 
or die(mysql_error()); 
$itemId = mysqli_insert_id($connection); 
setcookie("last-inserted-id", $itemId, time() + (86400 * 3), "/"); // 86400 = 1 day 

// once saved, redirect back to the view page 
header("Location: uploader.html"); 
} 
} 
else 
// if the form hasn't been submitted, display the form 
{ 
renderForm('','',''); 
} 

答えて

0

問題: は、ここでは、コードです Wordpressのは、「名前」パラメータのために確保内部の重要な何かをしています。

関連する問題