ThaiSEOBoard.com

ความรู้ทั่วไป => General (ถามคุยวิชาการ IM) => ข้อความที่เริ่มโดย: ninwatza ที่ 11 กรกฎาคม 2014, 16:01:44



หัวข้อ: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: ninwatza ที่ 11 กรกฎาคม 2014, 16:01:44
PHP ฝึกหัดครับ ผมผิดตรงไหน TT

 :wanwan031:

(http://upic.me/i/z6/58untitled.png)

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


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: name777 ที่ 11 กรกฎาคม 2014, 16:10:20
โค๊ด:
if( $_SERVER["REQUEST_METHOD"] == "POST"){

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

}

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


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: Synchronize ที่ 11 กรกฎาคม 2014, 16:13:18
บรรทัด  if($_POST['submit'])   ให้เปลี่ยนเป็น

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

แทนครับ

 :wanwan017:


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: jeking ที่ 11 กรกฎาคม 2014, 16:20:38
บรรทัด  if($_POST['submit'])   ให้เปลี่ยนเป็น

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

แทนครับ

 :wanwan017:

ตามนี้   :wanwan003:


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: xvlnw.com ที่ 11 กรกฎาคม 2014, 17:07:50
อันที่จริงแบบนี้ก็เขียนได้นะครับ แต่ไม่แนะนำ เพราะถ้าหากเซิฟเวอร์เปิดโชว์ Error notice คือ ไม่ได้สร้างตัวแปรไว้ มันจะโชว์ว่า $_POST บราๆ ไม่มีอยู่จริง

เพราะฉะนั้น ในส่วนของ PHP เอาเข้าไปไว้ในเงื่อนไข if(isset($_POST['submit'])) ให้หมดครับ

แล้วที่ใช้ isset ก็เพราะว่า เช็คว่าได้มีการสร้างตัวแปรนี้ขึ้นมาหรือยังนั่นเองครับ


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: @Roverpost ที่ 11 กรกฎาคม 2014, 17:16:03
บรรทัด  if($_POST['submit'])   ให้เปลี่ยนเป็น

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

แทนครับ

 :wanwan017:

ตามนี้   :wanwan003:

ตามนี้อีก 1 ครับ


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: jirawats ที่ 11 กรกฎาคม 2014, 18:59:05
ผมว่าเวลาโพสแล้วมันคงไม่ไปนะ
เพราะว่าใน form ตรง action ไม่ได้กำหนดอ่ะ

ถ้าไง เอาตามนี้ไปก่อน

action="<?php echo $_SERVER['PHP_SELF']?>"



แก้ไข : ลืม echo


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: xvlnw.com ที่ 11 กรกฎาคม 2014, 19:13:00
ผมว่าเวลาโพสแล้วมันคงไม่ไปนะ
เพราะว่าใน form ตรง action ไม่ได้กำหนดอ่ะ

ถ้าไง เอาตามนี้ไปก่อน

action="<?php echo $_SERVER['PHP_SELF']?>"



แก้ไข : ลืม echo

action="" หมายถึง ให้ส่งไปไฟล์เดิมนั่นแหละครับ


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: iCoHd ที่ 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


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: LifeGood ที่ 11 กรกฎาคม 2014, 20:04:14
ใช้ php version ไหนครับ ถ้า 5.4+ ใช้แบบนี้ filter_input(INPUT_POST, 'login') แทน $_POST['login'] นะครับ

 :-[


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: max30012540 ที่ 11 กรกฎาคม 2014, 20:04:48
เข้าใจว่าแค่ error notice สั่งปิดไปเลยก็ได้ครับ จะได้ไม่ปิดกั้นการสร้างสรรค์โค้ด :wanwan003:
http://www.thaiwebnews.com/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9B%E0%B8%B4%E0%B8%94-notices-%E0%B9%83%E0%B8%99-php/


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: ninwatza ที่ 11 กรกฎาคม 2014, 21:03:02
ได้แล้วครับ ผมใส่ isset($_POST['submit']) อย่างเดียวไม่พอครับ
ต้องใส่ isset ทุกตัว -.-

(http://upic.me/i/t5/60untitled.png)

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

แต่ว่าทำไมมันยังขึ้น เหลืองๆอยู่เลย -.-  :P


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: Synchronize ที่ 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:


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: ninwatza ที่ 11 กรกฎาคม 2014, 21:22:50
เหลืองๆ เพราะ netbean มันไม่รู้จัก super global ล่ะมั้งครับ

 :wanwan017:

กรรมเลย -.- แล้วถ้ามันเหลืองขึ้นมาเล่นๆ ผมไม่งงตายหรอครับ 555+


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: น้องพี่ต้าร์ ที่ 11 กรกฎาคม 2014, 21:32:28
ใช้ notepad++ เลยครับจะได้ไม่มีเหลืองๆมากวนใจ
เจอ error บนหน้าเว็บค่อยแก้


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: kororo56 ที่ 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;


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: jengseo01 ที่ 11 กรกฎาคม 2014, 22:01:22
PHP ฝึกหัดครับ ผมผิดตรงไหน TT

 :wanwan031:

([url]http://upic.me/i/z6/58untitled.png[/url])

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


ขอถามหน่อย ใช้ editor อะไรเหรอครับ สวยดี


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: ninwatza ที่ 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'] : '';


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: ninwatza ที่ 11 กรกฎาคม 2014, 22:31:34
PHP ฝึกหัดครับ ผมผิดตรงไหน TT

 :wanwan031:

([url]http://upic.me/i/z6/58untitled.png[/url])

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


ขอถามหน่อย ใช้ editor อะไรเหรอครับ สวยดี



Netbean theme Monokai ครับ


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: O.o!! ที่ 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


หัวข้อ: Re: PHP ฝึกหัดครับ ผมผิดตรงไหน TT
เริ่มหัวข้อโดย: ninwatza ที่ 12 กรกฎาคม 2014, 06:45:33
ทำตามแล้วครับ มันก็ยังเหลืองๆอยู่ 55 แต่ว่าถ้ารันผ่านหน้าเว็บ ก็ปรกติครับไม่มีแจ้งเตือน
ขอคำอธิบาย ฟังก์ชั่นนี้หน่อยครับผมงง
$username = isset($_POST['id']) ? $_POST['id'] : '';


มันเป็นวิธีเขียนสั้นๆครับ เทียบเท่ากับ

if(isset($_POST['id'])){
    $username = $_POST['id'];
}else{
    $username = '';
}

มันเรียกว่า Ternary Operator ครับ  ลองอ่านคำอธิบายวิธีใช้ได้ที่นี่ครับ ( ไม่ใช่เว็บผม )  [url]http://www.select2web.com/php/ternary-operator.html[/url]

ขอบคุณมากครับ