ninwatza
คนรักเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 184
|
|
« เมื่อ: 11 กรกฎาคม 2014, 16:01:44 » |
|
PHP ฝึกหัดครับ ผมผิดตรงไหน TT พอรันแล้วมันบอกยังไม่ Index อะไรซักอย่างครับ
|
|
|
บันทึกการเข้า
|
|
|
|
name777
ก๊วนเสียว
พลังน้ำใจ: 13
ออฟไลน์
กระทู้: 262
|
|
« ตอบ #1 เมื่อ: 11 กรกฎาคม 2014, 16:10:20 » |
|
if( $_SERVER["REQUEST_METHOD"] == "POST"){
ข้างในเหมือนเดิม
} เอาไปแทน if($_POST[''submit]) ดูครับ ผมคิดว่าน่าจะประมาณนี้นะ ไม่ค่อยเก่งเหมือนกันกำลังหัดอยู่
|
|
|
บันทึกการเข้า
|
|
|
|
Synchronize
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 83
ออฟไลน์
กระทู้: 1,231
|
|
« ตอบ #2 เมื่อ: 11 กรกฎาคม 2014, 16:13:18 » |
|
บรรทัด if($_POST['submit']) ให้เปลี่ยนเป็น if(isset($_POST['submit'])) แทนครับ
|
|
|
บันทึกการเข้า
|
|
|
|
jeking
Verified Seller
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 48
ออฟไลน์
กระทู้: 1,869
|
|
« ตอบ #3 เมื่อ: 11 กรกฎาคม 2014, 16:20:38 » |
|
บรรทัด if($_POST['submit']) ให้เปลี่ยนเป็น if(isset($_POST['submit'])) แทนครับ ตามนี้
|
|
|
บันทึกการเข้า
|
|
|
|
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 493
ออฟไลน์
กระทู้: 5,905
|
|
« ตอบ #4 เมื่อ: 11 กรกฎาคม 2014, 17:07:50 » |
|
อันที่จริงแบบนี้ก็เขียนได้นะครับ แต่ไม่แนะนำ เพราะถ้าหากเซิฟเวอร์เปิดโชว์ Error notice คือ ไม่ได้สร้างตัวแปรไว้ มันจะโชว์ว่า $_POST บราๆ ไม่มีอยู่จริง
เพราะฉะนั้น ในส่วนของ PHP เอาเข้าไปไว้ในเงื่อนไข if(isset($_POST['submit'])) ให้หมดครับ
แล้วที่ใช้ isset ก็เพราะว่า เช็คว่าได้มีการสร้างตัวแปรนี้ขึ้นมาหรือยังนั่นเองครับ
|
|
|
บันทึกการเข้า
|
|
|
|
@Roverpost
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 89
ออฟไลน์
กระทู้: 1,816
|
|
« ตอบ #5 เมื่อ: 11 กรกฎาคม 2014, 17:16:03 » |
|
บรรทัด if($_POST['submit']) ให้เปลี่ยนเป็น if(isset($_POST['submit'])) แทนครับ ตามนี้ ตามนี้อีก 1 ครับ
|
|
|
บันทึกการเข้า
|
|
|
|
jirawats
ก๊วนเสียว
พลังน้ำใจ: 12
ออฟไลน์
กระทู้: 210
|
|
« ตอบ #6 เมื่อ: 11 กรกฎาคม 2014, 18:59:05 » |
|
ผมว่าเวลาโพสแล้วมันคงไม่ไปนะ เพราะว่าใน form ตรง action ไม่ได้กำหนดอ่ะ
ถ้าไง เอาตามนี้ไปก่อน
action="<?php echo $_SERVER['PHP_SELF']?>"
แก้ไข : ลืม echo
|
|
« แก้ไขครั้งสุดท้าย: 11 กรกฎาคม 2014, 19:01:24 โดย jirawats »
|
บันทึกการเข้า
|
|
|
|
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 493
ออฟไลน์
กระทู้: 5,905
|
|
« ตอบ #7 เมื่อ: 11 กรกฎาคม 2014, 19:13:00 » |
|
ผมว่าเวลาโพสแล้วมันคงไม่ไปนะ เพราะว่าใน form ตรง action ไม่ได้กำหนดอ่ะ
ถ้าไง เอาตามนี้ไปก่อน
action="<?php echo $_SERVER['PHP_SELF']?>"
แก้ไข : ลืม echo
action="" หมายถึง ให้ส่งไปไฟล์เดิมนั่นแหละครับ
|
|
|
บันทึกการเข้า
|
|
|
|
iCoHd
คนรักเสียว
พลังน้ำใจ: 10
ออฟไลน์
กระทู้: 110
|
|
« ตอบ #8 เมื่อ: 11 กรกฎาคม 2014, 19:25:34 » |
|
การประกาศค่าตัวแปร request ถ้าประกาศไว้เฉยๆ เวลาเรียกใช้งานธรรมดามันจะเออเร่อครับ เพราะมันไม่มีการกำหนดค่ามาให้ ต้องแก้แบบนี้
$username = isset($_POST['login']); $password = isset($_POST['password']);
if(isset($_POST['submit'])){
}
หรือไม่ก้เอา $username กับ $password ย้ายมาใส่ในเงื่อนไขแบบนี้ครับ
if(isset($_POST['submit'])){ $username = $_POST['login']; $password = $_POST['password']; }
** isset() คือฟังชั่นใช้ตรวจสอบตัวแปรว่ามีการกำหนดขึ้นมารึป่าว ถ้ามีจะ return เป็น value (True) ถ้าไม่มีจะ return False
|
|
« แก้ไขครั้งสุดท้าย: 11 กรกฎาคม 2014, 19:30:41 โดย iCoHd »
|
บันทึกการเข้า
|
|
|
|
LifeGood
สมุนแก๊งเสียว
พลังน้ำใจ: 45
ออฟไลน์
กระทู้: 574
|
|
« ตอบ #9 เมื่อ: 11 กรกฎาคม 2014, 20:04:14 » |
|
ใช้ php version ไหนครับ ถ้า 5.4+ ใช้แบบนี้ filter_input(INPUT_POST, 'login') แทน $_POST['login'] นะครับ
|
|
|
บันทึกการเข้า
|
รับงาน PHP Programming ฟรีแลนซ์ จากโปรแกรมเมอร์ประสบการณ์กว่า 8 ปี ชำนาญเฟรมเวิร์ค CI ปรับแต่งได้ทุก CMS รับทั้งงานเล็กและงานใหญ่ในราคาเพื่อนฝูง รับทีละงาน ไม่พอกหางหมู เสร็จตรงเวลาแน่นอน แจ้งความคืบหน้าและอัพเดทความคืบหน้าของงานทุก 3 วัน สนใจ PM มาครับ!!!
|
|
|
|
ninwatza
คนรักเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 184
|
|
« ตอบ #11 เมื่อ: 11 กรกฎาคม 2014, 21:03:02 » |
|
ได้แล้วครับ ผมใส่ isset($_POST['submit']) อย่างเดียวไม่พอครับ ต้องใส่ isset ทุกตัว -.- ต้องขอบคุณทุกท่านมากครับ กระจ่างเลย แต่ว่าทำไมมันยังขึ้น เหลืองๆอยู่เลย -.-
|
|
« แก้ไขครั้งสุดท้าย: 11 กรกฎาคม 2014, 21:03:53 โดย ninwatza »
|
บันทึกการเข้า
|
|
|
|
Synchronize
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 83
ออฟไลน์
กระทู้: 1,231
|
|
« ตอบ #12 เมื่อ: 11 กรกฎาคม 2014, 21:20:50 » |
|
เหลืองๆ เพราะ netbean มันไม่รู้จัก super global ล่ะมั้งครับ edit --- คุณใส่ isset ผิด แล้วนะครับ ตรงพวก username ใส่แบบนั้น มันจะได้ค่า true/false ออกมาแทน ถ้าจะใช้แบบนั้น ให้ใช้ แบบนี้ $username = isset($_POST['id']) ? $_POST['id'] : ''; หรือ ไม่ก็ ไม่ต้องใส่ แล้วเอาไปไว้ ภายใน if(isset($_POST['submit'])) แทน แบบนี้ if(isset($_POST['submit'])) { $username = $_POST['id']; ... ... แทนก็ได้
|
|
« แก้ไขครั้งสุดท้าย: 11 กรกฎาคม 2014, 21:24:02 โดย Synchronize »
|
บันทึกการเข้า
|
|
|
|
ninwatza
คนรักเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 184
|
|
« ตอบ #13 เมื่อ: 11 กรกฎาคม 2014, 21:22:50 » |
|
เหลืองๆ เพราะ netbean มันไม่รู้จัก super global ล่ะมั้งครับ กรรมเลย -.- แล้วถ้ามันเหลืองขึ้นมาเล่นๆ ผมไม่งงตายหรอครับ 555+
|
|
|
บันทึกการเข้า
|
|
|
|
น้องพี่ต้าร์
ก๊วนเสียว
พลังน้ำใจ: 102
ออฟไลน์
กระทู้: 388
|
|
« ตอบ #14 เมื่อ: 11 กรกฎาคม 2014, 21:32:28 » |
|
ใช้ notepad++ เลยครับจะได้ไม่มีเหลืองๆมากวนใจ เจอ error บนหน้าเว็บค่อยแก้
|
|
|
บันทึกการเข้า
|
|
|
|
kororo56
Newbie
พลังน้ำใจ: 8
ออฟไลน์
กระทู้: 89
|
|
« ตอบ #15 เมื่อ: 11 กรกฎาคม 2014, 21:35:41 » |
|
ตรง $_POST['id'] กับ $_POST['pw'] ถ้าเกิด submit ขึ้นมาเฉย ๆ ไม่ได้ป้อนข้อมูลมันจะเกิด "undefined index" ขึ้นมาได้
$username = (isset($_POST['id']) && is_string($_POST['id'])) ? $_POST['id'] : null; $password = (isset($_POST['pw']) && is_string($_POST['pw'])) ? $_POST['pw'] : null;
|
|
|
บันทึกการเข้า
|
|
|
|
jengseo01
สมุนแก๊งเสียว
พลังน้ำใจ: 24
ออฟไลน์
กระทู้: 745
|
|
« ตอบ #16 เมื่อ: 11 กรกฎาคม 2014, 22:01:22 » |
|
PHP ฝึกหัดครับ ผมผิดตรงไหน TT พอรันแล้วมันบอกยังไม่ Index อะไรซักอย่างครับ ขอถามหน่อย ใช้ editor อะไรเหรอครับ สวยดี
|
|
|
บันทึกการเข้า
|
|
|
|
ninwatza
คนรักเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 184
|
|
« ตอบ #17 เมื่อ: 11 กรกฎาคม 2014, 22:27:47 » |
|
เหลืองๆ เพราะ netbean มันไม่รู้จัก super global ล่ะมั้งครับ edit --- คุณใส่ isset ผิด แล้วนะครับ ตรงพวก username ใส่แบบนั้น มันจะได้ค่า true/false ออกมาแทน ถ้าจะใช้แบบนั้น ให้ใช้ แบบนี้ $username = isset($_POST['id']) ? $_POST['id'] : ''; หรือ ไม่ก็ ไม่ต้องใส่ แล้วเอาไปไว้ ภายใน if(isset($_POST['submit'])) แทน แบบนี้ if(isset($_POST['submit'])) { $username = $_POST['id']; ... ... แทนก็ได้ ทำตามแล้วครับ มันก็ยังเหลืองๆอยู่ 55 แต่ว่าถ้ารันผ่านหน้าเว็บ ก็ปรกติครับไม่มีแจ้งเตือน ขอคำอธิบาย ฟังก์ชั่นนี้หน่อยครับผมงง $username = isset($_POST['id']) ? $_POST['id'] : '';
|
|
|
บันทึกการเข้า
|
|
|
|
ninwatza
คนรักเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 184
|
|
« ตอบ #18 เมื่อ: 11 กรกฎาคม 2014, 22:31:34 » |
|
PHP ฝึกหัดครับ ผมผิดตรงไหน TT พอรันแล้วมันบอกยังไม่ Index อะไรซักอย่างครับ ขอถามหน่อย ใช้ editor อะไรเหรอครับ สวยดี ์ Netbean theme Monokai ครับ
|
|
|
บันทึกการเข้า
|
|
|
|
O.o!!
Verified Seller
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 237
ออฟไลน์
กระทู้: 1,432
|
|
« ตอบ #19 เมื่อ: 11 กรกฎาคม 2014, 22:33:43 » |
|
ทำตามแล้วครับ มันก็ยังเหลืองๆอยู่ 55 แต่ว่าถ้ารันผ่านหน้าเว็บ ก็ปรกติครับไม่มีแจ้งเตือน ขอคำอธิบาย ฟังก์ชั่นนี้หน่อยครับผมงง $username = isset($_POST['id']) ? $_POST['id'] : '';
มันเป็นวิธีเขียนสั้นๆครับ เทียบเท่ากับ if(isset($_POST['id'])){ $username = $_POST['id']; }else{ $username = ''; } มันเรียกว่า Ternary Operator ครับ ลองอ่านคำอธิบายวิธีใช้ได้ที่นี่ครับ ( ไม่ใช่เว็บผม ) http://www.select2web.com/php/ternary-operator.html
|
|
|
บันทึกการเข้า
|
|
|
|
|