如何隐藏GET方法表单或URL值?

时间:2016-06-01 06:50:20

标签: php mysql get

我使用数据表来显示列表" EDIT"按钮。 在localhost上运行它。

格式我用来回应细节:

<a href="student_edit.php?studid='.$row['studid'].'">EDIT</a>

显示外部列表(数据表)

while( $row=mysqli_fetch_array($query) ) {  // preparing an array

    $nestedData=array(); 
    $nestedData[] = $row["fname"];
    $nestedData[] = $row["mname"];
    $nestedData[] = $row["lname"];
    $html = '<a href="student_edit.php?studid='.$row['studid'].'">EDIT</a>';
    $nestedData[] = $html;
    $data[] = $nestedData;
}

结果:

http://sample.com/studid?=1

获取学生的数据:

$id_get = $_GET['studid']; //GET THE ID VIA URL
$sql = "SELECT * FROM student_list WHERE id = '".$id_get."'";
        $result = mysqli_query($conn,$sql);
        while ($row = mysqli_fetch_assoc($result)) {
        $fname1=$row['FIRSTNAME'];
        $mname1=$row['MIDDLENAME'];
        $lname1=$row['LASTNAME'];
        $gender1=$row['SEX'];
        $addrc=$row['ADDRESS'];
        }
        ?>

如何在网址中隐藏ID号码?

4 个答案:

答案 0 :(得分:2)

您可以使用一些加密代码来加密您的参数,这是用户无法理解的。

ORDER BY

HTTP:student_edit.php /参数= $ ARG

并返回:

$myData = array('foo'=>1, 'bar'=>'hax0r');
$arg = base64_encode( json_encode($myData) );

答案 1 :(得分:1)

使用POST方法和id的隐藏输入字段。 像,

while( $row=mysqli_fetch_array($query) ) {  // preparing an array

    $nestedData=array(); 
    $nestedData[] = $row["fname"];
    $nestedData[] = $row["mname"];
    $nestedData[] = $row["lname"];
    $html  = '<form action="student_edit.php" method="post" name="form_'.$row['studid'].'">';
    $html .= '<input type="hidden" name="studid" value="'.$row['studid'].'">';
    $html .= '<input type="submit" name="edit" value="EDIT">';
    $html .= '</form>';
    $nestedData[] = $html;
    $data[] = $nestedData;
} 

获取学生的数据:

if(isset($_POST['edit']) && $_POST['edit'] == 'EDIT'){

    $id_get = $_POST['studid']; //GET THE ID VIA URL
    $sql = "SELECT * FROM student_list WHERE id = '".$id_get."'";
        $result = mysqli_query($conn,$sql);
        while ($row = mysqli_fetch_assoc($result)) {
            $fname1=$row['FIRSTNAME'];
            $mname1=$row['MIDDLENAME'];
            $lname1=$row['LASTNAME'];
            $gender1=$row['SEX'];
            $addrc=$row['ADDRESS'];
        }    
}

答案 2 :(得分:0)

您无法将其隐藏在URL中,您可以执行的操作是加密您想要解析的值并在您想要使用它时对其进行解密。您可以轻松google并找到免费加密库,您可以尝试Encryption

如果将它与分隔符和一些随机值(如时间戳)混合会更好,因此加密字符串不会是静态的。

答案 3 :(得分:0)

请在下面试试。

<a data-id="<?php echo $row['studid'] ?>" class="url-click">Edit</a>

<form action="<?php echo 'student_edit.php' ?>" method="post" id="custom-request">

<input type="hidden" id="id" value=""/>

</form>

===添加JavaScript ===

$(document).ready(function(){

 $('.url-click').on('click',function(){
    $('#custom-request #id').val( $(this).attr('data-id') );
    $('#custom-request').submit();
 );
});

==== PHP ====

使用$ _POST变量而不是$ _GET