ปลายทางทำงานเมื่อป้อนด้วยมือและล้มเหลวเมื่อโหลดจากไฟล์ ก่อนหมุนรหัสผ่าน ให้ตรวจสอบว่ามีการอ่านระเบียนอย่างไร

ไฟล์ที่อิงบรรทัดมีตัวคั่น หากตัวแยกวิเคราะห์ทิ้งขึ้นบรรทัดใหม่ท้ายไว้ในฟิลด์สุดท้าย ข้อมูลรับรองที่ส่งให้ไคลเอนต์อาจแตกต่างจากที่คุณตั้งใจ CRLF แบบ Windows ทำให้สองไบต์ควรค่าแก่การตรวจสอบ

file() ของ PHP รองรับ FILE_IGNORE_NEW_LINES สำหรับการอ่านระเบียนโดยไม่มีตัวคั่นท้ายบรรทัด ใช้พฤติกรรมที่เหมาะสมกับรูปแบบไฟล์ที่จัดทำเป็นเอกสาร

ระวังการแก้ไขยอดนิยมที่ตามมา: การตัดช่องว่างทุกฟิลด์ ช่องว่างอาจเป็นอักขระรหัสผ่านจริง การลบช่องว่างนำหน้าและต่อท้ายทั้งหมดจะเปลี่ยนข้อมูลรับรองแทนที่จะเพียงลบตัวสิ้นสุดระเบียน

กำหนดตัวคั่นด้วย รูปแบบที่ไม่เป็นทางการซึ่งคั่นด้วยเครื่องหมายทวิภาคอาจกำกวมเมื่อรหัสผ่านหรือที่อยู่ IPv6 มีเครื่องหมายทวิภาค อ่านระเบียนตามรูปแบบนั้น รักษาไบต์รหัสผ่านที่ตั้งใจไว้ แล้วจึง เข้ารหัสองค์ประกอบสำหรับ URL ปลายทาง หากจำเป็น

สำหรับการวินิจฉัย ให้เปรียบเทียบความยาวหรือค่าทดสอบที่ควบคุมและไม่เป็นความลับ การพิมพ์รหัสผ่านจริงหรือ URL แบบเต็มที่มีข้อมูลรับรองจะสร้างปัญหาอื่นขึ้นขณะแก้ไขข้อผิดพลาดของตัวแยกวิเคราะห์ที่เล็กมาก

บทความที่เกี่ยวข้อง