Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > เขียนคำสั่ง if else ตรวจสอบข้อมูล ทำไมได้แต่ค่า false รบกวนช่วยดูให้หน่อยครับ



 

เขียนคำสั่ง if else ตรวจสอบข้อมูล ทำไมได้แต่ค่า false รบกวนช่วยดูให้หน่อยครับ

 



Topic : 118568



โพสกระทู้ ( 116 )
บทความ ( 0 )



สถานะออฟไลน์




html กรอกฟอร์ม
<input type="text" class="form-control" placeholder="Username" name="username" required data-validation-required-message="กรุณากรอก Username">

คำสั่งตรวจข้อมูล
Code (PHP)
$befnumuser=mysql_real_escape_string($_POST["username"]);
$cnumuser=strlen($befnumuser);
if($cnumuser<6){
	$_SESSION["ssuser"]='กรุณาป้อน 6 ตัวอักษร';
	session_write_close();
	header("register.php");
	exit(0);
}


ไม่ว่าผมจะกรอก Username เกิน 6 ตัวอักษรก็ตาม สุดท้ายมันจะวาปไปหน้า register แล้วแจ้งว่าให้กรอก Username 6 ตัวอักษร
แก้ยังไงดีครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-08-26 22:53:02 By : pxmaster View : 1353 Reply : 18
 

 

No. 1



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


ลอง var_dump($cnumuser);exit; ดูว่าได้ค่าเท่าไหร่

ถ้ามันมีภาษาไทยด้วย ต้องใช้ mb_strlen






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-26 23:10:32 By : mr.v
 


 

No. 2



โพสกระทู้ ( 116 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2015-08-26 23:10:32
รายละเอียดของการตอบ ::
ได้ int(0) ครับ -..- ทำไมหว่า ไม่มีภาษาไทยเจือปนด้วยคับผมกรอกอังกฤษล้วนๆ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-27 06:48:04 By : pxmaster
 

 

No. 3



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

<form method="post"
ที่ form มีสีแดงหรือเปล่าครับ

ปล. real_escape_string ไว้ใส่ตอนคิวรี่ ครับ
ตอนตรวจเช็คข้อความยังไม่ต้องใส่


ประวัติการแก้ไข
2015-08-27 07:08:13
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-27 07:05:54 By : NewbiePHP
 


 

No. 4



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


Code (PHP)
print_r($_POST["username"]);exit;


ดูครับ ถ้าว่างเปล่าแสดงว่าไม่ได้รับค่ามา ให้ดูที่ <form อย่างที่คุณข้างบนว่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-27 09:18:00 By : mr.v
 


 

No. 5



โพสกระทู้ ( 116 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-08-27 07:05:54
รายละเอียดของการตอบ ::
มี method="post" แล้วครับ



ตอบความคิดเห็นที่ : 4 เขียนโดย : mr.v เมื่อวันที่ 2015-08-27 09:18:00
รายละเอียดของการตอบ ::
ไม่ใช่ค่าว่างครับ มันจะขึ้นเป็น Username ที่เราใส่ตอนกรอกฟอร์มเลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-27 11:43:29 By : pxmaster
 


 

No. 6



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


แล้วลองเอา mysql_real_escape_string ออกรึยังครับ?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-27 12:30:03 By : mr.v
 


 

No. 7



โพสกระทู้ ( 116 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : mr.v เมื่อวันที่ 2015-08-27 12:30:03
รายละเอียดของการตอบ ::
เพิ่งลบออกได้ละคับ ^_^ แต่มีปัญหาใหม่เข้ามาอะครับ

ข้อมูลมันไม่ยอมเพิ่มลงฐานข้อมูล
Code (PHP)
$sql3 = "INSERT INTO user (name, email, username, password) 
VALUES ('".mysqli_real_escape_string($conn,$_POST["name"])."', '".mysqli_real_escape_string($conn,$_POST["email"])."' ,'".mysqli_real_escape_string($conn,$_POST["username"])."' ,'".mysqli_real_escape_string($conn,$_POST["pass"])."')";
$query3 = mysqli_query($conn,$sql3);


ผมลอง echo ค่าออกมาดูผลคือเป็นค่าว่างทั้งหมดเลยอะครับ*** echo แบบติด mysqli_real_escape_string ไว้นะ

แต่เมื่อเอาคำสั่ง mysqli_real_escape_string ออก แล้วลอง echo ออกมา มันก็ขึ้นโชค่าที่รับมาจากฟอร์มปกติ

ผมว่าปัญหาต้องอยุ่ที่ mysqli_real_escape_string ผมใช้คำสั่งผิดยังไงช่วยชี้แนะหน่อยครับ ^_^




ประวัติการแก้ไข
2015-08-27 21:41:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-27 21:39:54 By : pxmaster
 


 

No. 8



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ลองตรวจสอบดูก่อน
$xx=mysqli_real_escape_string($conn,$_POST["name"]) or die( mysqli_error($conn)."--> $_POST[name]" );

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-28 07:30:44 By : NewbiePHP
 


 

No. 9



โพสกระทู้ ( 116 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-08-28 07:30:44
รายละเอียดของการตอบ ::
มันจะขึ้นชื่อที่เรากรอกครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-28 21:24:38 By : pxmaster
 


 

No. 10



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

งง แล้ว จากที่บอกว่าขึ้นแต่ ที่กรอก หมายความว่า เกิด error
แต่ mysqli_error()ไม่แสดงผล เพราะมีแต่ที่กรอก งั้น mysqli ก็ไม่เออเร่อร์
ก็แสดงว่า คำสั่ง mysqli_real_escape_string ไม่มี

ลองอีกครั้งนะครับว่ามัน error อะไรแน่ คือไม่อยากเชื่อว่า คำสั่ง mysqli_real_escape_string จะใช้ไม่ได้
Code (PHP)
try {
   $xx=mysqli_real_escape_string($conn,$_POST["name"]);
} catch (Exception $e) {
  echo  $e->getMessage;
}



ประวัติการแก้ไข
2015-08-29 00:51:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-28 23:49:25 By : NewbiePHP
 


 

No. 11



โพสกระทู้ ( 116 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-08-28 23:49:25
รายละเอียดของการตอบ ::
ขึ้นหน้าว่างเปล่า ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-29 00:20:58 By : pxmaster
 


 

No. 12



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ลองใหม่ครับ ผมลืม echo $e->getMessage;
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-29 00:52:01 By : NewbiePHP
 


 

No. 13



โพสกระทู้ ( 116 )
บทความ ( 0 )



สถานะออฟไลน์


ผมรู้ปัญหาละครับ ปัญหามันอยู่ที่ตอน เชื่อมต่อกับฐานข้อมูล ผมใช้ฟังชันก์ mysqli

ผมไปสร้างไฟล์ connect.php
Code (PHP)
ini_set('display_errors', 1);
error_reporting(~0);

$servername = "localhost";
$username = "admin";
$userpassword = "123456";
$dbname = "datadata";
  
$conn = mysqli_connect($servername,$username,$userpassword,$dbname);
$conn->query("set names utf8");


ในหน้า register.php
ผมก็เรียกใช้
Code (PHP)
include('http://website.com/wp-content/themes/testtheme/connect.php');


จากที่ผมทดลองนะครับ ผมเรียกใช้ include connect.php แล้วก็ให้คิวรี่แทรกข้อมูลลงฐานข้อมูล ผลคือคิวรี่ทำงานเสร็จแล้วก็วาปไปหน้าล็อคอิน แต่ข้อมูลไม่ได้แทรกลงฐานข้อมูลเลยครับ
Code (PHP)
if($query) {
header("location:login.php");
exit(0);
	}

งงครับ ข้อมูลไม่เพิ่มลงฐานข้อมูล แต่ query ทำงานเสร็จไปแล้วเลยวาปไปหน้าล็อคอิน - -

ผมทดลองใหม่ครับครั้งนี้ไม่เรียกใช้ include connect.php แต่เขียนคำสั่งเชื่อมต่อฐานข้อมูลใหม่ในหน้า register.php
ผลคือ query ทำงานเสร็จก็แทรกข้อมูลลงฐานข้อมูลแล้วก็วาปไปหน้าล็อคอิน ตรงตามสเป็คที่ตั้งไว้

ผมคิดว่าอาจจะเรียกใช้ ฐานข้อมูล include connect.php ผิด รบกวนชี้แนะหน่อยครับ


ประวัติการแก้ไข
2015-08-29 08:17:07
2015-08-29 09:25:15
2015-08-29 09:26:52
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-29 08:15:47 By : pxmaster
 


 

No. 14



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


include/require เขาไม่ใช้ http:// กันหรอกครับคุณ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-29 13:31:20 By : mr.v
 


 

No. 15



โพสกระทู้ ( 116 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 14 เขียนโดย : mr.v เมื่อวันที่ 2015-08-29 13:31:20
รายละเอียดของการตอบ ::
ใส่เป็น website.com/connect.php เลยหลอครับ

ผมลองใส่แล้วอะครับ ผมตั้งว่าถ้าเพิ่มลงฐานข้อมูลเสร็จจะวาปไปหน้าล็อคอิน
แต่นี่พอวาปใส่ ลองไปเช็คในฐานข้อมูลดู ไม่เห็นจะมีข้อมูลที่เราใส่ไปเลยอะครับ
เหมือนกับ คิวรี่รับคำสั่งมาว่าทำงานแล้ว แต่ความจริงคือข้อมูลยังไม่ถูกเพิ่มลงฐานข้อมูล

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-02 22:23:54 By : pxmaster
 


 

No. 16



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : pxmaster เมื่อวันที่ 2015-09-02 22:23:54
รายละเอียดของการตอบ ::
การ require/include ควรใช้ path หรือ relative path ครับไม่ใช่ URL http:// https:// อะไรพวกนี้
ให้อ้างอิงเป็น path เลย เช่น __DIR__ คือตำแหน่งโฟลเดอร์ของไฟล์ที่เขียนนั้นแบบนี้

ถ้าไป include เป็น url คุณไม่คิดเหรอว่าผลลัพธ์ที่ส่งมาให้คุณ include มันผ่านการประมวลผลมาเรียบร้อยแล้วเป็น html ไม่ใช่โค้ด php

..
ผมยังไม่เคยใช้และไม่เคยเห็นงานของใคร include เป็น url ครับ
ลองดูใหม่ ใช้เป็น relative path ก็ได้. พวก __FILE__, __DIR__ ที่มันอ้างกับไฟล์ปัจจุบันก็จะทำให้งานง่ายขึ้น

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-02 22:39:35 By : mr.v
 


 

No. 17



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

อธิบายเพิ่มเติมนะครับ

PHP ทำงานบน Server ซึ่งที่เก็บข้อมูล เป็น Drive บนเครื่อง server เอง
ถ้าเป็น linux ก็จะอ้างอิงตั้งแต่ /etc/www/webname.com/..... เป็นต้น
ส่วน window ก็จะอ้างอิงเริ่มตั้งแต่ D:\www\webname.com\..... เป็นต้น
ซึ่งเป็นอ้างอิงโดยตรง (directive)

หรือจะอ้างอิงโดยการเปรียบเทียบจาก folder ปัจจุบันก็ได้
เช่น ../ ย้อนกลับ 1 folder (relative) หรือจะใช้ constant ของ php
เช่น __FILE__ , __DIR__ เพื่ออ้างอิง ก็ได้

จะไม่มีใครอ้างอิง ด้วย http: ซึ่งจะใช้ protocol tcp เป็นตัวทำงาน ผ่าน apche ฯลฯ
ซึ่งมันยุ่งยาก และจะได้ result ซึ่งมีการประมวลผล ตามนามสกุลไฟล์ที่เรียก มาอีกที

เช่นถ้าคุณเรียก http://www.test.com/data/x.php
และใน ตัว x.php มีคำสั่ง <?php echo 'x'; ?>
ข้อมูลที่ได้ จะเป็น x แต่จะไม่ได้ <?php echo 'x'; ?> เพราะมันมีการประมวลแล้ว


ไม่ใช่ว่าทำไม่ได้ แต่คุณต้องมีความรู้ในการเรียก ไฟล์ ผ่าน url พอสมควร
ตรงนี้ไม่ขออธิบาย เพราะมันยาว แฮะๆ และเดียวจะสับสนไปเปล่า ๆ
เอาเป็น อ้างอิง path บนเครื่องตัวเองให้ชำนาญก่อนนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-02 23:03:55 By : NewbiePHP
 


 

No. 18



โพสกระทู้ ( 116 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 16 เขียนโดย : mr.v เมื่อวันที่ 2015-09-02 22:39:35
รายละเอียดของการตอบ ::
ขอบคุณคับ


ตอบความคิดเห็นที่ : 17 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-09-02 23:03:55
รายละเอียดของการตอบ ::
ไม่งงนะ หุหุ ประมาณว่าเวลาเรียกใช้ไม่ต้องใส่ url เว็บใช่ไหมครับ จาก website.com/file/connect.php ก็ให้ใส่เป็น file/connect.php ไปเลย :)


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-03 13:17:50 By : pxmaster
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เขียนคำสั่ง if else ตรวจสอบข้อมูล ทำไมได้แต่ค่า false รบกวนช่วยดูให้หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่