$ _POST дает мне эту ошибку неопределенный индекс, но работает для $ _REQUEST. Может ли это быть ОШИБКА htaccess? - PullRequest
0 голосов
/ 11 ноября 2019

Привет! Мне нужна помощь, когда я продолжаю получать неопределенную ошибку индекса из браузера. На самом деле я пытаюсь использовать AJAX POST для публикации ключа и значения, чтобы я мог извлечь данные из моего файла API JSON для отдыха и сохранить их в переменной, но я понимаю, что в своей папке main.php я получаю неопределенную ошибку индекса. Вот почему мой метод поста AJAX не работает. Кажется, что метод post, использующий URL, не работает в моем файле main.php, поэтому, когда я пытаюсь использовать AJAX, я не могу опубликовать ключ и значение. Это как-то связано с моим файлом htaccess? Но сохранение данных в базе данных с использованием метода post пока проблем не вызывает.

Ошибка:

Примечание: неопределенный индекс: код авторизации в /path/to/folder/api/main.php на линии9

htaccess

Options +Indexes

<files .htaccess>
    Order Allow,Deny
    Deny from all
</files>

<Directory />
    <LimitExcept GET POST HEAD>
        deny from all
    </LimitExcept>
</Directory>

DirectoryIndex uc.html main.php

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R=307,L]

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCapture.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^Webdupe.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^Pockey.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^DiscoPump.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^InternetSeer.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^HTTrack.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*HTTrack.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*MemoWeb.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*FileHound.*$
RewriteRule .* - [R=404,L,NC]

RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)/([a-z0-9_-]+)/([a-z0-9_-]+)/([a-z0-9_-]+)/?$ main.php?page=$1&action=$2&p=$3&q=$4&r=$4 [L,NC,QSA]
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)/([a-z0-9_-]+)/([a-z0-9_-]+)/?$ main.php?page=$1&action=$2&p=$3&q=$4 [L,NC,QSA]
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)/([a-z0-9_-]+)/?$ main.php?page=$1&action=$2&p=$3 [L,NC,QSA]
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)/?$ main.php?page=$1&action=$2 [L,NC,QSA]
RewriteRule ^([a-z0-9_-]+)/?$ main.php?page=$1 [L,NC,QSA]

# L makes this the last rule that this specific condition will match
# NC makes the rule non case sensitive
# $ in the regular expression makes the matching stop

AJAX, расположенный в index.php, не вызывает сообщение console.log

$(document).ready(function(){

  $('#mySelect').change(function(){

    var month = $('#mySelect').val();
    $.post('../../api/donor/donor',{
      piechart : month
    },function(data,status){
      console.log('Hello');
    }

  });

});

main.php

Я получаюошибка (Примечание: неопределенный индекс: код авторизации в пути / к / папке / api / main.php в строке 9)

<?php
include('../database.php');
include('../config.php');

$key = $_POST['authcode'];


if($key != AUTHKEY){

echo 'Authentication Code Not Found!';

exit;

}

require_once($page_api.'/'.$action_api.'.php');
?>

RESTFUL API

В этой части, если я использую $ _REQUESTи опубликовать на мой URL

example.com / api / donor / donor? piechart = value

Я не получу никакой ошибки, но когда я использую $ _POST тот же URL-пост

example.com / api / donor / donor? Piechart1 = значение

Я получаю ошибку. Я не могу использовать $ _REQUEST, потому что я хочу использовать AJAX для публикации ключа и значения для извлечения данных из файла JSON.

<?php

//Get total number of donors

$SELECT = "SELECT * FROM ".DB_PREFIX."user WHERE fld_type = 1";
$stmt = $conn ->query($SELECT);
$result = mysqli_fetch_array($stmt);
$total = mysqli_num_rows($stmt);

$test = $_REQUEST['piechart'];
$test1 = $_POST['piechart1'];


if(isset($_POST['piechart'])){
    $data = array();
    foreach($stmt as $row){

        $object['id'] = $row['id'];
        $object['name'] = $row['fld_name'];
        $object['blood'] = $row['fld_blood'];
        $object['email'] = $row['fld_email'];   
        $object['phone'] = $row['fld_phonenumber']; 
        $object['total donors'] = strval($total);

        array_push($data,$object);

    }

        $json['success'] = 1;
        $json['message'] = "Success";
        $json['data'] = $data;

    echo json_encode($json);
}
?>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...