หัวข้อ: ค่า get ที่รับมาเข้า form (รับเข้ามาได้เเล้ว) แต่พอกดส่งต่อ ทำไมค่าไม่ไปครับ เริ่มหัวข้อโดย: Fallen ที่ 13 ตุลาคม 2017, 15:04:33 ค่า get ที่รับมาเข้า form (รับเข้ามาได้เเล้ว) แต่พอกดส่งต่อ ทำไมค่าไม่ไปครับ
$message.=clean_msg(nl2br(strip_tags($name))); $message.=clean_msg(nl2br(strip_tags($email))); $message.=clean_msg(nl2br(strip_tags($_GET['code']))); <input name="name" type="text" size="40" value="<?=stripslashes(htmlspecialchars($name));?>" /> <input name="email" type="text" size="40" value="<?=stripslashes(htmlspecialchars($email));?>" /> <input name="code" type="text" size="40" value="<?php echo $_GET["code"]; ?>" /> :P หัวข้อ: Re: ค่า get ที่รับมาเข้า form (รับเข้ามาได้เเล้ว) แต่พอกดส่งต่อ ทำไมค่าไม่ไปครับ เริ่มหัวข้อโดย: jatuphum ที่ 13 ตุลาคม 2017, 15:15:23 ใช้ $_SESSION น่าจะตอบโจทย์ได้ดีกว่านะครับ
หัวข้อ: Re: ค่า get ที่รับมาเข้า form (รับเข้ามาได้เเล้ว) แต่พอกดส่งต่อ ทำไมค่าไม่ไปครับ เริ่มหัวข้อโดย: Fallen ที่ 13 ตุลาคม 2017, 15:18:15 ใช้ $_SESSION น่าจะตอบโจทย์ได้ดีกว่านะครับ ผมจะให้คนมาสมัครสมาชิกต่อ ก็จะส่ง url ให้โปรโมท จึงทำ แบบนี้ครับ xxx.com/form.php?code=555 พอกดเข้าไปมันก็จะส่งค่า มาที่ฟอร์มเลย จะได้รู้ว่ามาจาก 555 ไม่ทราบทำอย่างนี้ มีข้อเสียไหมครับ $_SESSION จะดีกว่าอย่างไรเหรอครับ :wanwan017: หัวข้อ: Re: ค่า get ที่รับมาเข้า form (รับเข้ามาได้เเล้ว) แต่พอกดส่งต่อ ทำไมค่าไม่ไปครับ เริ่มหัวข้อโดย: sputtaro ที่ 13 ตุลาคม 2017, 16:33:26 เมื่อรับค่าใดๆ ไม่ว่าจะเป็น $_Get $_Post $_Request
ควรเริ่มด้วยการตรวจสอบความ มี...หรือไม่ ด้วย isset เช่น if(isset($_Get['code'])){ $code=$_Get['code']; //ใช้ strip_tags หรือฟังชั่นต่างๆ เพื่อป้องกันตัวเองเสมอ //อย่าเชื่อ input จากผู้ใช้งาน โดยไม่ผ่านการตรวจสอบเป็นอันขาด echo strip_tags($code);//เพื่อตรวจสอบว่า ถูกต้อง มีค่านั้นจริง หากไม่ต้องการแสดง ก็ ไม่ต้อง echo } จากนั้นที่ input <input name="code" type="text" size="40" value="<?php echo $code; ?>" /> ******************************************* เมื่อกดส่งฟอร์ม ซึ่งบางครั้งเรานำเข้า ฐานข้อมูล จะปลอดภัย แต่ถ้าไม่มีการกลั่นกรอง ส่งไปทั้ง $_GET["code"] อันตรายมาก ระว้งจะโดน SQL Injection script เข้านะ ****************************************** การเขียน <?= ก็ ต้องระวัง เผื่อ โฮสท์ไม่เปิดฟังชั่o short_open_tag คุณก็ต้องมานั่งแก้ไข php.ini อีก เผลอๆ ใช้เขียนสคริปท์ ร่วมกับไฟล์ xml อาจมีปัญหาได้ เพราะ tag เปิดมันเหมือนกันคือ <? แม้ไม่อันตรายเท่าเรื่องแรก แต่ก็ควรระวังไว้นะครับ ******************************************* กรณี กดปุ่ม submit แล้วค่าไม่ไป (ไม่ได้รับค่านั้น) กลับมาตรวจสอบ ว่า ฟอร์มถูกต้องหรือไม่ และ/หรือ ตรวจสอบ หน้าที่รับค่านั้นด้วย หัวข้อ: Re: ค่า get ที่รับมาเข้า form (รับเข้ามาได้เเล้ว) แต่พอกดส่งต่อ ทำไมค่าไม่ไปครับ เริ่มหัวข้อโดย: Fallen ที่ 13 ตุลาคม 2017, 17:58:40 เมื่อรับค่าใดๆ ไม่ว่าจะเป็น $_Get $_Post $_Request ควรเริ่มด้วยการตรวจสอบความ มี...หรือไม่ ด้วย isset เช่น if(isset($_Get['code'])){ $code=$_Get['code']; //ใช้ strip_tags หรือฟังชั่นต่างๆ เพื่อป้องกันตัวเองเสมอ //อย่าเชื่อ input จากผู้ใช้งาน โดยไม่ผ่านการตรวจสอบเป็นอันขาด echo strip_tags($code);//เพื่อตรวจสอบว่า ถูกต้อง มีค่านั้นจริง หากไม่ต้องการแสดง ก็ ไม่ต้อง echo } จากนั้นที่ input <input name="code" type="text" size="40" value="<?php echo $code; ?>" /> ******************************************* เมื่อกดส่งฟอร์ม ซึ่งบางครั้งเรานำเข้า ฐานข้อมูล จะปลอดภัย แต่ถ้าไม่มีการกลั่นกรอง ส่งไปทั้ง $_GET["code"] อันตรายมาก ระว้งจะโดน SQL Injection script เข้านะ ****************************************** การเขียน <?= ก็ ต้องระวัง เผื่อ โฮสท์ไม่เปิดฟังชั่o short_open_tag คุณก็ต้องมานั่งแก้ไข php.ini อีก เผลอๆ ใช้เขียนสคริปท์ ร่วมกับไฟล์ xml อาจมีปัญหาได้ เพราะ tag เปิดมันเหมือนกันคือ <? แม้ไม่อันตรายเท่าเรื่องแรก แต่ก็ควรระวังไว้นะครับ ******************************************* กรณี กดปุ่ม submit แล้วค่าไม่ไป (ไม่ได้รับค่านั้น) กลับมาตรวจสอบ ว่า ฟอร์มถูกต้องหรือไม่ และ/หรือ ตรวจสอบ หน้าที่รับค่านั้นด้วย ขอบคุณมากครับ +1 เรยยย :'( |