|
|
|
เขียนคำสั่ง if else ตรวจสอบข้อมูล ทำไมได้แต่ค่า false รบกวนช่วยดูให้หน่อยครับ |
|
|
|
|
|
|
|
ลอง var_dump($cnumuser);exit; ดูว่าได้ค่าเท่าไหร่
ถ้ามันมีภาษาไทยด้วย ต้องใช้ mb_strlen
|
|
|
|
|
Date :
2015-08-26 23:10:32 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<form method="post"
ที่ form มีสีแดงหรือเปล่าครับ
ปล. real_escape_string ไว้ใส่ตอนคิวรี่ ครับ
ตอนตรวจเช็คข้อความยังไม่ต้องใส่
|
ประวัติการแก้ไข 2015-08-27 07:08:13
|
|
|
|
Date :
2015-08-27 07:05:54 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
print_r($_POST["username"]);exit;
ดูครับ ถ้าว่างเปล่าแสดงว่าไม่ได้รับค่ามา ให้ดูที่ <form อย่างที่คุณข้างบนว่า
|
|
|
|
|
Date :
2015-08-27 09:18:00 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วลองเอา mysql_real_escape_string ออกรึยังครับ?
|
|
|
|
|
Date :
2015-08-27 12:30:03 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
งง แล้ว จากที่บอกว่าขึ้นแต่ ที่กรอก หมายความว่า เกิด 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองใหม่ครับ ผมลืม echo $e->getMessage;
|
|
|
|
|
Date :
2015-08-29 00:52:01 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมรู้ปัญหาละครับ ปัญหามันอยู่ที่ตอน เชื่อมต่อกับฐานข้อมูล ผมใช้ฟังชันก์ 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
include/require เขาไม่ใช้ http:// กันหรอกครับคุณ
|
|
|
|
|
Date :
2015-08-29 13:31:20 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อธิบายเพิ่มเติมนะครับ
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|