Score:1

ข้อมูล NGINX + PHP, $_POST จะว่างเปล่าหลังจากผ่าน nginx

ธง gb

นี่คือปัญหา เมื่อฉันพยายามใช้ NGINX (1.18) และ PHP (7.4.3) กับ FPM (ล่าสุดจาก APT) ฉันพบปัญหาที่ข้อมูล POST ทั้งหมดจากสคริปต์ของฉันส่งคืนเป็นค่าว่าง

$_POST['ชื่อ'];
// คอนโซลหลังจากโพสต์: ชื่อไม่ได้กำหนด

URL ที่ฉันพยายามโพสต์ด้วย:

/โพสต์/ใหม่/โพสต์

(ผู้ใช้ดำเนินการต่อ /posts/new เพื่อสร้างโพสต์ใหม่ คำขอ $_POST ไปที่ /posts/new/posts)

นี่คือการกำหนดค่า nginx ของฉัน:

เซิร์ฟเวอร์ {
        รูท /ฟอรั่ม/;
        ดัชนี index.php;
        server_name ***.net;
        ที่ตั้ง / {
                try_files $uri $uri/ =404;
        }
        สถานที่ /posts/ {
                    try_files $uri $uri/ @rewrites;
        }
        # ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI
        #
        ตำแหน่ง ~ \.php$ {
                รวมตัวอย่าง/fastcgi-php.conf;
                fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
        }
        ตำแหน่ง @rewrites {
         เขียนใหม่ ^/posts/(?<id>[a-zA-Z0-9]+)$ /posts/?post=$id;
        }

    ฟัง [::]:443 ssl ipv6only=เปิด; # จัดการโดย Certbot
    ฟัง 443 ssl; # จัดการโดย Certbot
    ssl_certificate /etc/letsencrypt/live/***.net/fullchain.pem; # จัดการโดย Certbot
    ssl_certificate_key /etc/letsencrypt/live/***.net/privkey.pem; # จัดการโดย Certbot
    รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot

}

ตอนที่ฉันสร้างสคริปต์เหล่านี้ สคริปต์เหล่านี้ทำงานได้ดีบนเซิร์ฟเวอร์ทดสอบที่สร้างขึ้นใน PHP

หมายเหตุ: เซิร์ฟเวอร์นี้อยู่หลังพร็อกซี แต่สิ่งนี้ได้รับการทดสอบหลังพร็อกซี (ไปที่ 192.168.x.x)

แก้ไข: นอกจากนี้ฉันลืมที่จะระบุว่า $_POST ผ่านการโพสต์ XMLHTTP ผ่าน $.ajax จาก Jquery

แก้ไข 2: เมื่อดูที่ส่วนหัวที่ส่งผ่านสคริปต์ (บน FPM) จะไม่มีการส่งข้อมูลโพสต์ แต่เมื่อใช้เซิร์ฟเวอร์ทดสอบ ข้อมูลโพสต์จะถูกส่ง

Score:1
ธง gb

หลังจากดูไร้ประโยชน์ประมาณ 2 ชั่วโมง วิธีแก้ไขง่ายๆ: เปลี่ยน

        ที่ตั้ง / {
                try_files $uri $uri/ =404;
        }

ถึง

        ที่ตั้ง / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

อะไรทำให้เกิดปัญหานี้:

เมื่อเรียกใช้แบบสอบถามเทียบกับ INDEX / (ปราศจาก /index.php) ข้อความค้นหาไม่ได้ถูกส่งผ่านไปยัง /index.phpดังนั้นทั้งหมด $_โพสต์ กลับเป็น โมฆะ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา