问题描述
- onsubmit触发事件把表单数据发送到相关php处理问题
- 问题详情:onsubmit触发事件把表单数据发送到相关php处理但是如何避免数据有问题时也会触发事件呢?
function dosubmit(){ window.open('num3.php?cf='+window.form.cf.value+'&cf1='+window.form.cf1.value); }
<?php
require_once('appvars.php');
require_once('connectvars.php');if(isset($_POST['submit'])){ //第10行
$name=$_POST['name'];
$score=$_POST['score'];
$st=$_FILES['st']['name'];
$st_type=$_FILES['st']['type'];
$st_size=$_FILES['st']['size'];
$output_form=false;if( empty($name) || empty($score) || empty($st))
{
echo'Something is wrong !
';
$output_form=true;
}
//第20行
else{if( (($st_type=='image/gif')||($st_type=='image/jpeg')||($st_type=='image/pjeg')||($st_type=='image/png')) && ($st_size >0) && ($st_size <=MAX_FILE_SIZE) )
{if($_FILES['st']['error']==0){
$target=GW_UPLOADPATH .$st;
//第30行if(move_uploaded_file($_FILES['st']['tmp_name']$target)){
$dbc=mysqli_connect(HOSTUSERPASSWORDNAME);
$st=$_FILES['st']['name'];
$query=""INSERT INTO b (datestscorename)"".
VALUES(NOW()'$st''$score''$name')"";
//第40行mysqli_query($dbc$query)
or die('UU');echo'You are success to add dates to Mysql '.'<br>';echo 'Name :'.$name.'<br>';echo 'Score : '.$score.'<br>';echo 'Photo :'.'<img src=""'.GW_UPLOADPATH.$st.'"" >'; //第50行 echo'<p><a href=""index.php"">Back to index page</a></p>';
//clear the score datas
$name="""";
$score="""";
$st="""";mysqli_close($dbc);
}//if(move_uploaded_f
else
{
echo $_FILES['st']['error'];
echo'
文件没有移动成功 !!';//第60行}
}//if($_FILES['st']['error']
else
echo'There is something wrong to upload the file ! Plese upload it agian.';}//if(($st_type=='image/gif'
else echo'
The screen pic must be a GIFJPEG or PNG image and the file '.'size must fit '.'(MAX_FILE_SIZE/1024)'.'KB.
';
}//else //第70行
//Try to delete the temporary screen shot image file.
@unlink($_FILES['st']['tmp_name']);
}else $output_form=true;
if($output_form){
?>Your name:
Your score:
Your Photo:
商品交易; 商品互换;
<?php } ?>
解决方案
在处理函数的开头加上一些前置检查,如果不符合就不再继续执行,直接返回,提示数据不合法就行了呗。
解决方案二:
当 onsubmit 触发事件的处理函数返回 false 时,表单不会被提交
解决方案三:
表单onsubmit事件检查你的数据,不通过return false
<br> function check(f){<br> if(f.un.value==''){alert('请输入用户名!');f.un.focus();return false}<br> //...其他的<br> }<br>