ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

หน้า: [1] 2  ทั้งหมด   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: PHP ฝึกหัดครับ ผมผิดตรงไหน TT  (อ่าน 2600 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
ninwatza
คนรักเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 184



ดูรายละเอียด
« เมื่อ: 11 กรกฎาคม 2014, 16:01:44 »

PHP ฝึกหัดครับ ผมผิดตรงไหน TT

 wanwan031



พอรันแล้วมันบอกยังไม่ Index อะไรซักอย่างครับ   Tongue
บันทึกการเข้า
name777
ก๊วนเสียว
*

พลังน้ำใจ: 13
ออฟไลน์ ออฟไลน์

กระทู้: 262



ดูรายละเอียด
« ตอบ #1 เมื่อ: 11 กรกฎาคม 2014, 16:10:20 »

โค๊ด:
if( $_SERVER["REQUEST_METHOD"] == "POST"){

ข้างในเหมือนเดิม

}

เอาไปแทน if($_POST[''submit]) ดูครับ    ผมคิดว่าน่าจะประมาณนี้นะ  Tongue ไม่ค่อยเก่งเหมือนกันกำลังหัดอยู่
บันทึกการเข้า

Synchronize
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 83
ออฟไลน์ ออฟไลน์

กระทู้: 1,231



ดูรายละเอียด
« ตอบ #2 เมื่อ: 11 กรกฎาคม 2014, 16:13:18 »

บรรทัด  if($_POST['submit'])   ให้เปลี่ยนเป็น

if(isset($_POST['submit']))

แทนครับ

 wanwan017
บันทึกการเข้า

jeking
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 48
ออฟไลน์ ออฟไลน์

กระทู้: 1,869



ดูรายละเอียด
« ตอบ #3 เมื่อ: 11 กรกฎาคม 2014, 16:20:38 »

บรรทัด  if($_POST['submit'])   ให้เปลี่ยนเป็น

if(isset($_POST['submit']))

แทนครับ

 wanwan017

ตามนี้   wanwan003
บันทึกการเข้า

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']))

แทนครับ

 wanwan017

ตามนี้   wanwan003

ตามนี้อีก 1 ครับ
บันทึกการเข้า

Shibot โปรแกรมแชทบอท พร้อมระบบไลฟ์สด ที่สามารถเพิ่มยอดขายได้จริง
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'] นะครับ

 Embarrassed
บันทึกการเข้า

รับงาน PHP Programming ฟรีแลนซ์ จากโปรแกรมเมอร์ประสบการณ์กว่า 8 ปี ชำนาญเฟรมเวิร์ค CI ปรับแต่งได้ทุก CMS รับทั้งงานเล็กและงานใหญ่ในราคาเพื่อนฝูง รับทีละงาน ไม่พอกหางหมู เสร็จตรงเวลาแน่นอน แจ้งความคืบหน้าและอัพเดทความคืบหน้าของงานทุก 3 วัน สนใจ PM มาครับ!!!
max30012540
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 196
ออฟไลน์ ออฟไลน์

กระทู้: 1,307



ดูรายละเอียด
« ตอบ #10 เมื่อ: 11 กรกฎาคม 2014, 20:04:48 »

เข้าใจว่าแค่ error notice สั่งปิดไปเลยก็ได้ครับ จะได้ไม่ปิดกั้นการสร้างสรรค์โค้ด wanwan003
http://www.thaiwebnews.com/%E0...otices-%E0%B9%83%E0%B8%99-php/
บันทึกการเข้า
ninwatza
คนรักเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 184



ดูรายละเอียด
« ตอบ #11 เมื่อ: 11 กรกฎาคม 2014, 21:03:02 »

ได้แล้วครับ ผมใส่ isset($_POST['submit']) อย่างเดียวไม่พอครับ
ต้องใส่ isset ทุกตัว -.-



ต้องขอบคุณทุกท่านมากครับ กระจ่างเลย  wanwan017

แต่ว่าทำไมมันยังขึ้น เหลืองๆอยู่เลย -.-  Tongue
« แก้ไขครั้งสุดท้าย: 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'];
   ...
   ...

แทนก็ได้

 wanwan017
« แก้ไขครั้งสุดท้าย: 11 กรกฎาคม 2014, 21:24:02 โดย Synchronize » บันทึกการเข้า

ninwatza
คนรักเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 184



ดูรายละเอียด
« ตอบ #13 เมื่อ: 11 กรกฎาคม 2014, 21:22:50 »

เหลืองๆ เพราะ netbean มันไม่รู้จัก super global ล่ะมั้งครับ

 wanwan017

กรรมเลย -.- แล้วถ้ามันเหลืองขึ้นมาเล่นๆ ผมไม่งงตายหรอครับ 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

 wanwan031



พอรันแล้วมันบอกยังไม่ Index อะไรซักอย่างครับ   Tongue


ขอถามหน่อย ใช้ 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'];
   ...
   ...

แทนก็ได้

 wanwan017

ทำตามแล้วครับ มันก็ยังเหลืองๆอยู่ 55 แต่ว่าถ้ารันผ่านหน้าเว็บ ก็ปรกติครับไม่มีแจ้งเตือน
ขอคำอธิบาย ฟังก์ชั่นนี้หน่อยครับผมงง
$username = isset($_POST['id']) ? $_POST['id'] : '';
บันทึกการเข้า
ninwatza
คนรักเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 184



ดูรายละเอียด
« ตอบ #18 เมื่อ: 11 กรกฎาคม 2014, 22:31:34 »

PHP ฝึกหัดครับ ผมผิดตรงไหน TT

 wanwan031



พอรันแล้วมันบอกยังไม่ Index อะไรซักอย่างครับ   Tongue


ขอถามหน่อย ใช้ 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
บันทึกการเข้า
หน้า: [1] 2  ทั้งหมด   ขึ้นบน
พิมพ์