۱۲ سیاوش سلیمیان
ارور invalid request و invalid action
جامعه پی اچ پی ایجاد شده در ۲۹ آبان ۱۴۰۱

من طبق آموزش استاد پیش رفتم و در فایل helpers فانکشن isajaxrequest را نوشتم. با وجود اینکه درخواست من ajax هست ارور invalid request میده.همچنین با وجود اینکه action من در سوپرگلوبال POST ست شده ارور invalid action میده. مشکل از کجاست؟ این کدهای من در helpers هست:


   function isAjaxRequest(){
      if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ) {
         return true;
     }
        return false;
}
function diepage($msg)
{
    echo "
$msg
"
;     die; } ?>

فایل ajax_handler:


include_once "C:/xampp/htdocs/7Learn.php/24-7todo/bootstrap/init.php";
if(!isAjaxRequest()){
     diepage("invalid request");
}
if(!isset($_POST['action'])||empty($_POST['action'])){
     diepage('invalid action');
}
?>
سیاوش سلیمیان ۲۹ آبان ۱۴۰۱، ۱۹:۵۹

bf00-ajax.png

سیاوش سلیمیان ۲۹ آبان ۱۴۰۱، ۲۰:۰۷

خروجی سوپرگلوبال SERVER من هم در زیر اومده. آیا نباید کلید HTTP_X_REQUESTED_WITH در این سوپرگلوبال وجود داشته باشه؟

Array
(
    [MIBDIRS] => C:/xampp/php/extras/mibs
    [MYSQL_HOME] => \\xampp\\mysql\\bin
    [OPENSSL_CONF] => C:/xampp/apache/bin/openssl.cnf
    [PHP_PEAR_SYSCONF_DIR] => \\xampp\\php
    [PHPRC] => \\xampp\\php
    [TMP] => \\xampp\\tmp
    [HTTP_HOST] => localhost
    [HTTP_CONNECTION] => keep-alive
    [HTTP_CACHE_CONTROL] => max-age=0
    [HTTP_SEC_CH_UA] => "Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"
    [HTTP_SEC_CH_UA_MOBILE] => ?0
    [HTTP_SEC_CH_UA_PLATFORM] => "Windows"
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    [HTTP_SEC_FETCH_SITE] => none
    [HTTP_SEC_FETCH_MODE] => navigate
    [HTTP_SEC_FETCH_USER] => ?1
    [HTTP_SEC_FETCH_DEST] => document
    [HTTP_ACCEPT_ENCODING] => gzip, deflate, br
    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.9,fa;q=0.8
    [PATH] => C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files\\Microsoft VS Code\\bin;C:\\Program Files\\Git\\cmd;C:\\composer;C:\\Program Files\\MySQL\\MySQL Shell 8.0\\bin\\;C:\\Users\\Siavash\\AppData\\Local\\Microsoft\\WindowsApps;C:\\xampp\\php;C:\\Users\\Siavash\\AppData\\Roaming\\Composer\\vendor\\bin
    [SystemRoot] => C:\\Windows
    [COMSPEC] => C:\\Windows\\system32\\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    [WINDIR] => C:\\Windows
    [SERVER_SIGNATURE] => 
Apache/2.4.49 (Win64) OpenSSL/1.1.1l PHP/8.0.11 Server at localhost Port 80
    [SERVER_SOFTWARE] => Apache/2.4.49 (Win64) OpenSSL/1.1.1l PHP/8.0.11
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => ::1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => ::1
    [DOCUMENT_ROOT] => C:/xampp/htdocs
    [REQUEST_SCHEME] => http
    [CONTEXT_PREFIX] => 
    [CONTEXT_DOCUMENT_ROOT] => C:/xampp/htdocs
    [SERVER_ADMIN] => postmaster@localhost
    [SCRIPT_FILENAME] => C:/xampp/htdocs/7Learn.php/24-7todo/index.php
    [REMOTE_PORT] => 62492
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /7learn.php/24-7todo/
    [SCRIPT_NAME] => /7learn.php/24-7todo/index.php
    [PHP_SELF] => /7learn.php/24-7todo/index.php
    [REQUEST_TIME_FLOAT] => 1668996710.7741
    [REQUEST_TIME] => 1668996710



سیاوش سلیمیان ۳۰ آبان ۱۴۰۱، ۰۲:۲۶

خروجی سوپرگلوبال POST من هم وقتی به صورت alert میاد این هست که ظاهرا نشون دهنده این هست که action من set شده. ولی ارور invalid action میده.

92eb-action.png

سیاوش سلیمیان ۳۰ آبان ۱۴۰۱، ۰۲:۴۰

از دوستان و منتورهای عزیز کسی نیست بتونه پاسخ مشکل من را بده؟

سیاوش سلیمیان ۳۰ آبان ۱۴۰۱، ۱۸:۵۹

سلام سیاوش جان

زمان پاسخگویی بین ۲۴ تا ۴۸ ساعت کاری هست

و من این مدت سرم به شدت شلوغ هست و پوزش میخوام بابت تاخیر

الان مشکلت اینه که ریکوئستت رو ajax نمیشناسه؟

محمد گازری ۰۱ آذر ۱۴۰۱، ۱۰:۲۹

یکی اینه که میگید و حتی کلید HTTP_X_REQUESTED_WITH در سوپرگلوبال. server من نیست. یکی هم اینکه با اینکه action در سوپرگلوبال post ست شده و در alert هم این نکته مشخصه چرا ارور invalid action میزنه؟ ممنون

سیاوش سلیمیان ۰۱ آذر ۱۴۰۱، ۱۰:۴۰

کدت رو به همراه پایگاه داده پیوست کن کد بررسیش کنم

محمد گازری ۰۱ آذر ۱۴۰۱، ۱۰:۴۲


سیاوش سلیمیان ۰۱ آذر ۱۴۰۱، ۲۰:۱۰

بررسی میکنم و خدمتتون نتیحه رو اعلام خواهم کرد

محمد گازری ۰۲ آذر ۱۴۰۱، ۱۵:۲۴

سلام جناب گازری. بررسی کردید؟

سیاوش سلیمیان ۰۵ آذر ۱۴۰۱، ۱۳:۰۸

پروژت رو بررسی کردم به صورت کلی مشکل نداشت

۱. ajax_handler نباید در init اینکلود بشه (اون وقت همه ریکوست‌ها به مشکل میخورن!)

۲. آدرس دهی‌ها رو هم اصلاح کن که تابع‌ها خونده بشن

در فایل تمپلیتت هم ۲ تا مشکل داشتی

۱. مشکل اسم فولدر

۲. مشکل در اینکه اگر folderId ست نشده باشه به مشکل میخوری (راهنمایی: از empty! میتونی استفاده کنی برای بررسی!)

محمد گازری ۰۶ آذر ۱۴۰۱، ۰۷:۱۸