php過濾空值的有關問題

來源:互聯網
上載者:User
php過濾空值的問題
這個要死的POST,已經忽視了IF判斷直接把空值寫入資料庫了

PHP接收端:


if($_GET['do'] =='add'){
if(!isset($_POST['porgnum']) && empty($_POST['porgnum'])){
echo '未填寫登入名稱!';
}else if(!isset($_POST['porgname']) && empty($_POST['porgname'])){
echo '未填寫暱稱!';
}else if(!isset($_POST['ppasswd']) && empty($_POST['ppasswd'])){
echo '未填寫密碼!';
}else{
$orgid =$_POST['porgnum'];
$orgname =$_POST['porgname'];
$passwd =$_POST['ppasswd'];
$author =$_POST['pauthor'];
$con = mysql_connect(DB_HOST,DB_USER,DB_PASSWD);
mysql_select_db(DB_NAME,$con);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=utf8");
if(!mysql_query("INSERT INTO `".DB_PRE."menber` (orgnum, orgname, passwd, power) VALUES ('$orgid', '$orgname', '$passwd', '$author')")){
die('錯誤!代碼:' .mysql_error());
}else{
echo '註冊成功!';
};
mysql_close($con);
};


PHP表單:


登入名稱
名稱
新密碼
12123




JQUERY:


function new_org(){
var orgnum = j('#orgnum').val();
var orgname = j('#orgname').val();
var passwd = j('#passwd').val();
var author = j('#author').val();
j.ajax({
type:"POST",
url:"action.php?do=add",
data:{
porgnum:orgnum,
porgname:orgname,
ppasswd:passwd,
pauthor:author
},
dataType:"html",
cache:false,
async:false,
error:function(){
alert("發送失敗!");
},
success:function(msg){
j('.admin_display').html(msg);
alert(orgnum);
}
});
};


能正常註冊,寫入資料庫,但是,如果前端的iput不輸入,直接提交,接收端會無視前端POST過來的“空值”,暫且稱為“空值”吧,我也不知道是什麼值,反正接收端已經無視這個空值,直接寫入資料庫了,大神們,求解脫,我已經塊暴走了……
------解決思路----------------------
這裡無論如何都會執行到else代碼裡面去呀 你可以在最後一個else 輸出一個值調試下 我想問題應該在這裡
------解決思路----------------------
if(!isset($_POST['porgnum']) && empty($_POST['porgnum'])){
這個就不對了
應該是 if(isset($_POST['porgnum']) && empty($_POST['porgnum'])){
$_POST['porgnum'] 存在且為空白

按你寫的,如果 $_POST['porgnum'] 不存在的話,不就進到 else 分支了嗎?
其他類同
------解決思路----------------------
你沒理解isset是什麼意思,把&&換成或者(
------解決思路----------------------
)
------解決思路----------------------
這個完全是你自己疏忽了或者對isset沒有理解
------解決思路----------------------
isset 檢查變數是否定義。
沒有定義放入變數當然可以認為是空
但值為空白的變數也是變數呀
所以逆命題不成立
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.