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,027

HOME > PHP > PHP Forum > รบกวนช่วย ตรวจสอบ Code ชุดนี้หน่อยครับว่ามันต่างกันยังไง รบกวนพี่ๆๆ ด้วยครับ



 

รบกวนช่วย ตรวจสอบ Code ชุดนี้หน่อยครับว่ามันต่างกันยังไง รบกวนพี่ๆๆ ด้วยครับ

 



Topic : 103449



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



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




ชุดที่1
session_start();

    $date = date("Y-m-d / H:i:s");
    $insert = "INSERT INTO member(username,password,email,date) VALUES ('$username','$password','$email','$date');";
    $selectus = "SELECT username FROM member WHERE username = '$username';"; 
    $selectem = "SELECT email FROM member WHERE email = '$email';";
    $selectall = "SELECT username,email FROM member WHERE username = '$username' and email ='$email';";
    
 
 if($_POST){//1
    $username = $_POST['username'];
   	$password = $_POST['password'];
    $repassword = $_POST['repassword'];
	$email = $_POST['email'];	
    $code = $_POST['code'];  
	 
   error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
     
   if(!eregi("[a-z0-9]{5,10}",$username)){
	    $err = "ชื่อสมาชิกต้องมากว่า 5 ตัวอักษร";
		  }else if(!eregi("[a-z0-9]{5,10}",$password)){
		$err = "รหัสผ่านต้องมากกว่า 5 ตัวอักษร";   
		  }else if($password != $repassword){
		$err = "รหัสผ่านไม่ตรงกัน";
		  }else if(empty($code)){
		$err = "รหัสลับยังไม่ได้ระบุ";
		  }else if($_POST['code'] != $_SESSION['codea']){
		$err = "รหัสลับไม่ตรงกัน";  
	   	  }else{//2
		  
	      include("include/connect.php");
          $qryus = mysql_query($selectus);
          $qryem = mysql_query($selectem);
          $qryall = mysql_query($selectall);
		  
		   if(mysql_num_rows($qryall) >= 1){
		$err =   "ชื่อและอีเมล์ซ้ำในระบบ";
	    	}else if(mysql_num_rows($qryus) >= 1){
		$err =    "ชื่อซ้ำในระบบ";
	    	}else if(mysql_num_rows($qryem) >= 1){
		$err =   "อีเมล์ซ้ำในระบบ";	
	    	}else if(mysql_query($insert)){
		$err =   "<h8>ยินดีต้อนรับท่านสมาชิก</h8>";	
	         
			 header("Refresh: 3;url=index.php");
        $header = "ระบบกำลังกลับสู่หน้าหลักใน 3 วินาที";
		
			}else{//3
		$err = "ไม่สามารถบันทึกข้อมูลได้";	
	   	    } //3
	    }//2
   }//1



อันนี้รันผ่านครับเป็นไปตามเป้าหมาย เป็นการตรวจสอบ Input แล้ว บันทึก เป็นระบบสมัครสมาชิก

ชุดที่/
session_start();

 error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

 


 if($_POST){//1
 $loguser = $_POST['logusername'];
 $logpass = $_POST['logpassword'];
   
   include("include/connect.php");
   $sql = "SELECT username,password FROM member WHERE username = '$loguser' and password = '$logpass';";
   $qry = mysql_query($sql);
   
    if(mysql_num_rows($qry) != 1){
		$err = "ไม่พบข้อมูล";
	  }else{//2
		$err = "พบข้อมูล";   
	  }//2
   
	 
  }//1



อันนี้รันผ่านครับ เป็นระบบ login เป็นไปตามเป้าหมาย

ชุดที่3
session_start();

 $selectlog = "SELECT * FROM member WHERE username = '$loguser' AND password = '$logpass';"; 


 if($_POST){//1
 $loguser = $_POST['logusername'];
 $logpass = $_POST['logpassword'];
   
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
   
       if(!eregi("[a-z0-9]{5,10}",$loguser)){
	       $err = "ชื่อสมาชิกต้องมากกว่า 5 ตัวอักษร";
	      }else if(!eregi("[a-z0-9]{5,10}",$logpass)){
			$err = "รหัสผ่านต้องมากกว่า 5 ตัวอักษร";  
		  }else{//2
		  
		    include("include/connect.php");		    
			$qrylog = mysql_query($selectlog) or die (mysql_error()."query");
		    $aaa   = mysql_num_rows($qrylog) or die (mysql_error()."numrows");
		   if($aaa != 0){
			$err = "ไม่พบข้อมูล"; 
			}else{//3
			$err = "พบข้อมูล";
		
		}//3
			  
	 }//2
   
  }//1


***********อันนี้ไม่ผ่านครับ ไม่รู้ว่าเป็นเพราะอะไร ผมก้อใช้หลักการเดียวกัน อันนี้แหละครับที่มีปัญหา


รบกวนพี่ๆๆ ช่วยผมหน่อยครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-12-10 09:36:47 By : beerburn View : 827 Reply : 12
 

 

No. 1



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



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

ตรงคำสั่ง sql ชุดที่3 มี ; 2 ตัวครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 09:52:56 By : dagonov
 


 

No. 2

Guest


ดูดีๆ ครับ ตัวแปร $loguser และ $logpass มีตัวตนหรือยัง ตอนที่กำหนดให้กับ $selectlog

Code (PHP)
session_start();

 $selectlog = "SELECT * FROM member WHERE username = '$loguser' AND password = '$logpass';"; // คุณใช้งานมันแล้ว


 if($_POST){//1
 $loguser = $_POST['logusername']; // แต่จริงๆ มันเพิ่งจะมีค่า ณ จุดนี้ ใช่หรือไม่
 $logpass = $_POST['logpassword'];
   
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
   
       if(!eregi("[a-z0-9]{5,10}",$loguser)){
	       $err = "ชื่อสมาชิกต้องมากกว่า 5 ตัวอักษร";
	      }else if(!eregi("[a-z0-9]{5,10}",$logpass)){
			$err = "รหัสผ่านต้องมากกว่า 5 ตัวอักษร";  
		  }else{//2
		  
		    include("include/connect.php");		    
			$qrylog = mysql_query($selectlog) or die (mysql_error()."query");
		    $aaa   = mysql_num_rows($qrylog) or die (mysql_error()."numrows");
		   if($aaa != 0){
			$err = "ไม่พบข้อมูล"; 
			}else{//3
			$err = "พบข้อมูล";
		
		}//3
			  
	 }//2
   
  }//1


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 10:01:47 By : K
 

 

No. 3



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



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


เพิ่มอีกนิด คำสั่ง eregi ควรเปลี่ยนเป็น preg_match นะครับ php 5.3 จะเลิกใช้แล้วนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 10:26:16 By : randOmizE
 


 

No. 4



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



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


เด่วผมขอเพิ่มข้อมูลอีกนิดน่ะครับ

ชุดที่1 เป็นระบบสมัครสมาชิก ตอนแรกก้อตรวจสอบ<INPUT> แล้วก้อทำการตรวจสอบฐานข้อมูลว่ามีข้อมูลซ้ำกันหรือป่าว
อันนี้ทำงานได้ปกติครับ NUMROWS ผลลัพธ์ออกมา เป็นไปตามเป้าหมาย

ชุดที่ 2 เป็นระบบ LOGIN ผมยังไม่ได้ตรวจสอบ <INPUT> ครับ ผม NUMROWS ก่อนเพื่อที่จะได้รุ้ว่า ชุดโปแกรมทำงานปกติดีหรือป่าว
ผลลัพย์ออกมาก้อปกติ ครับ เป็นไปตามเป้าหมาย ตรวจสอบเจอว่าในฐานข้อมูล มีอยู่แหละตรง กับ ที่ระบุ ไม่มีปัญหาร อะไร

ชุดที่ 3 เป็นระบบ LOGIN เหมือนกันครับ เพียงแต่ผมเพิม ตรวจสอบ <INPUT> ลงไป แต่ ผิดเป้าหมายครับ คือ
ในฐานข้อมูล มีข้อมูลจริง(!=0) แต่ Submit ไปแล้วไม่เจอ (" ไม่พบข้อมูล") ไม่ว่าจะระบุอะไร จะ ไม่พบข้อมูลตลอด
แต่พอผมเปลี่ยนเป็นเลข (!=1) เจอข้อมูลครับ แล้วจะระบุอะไรก้อเจอ ข้อมูลตลอด ผมงงเลย
พอผมใส่ OR DIE มันไม่ขึ้นว่า OR DIE เพราะอะไร มันขึ้นว่า NUMrows

ในชุดที่ 1 ตอนแรก มันรวนๆๆได้มั่งไม่ได้มั่ง เหมือนกันครับ ผมเยลยเอา include ไปอยู่หลัง else ก้อหาย ครับ
ในชุดที่ 3 ผมก้อเลย เอา include ไปอยู่หลัง else มั่ง แต่กับ มีปัญหา ก้อคือผลลัพย์ออกมาตรงกันข้าม

ตอนนี้ผมงงมากเลย ยังก้อรบกวนพี่ๆๆหน่อยน่ะครับ ไม่รุ้ว่าเกี่ยวกับอะไร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 17:58:53 By : beerburn
 


 

No. 5



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



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


พี่ NO1 ครับ ตรงไหนหรือครับ ผมสังเกตุไม่เห็นจริงๆ

พี่ NO2 ครับ ผมลองเอา $select ที่พี่บอกเอามาไว้ ข้างล่าง $logpass แล้วครับ ที่นี้ไม่เจอเลยครับ แต่ในฐานข้อมุลมี

พี่NO3 ขอบคุณมากครับ สำหรับคำสั่ง preg_match ขอบคุณที่แนะนำครับ เด่วผมลองไปศึกษา




ผมกำลังคิดอยู่ว่า มันผิดหลักเกณ หรือป่าว หรือผมคิดมากไปเอง แต่สรุป ยังไม่ได้น่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 18:05:00 By : beerburn
 


 

No. 6



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



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


พี่ No3 ครับ ถ้าสมมมุติที่พี่บอกว่า ประกาศข้างบนมันคือ การใช้งานแล้ว
งั้น โค๊ดชุดที่1 ก้อน่าจะมีปัญหาครับ เพราะชุดที่ 1 ผมประกาศข้างบน
หรือผมเขียน ผิด สูตร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 18:08:26 By : beerburn
 


 

No. 7



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



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


พี่ N0 3 ครับ

ได้แล้วครับ ผมเอามาไว้ข้างล่างตามที่พี่บอก แต่ทำไม โค๊ดชุดที่ 1 ใช้ได้ ตรงนี้ผมงงมาก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 18:22:52 By : beerburn
 


 

No. 8

Guest


ถ้าที่ผมตอบไปยังไม่ทำให้คุณเข้าใจว่าผิดตรงไหน ก็ขอให้ไปศึกษาพื้นฐานก่อนดีกว่าครับ เพราะจากที่ถามข้างบนก็รู้ได้เลยว่าคุณยังไม่มีความรู้พื้นฐานเลย การเขียนโปรแกรมไม่ใช่แค่ copy code แล้วย้ายไปมา แปะข้างบนข้างล่างแล้วจะทำได้ หาหนังสือมาอ่านเถอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 18:33:23 By : K
 


 

No. 9



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



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


พี่ครับ ขอโทษน่ะครับพี่ผมคงจะถามมากไป ทำให้พี่หงุดหงิด

คือผมพอเข้าใจอยู่ ครับ แต่ปัญหา คือ ทำไม ชดที่ 1 ใช้ได้ถ้าผมประกาศข้างบน แต่ชุดที่ 3 ใช้ไม่ได้อ่ะครับ แค่นั้นเองครับพี่
อย่าเพิ่งหงุดหงิด ครับ

ขอบคุณครับ พี่ชาย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 18:41:19 By : beerburn
 


 

No. 10

Guest


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

ถ้าให้บอกคร่าวๆ คือ ชุดที่ 1 มันก็ผิดครับ มันทำงานผ่านก็จริง แต่มันทำงานผิดพลาดครับ

Code (PHP)
session_start();
// ตัวแปร     $username $password $repassword $email $date ยังไม่มีตัวตน แต่คุณใช้มันแล้ว
    $insert = "INSERT INTO member(username,password,email,date) VALUES ('$username','$password','$email','$date');";
    $selectus = "SELECT username FROM member WHERE username = '$username';"; 
    $selectem = "SELECT email FROM member WHERE email = '$email';";
    $selectall = "SELECT username,email FROM member WHERE username = '$username' and email ='$email';";
    
 
 if($_POST){//1
// เพราะมันมีถูกกำหนดตรงนี้ ดังนั้น
    $username = $_POST['username'];
   	$password = $_POST['password'];
    $repassword = $_POST['repassword'];
	$email = $_POST['email'];	
    $code = $_POST['code'];  
	 
   error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
     
   if(!eregi("[a-z0-9]{5,10}",$username)){
	    $err = "ชื่อสมาชิกต้องมากว่า 5 ตัวอักษร";
		  }else if(!eregi("[a-z0-9]{5,10}",$password)){
		$err = "รหัสผ่านต้องมากกว่า 5 ตัวอักษร";   
		  }else if($password != $repassword){
		$err = "รหัสผ่านไม่ตรงกัน";
		  }else if(empty($code)){
		$err = "รหัสลับยังไม่ได้ระบุ";
		  }else if($_POST['code'] != $_SESSION['codea']){
		$err = "รหัสลับไม่ตรงกัน";  
	   	  }else{//2
		  
	      include("include/connect.php");
// เมื่อมาถึงตรงนี้ query ทั้ง 3 อันจะให้ผลเป็น 0 แถวตลอด ดังนั้นโปรแกรมจะผ่านตลอด แม้ว่าจะมีชื่อผู้ใช้หรืออีเมล์ซ้ำในระบบก็ตาม
          $qryus = mysql_query($selectus);
          $qryem = mysql_query($selectem);
          $qryall = mysql_query($selectall);
		  // ตรงนี้จะไม่มีวันทำงานเลย จะข้ามไป ยินดีต้อนรับตลอด
		   if(mysql_num_rows($qryall) >= 1){
		$err =   "ชื่อและอีเมล์ซ้ำในระบบ";
	    	}else if(mysql_num_rows($qryus) >= 1){
		$err =    "ชื่อซ้ำในระบบ";
	    	}else if(mysql_num_rows($qryem) >= 1){
		$err =   "อีเมล์ซ้ำในระบบ";	
	    	}else if(mysql_query($insert)){
		$err =   "<h8>ยินดีต้อนรับท่านสมาชิก</h8>";	
	         
			 header("Refresh: 3;url=index.php");
        $header = "ระบบกำลังกลับสู่หน้าหลักใน 3 วินาที";
		
			}else{//3
		$err = "ไม่สามารถบันทึกข้อมูลได้";	
	   	    } //3
	    }//2
   }//1



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 19:13:21 By : K
 


 

No. 11



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



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


Code (PHP)
session_start();

 if($_POST){//1
 $loguser = $_POST['logusername'];
 $logpass = $_POST['logpassword'];
   
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
   
       if(!eregi("[a-z0-9]{5,10}",$loguser)){
	       $err = "ชื่อสมาชิกต้องมากกว่า 5 ตัวอักษร";
	      }else if(!eregi("[a-z0-9]{5,10}",$logpass)){
			$err = "รหัสผ่านต้องมากกว่า 5 ตัวอักษร";  
		  }else{//2
		  
		    include("include/connect.php");

                         $selectlog = "SELECT * FROM member WHERE username = '$loguser' AND password = '$logpass';"; 
		    
			$qrylog = mysql_query($selectlog) or die (mysql_error()."query");
		    $aaa   = mysql_num_rows($qrylog) or die (mysql_error()."numrows");
		   if($aaa != 0){
			$err = "ไม่พบข้อมูล"; 
			}else{//3
			$err = "พบข้อมูล";
		
		}//3
			  
	 }//2
   
  }//1


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-10 20:46:31 By : kenghockey
 


 

No. 12



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



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


ขอบคุณมากครับพี่ ๆๆ ผมเข้าใจแล้ว ครับ ผมตอนแรก ชุดที่ 1 ผมก้อทำงานแปลกก ๆๆ เหมือนไม่ เสถียร แต่ตอนพี่บอก ผมก้อเข้าใจแหละ ครับ
ตอนนี้ผมศึกษาดู จากที่พี่ให้ ผมรู้สึกว่า ผมข้ามขั้นตอน ขอบคุณมากครับ พี่
จริงๆๆ แล้วผมก้อเพิ่งหัดเขียนเหมือนกันครับ แล้วผมก้อสงสัย แต่พี่ อธิบายมา ผมเห็นภาพเลยครับ
ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-11 00:08:57 By : beerburn
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนช่วย ตรวจสอบ Code ชุดนี้หน่อยครับว่ามันต่างกันยังไง รบกวนพี่ๆๆ ด้วยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่