ทำอย่างไรเช็คค่า token เดิมในรอบที่กดเลือกภาพมากกว่า 1 ภาพได้

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
eange08
PHP Super Hero Member
PHP Super Hero Member
Posts: 645
Joined: 22/12/2020 10:09 am

ทำอย่างไรเช็คค่า token เดิมในรอบที่กดเลือกภาพมากกว่า 1 ภาพได้

Post by eange08 »

ทำ upload ไฟล์แบบ multi (เลือกอัพภาพได้มากกว่า 1 ภาพพร้อมกัน) แล้วจะต้องทำการส่งค่า token ใหม่ทุกครั้งตอนกดเลือกไฟล์
แต่ติดปัญหาที่ว่า
หากรอบนั้นมีการเลือกมากกว่า 1 ภาพแล้วจะได้ค่า token จาก recaptcha แค่ 1 อัน แต่พอเข้าไฟล์ upload จะเช็คค่า token ได้แค่ภาพแรกอันเดียว

>> ต้องปรับ code ส่วนไหน ที่จะเช็คค่า token เดิมในรอบที่กดเลือกภาพได้ค่ะ
ไฟล์ index.php หน้าทำ upload ไฟล์

Code: Select all

<script src="https://www.google.com/recaptcha/api.js?render=<?php echo $keyrecaptcha_v3?>"></script>
<script>
    function getrecap(){  
    grecaptcha.ready(function () {
        grecaptcha.execute('<?php echo $keyrecaptcha_v3?>', {action: 'contact'}).then(function (token) {
            var recaptchaResponse = document.getElementById('recaptchaResponse');
            recaptchaResponse.value = token;
            
        });
    });
    }
</script>
<!------ส่วนฟอร์ม upload รูป----->
<form id="upload" method="post" action="upload.php" enctype="multipart/form-data"  >
 <input type="hidden" name="recaptcha_response_check" id="recaptchaResponse"> 
<div class="row">
    <div class="col-md-3" > </div>    
    <div class="col-md-6"> 
        <div id="drop">
                <a onclick="getrecap()"><img src="./assets/img/upload2.png" style="width:35%"><br>'.$lang_insert_file.'</a>
                <input type="file" name="upl" multiple   />
        </div> 
     </div>
    <div class="col-md-3"> </div> 
</div>
<div class="row">
    <div class="col-md-12" id="div_load">   
        <ul > </ul>
    </div>
</div>
</form>
 
ไฟล์ upload.php (สำหรับ save ชื่อภาพลงฐานข้อมูล) ทำการเช็คค่า token ตามจำนวนภาพที่กด

Code: Select all

$recaptchaResponse = !empty($_REQUEST['recaptcha_response_check']) ? $_REQUEST['recaptcha_response_check'] : '';

//-------------------------------
   if(!empty($recaptchaResponse)){
  $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
  $recaptcha = file_get_contents($recaptcha_url . '?secret=' . $secretkeyrecaptcha_v3 . '&response=' . $recaptchaResponse);
   
  $recaptcha = json_decode($recaptcha);
            if ($recaptcha->success) {
                // Verified – send email
                $make_convert='Y';
            } else {     //print_r($recaptcha);  
                $make_convert='N';
            }
   }else{
        $make_convert='N';
   }
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 27183
Joined: 22/09/2008 6:18 pm
Contact:

Re: ทำอย่างไรเช็คค่า token เดิมในรอบที่กดเลือกภาพมากกว่า 1 ภาพได้

Post by mindphp »

เก็บ token ในลักษณะเป็น array ด้วยค่าเดียวกับกับ array ทุกตัวที่ส่งไป
ตัวอย่าง
viewtopic.php?f=20&t=29272
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
Post Reply

Return to “Programming - PHP”

Who is online

Users browsing this forum: No registered users and 9 guests