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

Registered : 107,986

HOME > PHP > PHP Forum > สอบถามผู้รู้ภาษา PHP เกี่ยวกับการใช้ค่า $_POST ใน Netฺbeans



 

สอบถามผู้รู้ภาษา PHP เกี่ยวกับการใช้ค่า $_POST ใน Netฺbeans

 



Topic : 121052



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



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




Code (register.php)
<?php include './header.php';?>
<section>
<div>
<div>
<div class="col-sm-4">
					<div class="signup-form"><!--sign up form-->
						<h2>New User Sign Up</h2>
                                                <form method="POST" action="register_process.php">
                                                    <input type="text" name="re[username]"required="required" placeholder="Username"/>
                                                    <input type="password" name="re[password]" required="required" placeholder="Password"/>
                                                    <input type="text" name="re[first_name]" required="required" placeholder="First Name"/>
                                                    <input type="text" name="re[last_name]" required="required" placeholder="Last Name"/>
                                                    <input type="text" name="re[email]" required="required" placeholder="E-mail"/>
                                                    <textarea cols="100" rows="5" name="re[address]" required="required" placeholder="Address"></textarea> 
                                                    <button type="submit" class="btn btn-default">Sign Up</button>
						</form>
					</div><!--/sign up form-->
				</div>
			</div>
		</div>
	</section><!--/form-->


<?php include './footer.php';?>


Code (register_process.php)
<?php 
include './connection.php';
$myre = $_POST['re'];


if(!empty($myre['username']) &&
        
        !empty($myre['passwordl']) &&
        !empty($myre['first_name']) &&
        !empty($myre['last_name']) &&
        !empty($myre['email']) &&
        !empty($myre['address'])
        
        ){
    $sql = "INSERT INTO users(username,password,user_level)
            VALUES('".$myre['username']."',
                '".md5($myre['password'])."',
                    'member')";
    
    $result = mysql_query($sql) or die("Can not Register");
    if($result){
        $sql2 = "INSERT INTO user_details(user_id,first_name,last_name,email,address,created)
            VALUES('".mysql_insert_id()."',
                '".$myre['first_name']."',
                '".$myre['last_name']."',
                '".$myre['email']."',
                '".$myre['address']."',
                '".date("Y-m-d H:i:s")."')";
         $result2 = mysql_query($sql2);
             if($result2){
               echo "Register Complete < a href='index.php'>Back to Index Page </a>";  
             }else{
               echo "Can not Register Because, Failure to Register < a href='index.php'>Back to Register Page </a>";  
             }
        }
    }else{
        echo "Can not Register Because, You are Register Fill in Missing < a href='index.php'>Back to Register Page</a>";
    }

?>


เขียนใน Netฺbeans แล้ว ในบรรทัดที3 ของ register_process.php

$myre = $_POST['re']; เครื่องมือ(Netbeans)มันบอกว่า Do not Access Superglobal $_POST ให้ใช้ filter_input(),condition with is _() funtions,est

อยากรู้ว่ามันเป็น bug ของ Netbeans หรือครับ หรือว่าผมเขียน code ผิด เวลา ใส่ข้อมูลลงใน form register.php

มันจะขึ้นว่า echo "Can not Register Because, You are Register Fill in Missing < a href='index.php'>Back to Register Page</a>

ผมมั่นใจว่ามีคนสามารถตอบคำถามได้แน่ครับทีนี้เวบ์อันดับหนึ่งของคนไทยในตอนนี้มีคนเก่งทีสามารถตอบได้แน่ครับ พอดีผมมือใหม่หัดทำเวบ์น่ะครับถ้าอย่างไงก็ขอโทษด้วยน่ะครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-01-25 17:46:40 By : โคนัน View : 1274 Reply : 7
 

 

No. 1



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



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


Quote:
Do not Access Superglobal $_POST ให้ใช้ filter_input()

อันนี้มันก็บอกอยู่แล้วว่าให้ใช้ filter_input อย่าใช้ $_POST โดยตรง
ปัญหาคือเรื่องความปลอดภัย บางคนรับเอามาใช้เลย ไม่ได้กรองประเภทข้อมูลอะไรเลย แล้วก็เสี่ยงโดนโจมตีด้วย xss (cross site scripting).
จริงๆจะไม่ใช้จะเรียกตรงก็ได้ แต่จะให้ปลอดภัยก่อนเอาค่ามาใช้ให้ตรวจก่อน ไม่ว่าจะใช้ if หรือ validation แบบไหนก็ตาม เช่นรับค่ามาเป็นตัวเลขล้วนๆ ไม่มีทศนิยม ก็ควรเช็คว่ามีค่าหรือไม่แล้วเอา intval() คลุมมันลงไปเลย หรือ รับค่ามาเฉพาะ text เท่านั้น ไม่อนุญาต html ก็จับมัน strip_tags หรือ htmlspecialchars ก็ได้


Quote:
มันจะขึ้นว่า echo "Can not Register Because, You are Register Fill in Missing < a href='index.php'>Back to Register Page</a>

อันนั้นมันเข้าเงื่อนไขของคุณเขียนเอาไว้เอง ไม่เกี่ยวกับ netbeans เลยครับ
อยากรู้ว่าทำไมมันเข้าเงื่อนไขนี้ก็เอาค่าในตัว if มา print_r, var_dump ตรวจดูด้วยตัวเองก่อนครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-25 22:56:03 By : mr.v
 


 

No. 2

Guest


ขอบคุณ คุณ v น่ะครับ ใจดีมากครับ 555 แล้วผมต้องเขียนอย่างไงดีครับ ถ้า $_POST ไม่ได้พอดีผมยังใหม่มากเลยครับ สงสัยจะแย่แน่เลยครับสำหรับผมนี้ คุณv ตั้งใจอธิบายแล้วผมยังไม่ค่อยเข้าใจเลยครับ อย่างไงก็ขอโทษคุณ v ด้วยน่ะครับ ขอบคุณนํ้าใจคุณ v น่ะครับผม

_/\_ ขอบคุณน่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-27 03:26:48 By : โคนัน
 

 

No. 3



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



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


ที่มันแจ้งใน netbeans ถ้ามันไม่ไฮไลท์แดงๆแสดงว่ามันเตือนหรือแนะนำ ไม่ใช่ส่วนที่จะ error หรือใช้ไม่ได้อะไรหรอก
การตรวจสอบค่าที่รับจาก super global อย่าง $_POST, $_GET, $_FILE, $_COOKIE, $_SESSION อะไรพวกนี้ ให้เอามาตรวจสอบก่อนเอาไปใช้งาน โดยการตรวจสอบก็อยู่ที่คุณนั่นแหละครับ
สมมุติว่าคุณทำฟอร์มกรอกข้อมูล 1 ฟอร์ม มี input name (ชื่อ), phone (เบอร์โทร)
พอเป็นอย่างนี้แน่นอนว่าทั้ง name, phone จะต้องไม่มี html และ name เป็น string, phone เป็นตัวเลขอย่างเดียว. คุณก็ตรวจเอาเลยครับ

Code (PHP)
<?php
$name = '';
if (isset($_POST['name'])) {
    $name = trim($_POST['name']);
}
$phone = '';
if (isset($_POST['phone'])) {
    $phone = trim($_POST['phone']);
}

// start validate
if ($name == null) {
    // ชื่อไม่ได้กรอก แสดง error ไป
    echo 'กรุณากรอกชื่อ.';
    exit;
}
if ($phone != null && !is_numeric($phone)) {
    echo 'กรุณากรอกเบอร์โทรเป็นตัวเลขเท่านั้น.';
    exit;
}

// re-format value. ฟอร์แมตค่าใหม่ให้ปลอดภัยในการเอาไปใช้
$name = htmlspecialchars($name);




คุณก็ลองทำความเข้าใจดูแล้วก็ออกแบบโค้ดที่ดีกว่านี้แล้วกัน ผมเขียนอย่างง่ายๆยกตัวอย่างเฉยๆ ไม่เหมาะกับเอาไปใช้จริงๆนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-27 23:13:24 By : mr.v
 


 

No. 4

Guest


_/\_ ขอบคุณน่ะครับ


$myre = filter_input(INPUT_POST,"re",FILTER_VALIDATE_E-MAIL);

ใช่ไหมครับ




echo "Can not Register Because, You are Register Fill in Missing < a href='index.php'>Back to Register Page</a>

ทำไหมมันยังอยุ่ล่ะครับผมขอโทษน่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-28 01:01:04 By : โคนั้น
 


 

No. 5

Guest


ตอบความคิดเห็นที่ : 4 เขียนโดย : โคนั้น เมื่อวันที่ 2016-01-28 01:01:04
รายละเอียดของการตอบ ::
$myre = filter_input(INPUT_POST, 're'); ขอโทษครับเขียนผิด

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-28 01:17:55 By : โคนัน
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : โคนั้น เมื่อวันที่ 2016-01-28 01:01:04
รายละเอียดของการตอบ ::
คุณก็ลองตรวจสอบ if ของคุณสิครับว่าทำไมมันถึงยังอยู่ ผมบอกให้เอาค่ามาทดสอบ print_r, var_dump ได้ทำยังอะครับ
ลองทำดูแล้วเทียบกับเงื่อนไขใน if ว่ามันทำไมไม่ผ่านเดี๋ยวก็เจอเหตุเองครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-01-28 09:27:31 By : mr.v
 


 

No. 7

Guest


เพิ่งเขาใจ 555 ขอบคุณคุณ Mr v น่ะครับ แอบบอกใบ้ให้ ผมรอ PHP 7 ในnetbeansน่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-13 10:25:49 By : โคนัน
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามผู้รู้ภาษา PHP เกี่ยวกับการใช้ค่า $_POST ใน Netฺbeans
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

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