มีปัญหา Ajax กับ Xampp HomeForumมีปัญหา Ajax กับ Xampp Wanchana yoojuy ไม่ทราบว่าด่านใดได้ลองทดสอบแล้วทำได้ไหมครับ พอดีผมได้ลองทดสอบเขียนใน Appserv แล้วสามารถรันได้ปกติ แต่พออัพไปเปน Xampp บน Server ไม่สามารถใช้งานได้ครับ ลองทดสอบ Code ที่เป็น Javascript สามารถใช้ได้ครับ มีทริปอะไรเพิ่มเติมหรือสิ่งที่ต้องคำนึงในการใช้งาน Xampp ไหมครับ กรกฎ วิริยะ ผมก็ใช้ XAMPP อยู่ เวอร์ชั่น ล่าสุดครับ ไม่มีปัญหาอะไร ใช้มานานแล้วด้วย โดยปกติ ค่า default ของ XAMPP จะรัดกุมกว่าครับ ดังนั้น ทางที่ดี เขียน Ajax ให้ถูกต้อง 100% จะได้ไม่มีปัญหาใดๆกับ Server ครับ ปล. ค่า default ปกติของ XAMPP ที่ได้มาตอนติดตั้ง โดยไม่ปรับแต่งใดๆ ก็สามารถทำงานได้ปกติแล้วครับ Wanchana yoojuy ขอบคุณสำหรับคำตอบ แต่ผมได้ลองแล้ว Javascript function ด้านล่างนี้ สามารถส่งค่าไปยัง URL ได้ แต่ ไป echo ค่าใน PHP ไม่มีค่าเลย ซึ่งผมลองใน Appserv สามารถทำได้ var select_date = document.getElementById("select_date").value; window.location.href="result_test.php?select_date="+select_date; *** เมื่อมา echo $select_date ไม่มีค่าติดมา ทั้งที่ตาม URL มาปกติ ใน Appserv ก็ได้ปกติ รบกวนหน่อยครับ กรกฎ วิริยะ 555+++ <?php // result_test.php $select_date = $_GET['select_date']; echo $select_date; print_r($_GET); ?> มันเป็นแค่ Javascript ธรรมดาครับ.... ปัญหามันอยู่ที่ น่าจะรับค่าแบบเดิมๆ อยู่ Server ทั่วๆไปในปัจจุบัน จะไม่สามารถรับค่า โดยไม่ผ่าน $_GET หรือ $_POST ได้แล้วครับ ดังนั้นการรับค่าต้องรับผ่าน $_GET หรือ $_POST เท่านั้น ทำไม Appserver ทำได้ ? เพราะ Appserver รุ่นเก่าๆ (PHP4) จะกำหนด register_globals เป็น on ไว้ ทำให้สามารถรับค่าผ่านตัวแปรตรงๆได้ ซึ่งไม่ค่อยปลอดภัย ดีลูฟี่ หมวงฟาง ใช่เลยครับ ผมคนนึงที่เคยประสบปัญหาสับเพล่ายังงี้มาแล้ว อิอิ ส่งค่าไปแสดงแต่ตัวแปรเพียวๆ สุดท้าย นั่งไล่โค้ดใหม่เกือบหมด เลยจำไว้เป็นบทเรียนเลย อิอิ เขียนแบบระวังสุดๆ Wanchana yoojuy หุหุ ขอบคุณครับ ปกติเขียน แต่ Appserv ตลอดเลย พอมาทำงานที่ใหม่เลยต้องได้เปลี่ยนแล้วขอบคุณครับ ว่าแต่การเขียนแบบนี้ ทำให้ต้องเขียน Code ขึ้นเยอะเลย ไม่ทราบว่า มี Tip ไหมครับ กรกฎ วิริยะ วิธีที่ง่ายสุด ก็คือ ปิด register_global ครับ แต่... ต้องแลกกับความปลอดภัยของ Server ละครับ แฮคเกอร์อาจมาเยือนได้ง่ายๆ วิธีที่ดีที่สุดคือเขียนให้ถูกต้องครับ ซึ่งควรจะปฏิบัติให้เป็นนิสัย และสิ่งที่เรามักเขียนผิดๆ แต่ยังทำงานได้ ก็มีอีกเยอะครับ รวมถึงการเขียน แบบที่ทำงานได้บาง Server ด้วย โดยเฉพาะการใช้ $_GET $_POST $_SERVER หรือตัวแปรประเภท Global เหล่านี้แหละครับ ซึ่งในบางครั้ง เมื่อเราย้าย Server จะทำให้เราต้องมานั่งไล่โค้ด กันยกชุดเลยทีเดียว สรุป เขียนโค้ดแบบเคร่งครัด จะไม่ปวดหัวในภายหลังครับ ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
โดยปกติ ค่า default ของ XAMPP จะรัดกุมกว่าครับ ดังนั้น ทางที่ดี เขียน Ajax ให้ถูกต้อง 100% จะได้ไม่มีปัญหาใดๆกับ Server ครับ
ปล. ค่า default ปกติของ XAMPP ที่ได้มาตอนติดตั้ง โดยไม่ปรับแต่งใดๆ ก็สามารถทำงานได้ปกติแล้วครับ
Javascript function ด้านล่างนี้ สามารถส่งค่าไปยัง URL ได้ แต่ ไป echo ค่าใน PHP ไม่มีค่าเลย ซึ่งผมลองใน Appserv สามารถทำได้
var select_date = document.getElementById("select_date").value;
window.location.href="result_test.php?select_date="+select_date;
*** เมื่อมา echo $select_date ไม่มีค่าติดมา ทั้งที่ตาม URL มาปกติ ใน Appserv ก็ได้ปกติ รบกวนหน่อยครับ
<?php
// result_test.php
$select_date = $_GET['select_date'];
echo $select_date;
print_r($_GET);
?>
มันเป็นแค่ Javascript ธรรมดาครับ....
ปัญหามันอยู่ที่ น่าจะรับค่าแบบเดิมๆ อยู่
Server ทั่วๆไปในปัจจุบัน จะไม่สามารถรับค่า โดยไม่ผ่าน $_GET หรือ $_POST ได้แล้วครับ ดังนั้นการรับค่าต้องรับผ่าน $_GET หรือ $_POST เท่านั้น
ทำไม Appserver ทำได้ ?
เพราะ Appserver รุ่นเก่าๆ (PHP4) จะกำหนด register_globals เป็น on ไว้ ทำให้สามารถรับค่าผ่านตัวแปรตรงๆได้ ซึ่งไม่ค่อยปลอดภัย
ส่งค่าไปแสดงแต่ตัวแปรเพียวๆ สุดท้าย นั่งไล่โค้ดใหม่เกือบหมด
เลยจำไว้เป็นบทเรียนเลย อิอิ เขียนแบบระวังสุดๆ
หุหุ ขอบคุณครับ ปกติเขียน แต่ Appserv ตลอดเลย พอมาทำงานที่ใหม่เลยต้องได้เปลี่ยนแล้วขอบคุณครับ
ว่าแต่การเขียนแบบนี้ ทำให้ต้องเขียน Code ขึ้นเยอะเลย ไม่ทราบว่า มี Tip ไหมครับ
ต้องแลกกับความปลอดภัยของ Server ละครับ แฮคเกอร์อาจมาเยือนได้ง่ายๆ
วิธีที่ดีที่สุดคือเขียนให้ถูกต้องครับ ซึ่งควรจะปฏิบัติให้เป็นนิสัย และสิ่งที่เรามักเขียนผิดๆ แต่ยังทำงานได้ ก็มีอีกเยอะครับ รวมถึงการเขียน แบบที่ทำงานได้บาง Server ด้วย โดยเฉพาะการใช้ $_GET $_POST $_SERVER หรือตัวแปรประเภท Global เหล่านี้แหละครับ ซึ่งในบางครั้ง เมื่อเราย้าย Server จะทำให้เราต้องมานั่งไล่โค้ด กันยกชุดเลยทีเดียว
สรุป เขียนโค้ดแบบเคร่งครัด จะไม่ปวดหัวในภายหลังครับ