簡體   English   中英

用於Javascript和PHP的此類數據有什么問題

[英]What is the Problem with this kind of Data for Javascript and PHP

我有一個Html表,該表包含通過服務器端php生成的數據。它包含許多行。每行包含一個稱為“批准”的按鈕。 當單擊“批准”時,它將轉到一個php文件並執行其數據庫事務處理

這是我在php中“批准按鈕”的代碼

$cntrl = "<input name=btn1  type=button  id=btn1  value=Approve  onClick=\"callApprove('".$row['val1']."','".$row['val2']."');\"";

這是單擊“批准”時調用的JS函數。

function  callApprove(val1,val2){
 var url = 'approve.php?id=<?php echo $_REQUEST['var3'];?>&param1='+val1+'&param2='+val2;
window.open(url)
}

現在,這里的問題是當我將數據作為“ ABC6252756 / A#1829533”時。當我將這種數據val2傳遞給approve.php時,就像當我們擁有這種數據“ ABC07-USVDL2”時一樣值已成功傳遞。 (/,#)字符有什么問題嗎? 為了安全起見,我已為(“ ABC6252756 / A#1829533”)此數據輸入了val2警報。 可能是什么問題?

您在callApprove中引用了val1val2callApprove在設置它們的地方包含代碼。 另外,您可以在onClick函數中使用參數調用callApprove,但是定義中沒有參數( function callApprove ),也許這就是初始化它們的目的?

我認為哈希是您的問題。 哈希符號 #在URL中具有特定含義,並且該含義僅是客戶端方面的問題; 由於這是客戶端/瀏覽器問題,因此哈希以及哈希之后的所有內容都不會發送到服務器。 當您在URL中插入“ ABC6252756 / A#1829533”時,瀏覽器將在將URL發送到服務器之前刪除“#1829533” 及其后的所有內容

解決方案是對查詢字符串的每個部分進行正確的URL編碼。 您可能會在JavaScript中使用encodeURIComponent ,或者在PHP中使用urlencode

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM