第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

傳遞 id 來(lái)更新表是否安全?

傳遞 id 來(lái)更新表是否安全?

PHP
湖上湖 2021-10-22 15:20:54
我想用用戶添加的產(chǎn)品數(shù)量更新表格。我首先選擇表中所有具有相同代碼的產(chǎn)品,然后在輸入名稱中寫(xiě)上id(表中)??蛻舳耍?nbsp;   <input name="<?php echo $product['id']; ?>" type="number" min="1" placeholder="Quantity" required/>服務(wù)器端:    <?php session_start(); require __DIR__."/../connectDB.php"; $memberId = $_SESSION['user_id']; foreach ($_POST as $prodId => $quantity) {   $stmt =$conn->prepare("UPDATE tbl_product SET stock = ? WHERE id = ? AND member_id = ?");     $stmt->bind_param("iii", $quantity, $prodId, $memberId);     $stmt->execute();     $stmt->close(); }  ?>它有效,但安全嗎?
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

它與通過(guò)互聯(lián)網(wǎng)傳輸數(shù)據(jù)的任何其他方法一樣安全,但您的方法似乎有點(diǎn)奇怪。


正如評(píng)論所指出的,處理這個(gè)問(wèn)題的常用方法是包含一個(gè)隱藏字段來(lái)傳遞應(yīng)該對(duì)用戶隱藏的數(shù)據(jù)。您仍然需要驗(yàn)證數(shù)據(jù),因?yàn)橛脩粢部梢跃庉嬰[藏的輸入;他們只是從普通用戶那里稍微混淆了它。


<form type="post" ...>    

    <input type="hidden" name="product_id" value="<?php echo $product['id']; ?>">

    <input type="number" name="quantity" min="1" placeholder="Quantity" required >

    ...

</form>


<?php

$productId = $_POST['product_id'];

$quantity = $_POST['quantity'];


$query = 'UPDATE product SET quantity = ? WHERE product = ?'

...

編輯


如果您需要從表單傳遞產(chǎn)品數(shù)據(jù)數(shù)組,您可以使用數(shù)組語(yǔ)法[]來(lái)命名表單輸入。


<?php


// This array just represents the data coming from your DB.

// Change it to suit.

$products = [

    [

        'id' => 1281,

        'quantity' => 7

    ],

    [

        'id' => 234,

        'quantity' => 2

    ],

    [

        'id' => 3455,

        'quantity' => 25

    ],

    [

        'id' => 64563,

        'quantity' => 84

    ],

    [

        'id' => 235,

        'quantity' => 7

    ],

];


if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    var_dump($_POST);


    // Handle the form processing here.

}


?>

<form method="post">


    <?php foreach ($products as $product): ?>

        <input type="hidden" name="product[<?php echo $product['id']; ?>]" value="<?php echo $product['id']; ?>">


        <label for="product[<?php echo $product['id']; ?>]"><?php echo $product['id']; ?>:</label>

        <input type="number" name="product[<?php echo $product['id']; ?>]" value="<?php echo $product['quantity']; ?>">


        <br>


    <?php endforeach; ?>


    <input type="submit" name="submit" value="Submit">

</form>

輸出:


array (size=2)

  'product' => 

    array (size=5)

      1281 => string '52' (length=2)

      234 => string '2' (length=1)

      3455 => string '25' (length=2)

      64563 => string '84' (length=2)

      235 => string '7' (length=1)

  'submit' => string 'Submit' (length=6)

然后,您可以遍歷此數(shù)據(jù)以創(chuàng)建 SQL 查詢。


查看完整回答
反對(duì) 回復(fù) 2021-10-22
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

當(dāng)我想接受來(lái)自用戶的信息時(shí),我使用了這種方法,我想確保他們不會(huì)修改任何內(nèi)容。我傳遞了一個(gè)我想用作參考的值的加鹽 MD5 哈希值,這對(duì)應(yīng)用程序很重要,如果用戶更改會(huì)影響代碼的執(zhí)行或登錄。


HTML 表單


<input name="<?php echo $product['id']; ?>" type="number" min="1" placeholder="Quantity" required/>

<input name="<?php echo $product['id']; ?>_hash" type="hidden" value="<?php md5($product['id'] . "rand0mC0d3") ?>">

服務(wù)器端


<?php

 session_start();

 require __DIR__."/../connectDB.php";

 $memberId = $_SESSION['user_id'];


foreach ($_POST as $prodId => $quantity) {


   if(is_numeric($propId) and $_POST[$propId . '_hash'] == md5($propId . "rand0mC0d3") ){

     if(is_numeric($quantity)){


        $stmt =$conn->prepare("UPDATE tbl_product SET stock = ? WHERE id = ? AND member_id = ?");

        $stmt->bind_param("iii", $quantity, $prodId, $memberId);

        $stmt->execute();

        $stmt->close();

     }else{

        // Value not numeric.

     }



   }

}

?>

注意** 我想提出一個(gè)概念,即傳遞一個(gè)加鹽的 md5 哈希來(lái)驗(yàn)證我們想要用來(lái)識(shí)別記錄的值沒(méi)有被修改。您可能需要對(duì)其進(jìn)行更改以滿足您的特定需求??鞓?lè)編碼。


查看完整回答
反對(duì) 回復(fù) 2021-10-22
  • 2 回答
  • 0 關(guān)注
  • 166 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)