0

phpとajaxjqueryを使用して検証したフォームページを作成したいと思います。http://malsup.com/jquery/form/ フォームページ
からjqueryをダウンロードしました。

<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
<script type="text/javascript">
function checkAll(){
var errmsg = ""
document.getElementById("errmsg").style.display = "none";

if(document.getElementById("txtbox1").value == ""){
    errmsg += "Type your title<br/>";
}

if(document.getElementById("file1").value == ""){
    errmsg += "Upload your picture<br/>";
}

if(errmsg != ""){
    document.getElementById("errmsg").style.display = "block";
    document.getElementById("errmsg").innerHTML = errmsg;
    return false;
}

}

$(document).ready(function() {
   var options = {
    target: '#div2', //Div tag where content info will be loaded in
    url:'uploadfile.php', //The php file that handles the file that is uploaded
    beforeSubmit: checkAll,
    success:  function() {
        //Here code can be included that needs to be performed if Ajax request was successful
    }
    };

    $('#Form1').submit(function() {
        $('#Form1').ajaxSubmit(options);
        return false;
    });
});
</script>
</head>
<body>
<span id="errmsg"></span>
<div id="div2"></div>
<form name="Form1" id="Form1" method="post" action="next.php" enctype="multipart/form-data">
Title <input type="text" name="txtbox1" id="txtbox1" />
Picture <input type="file" name="file1" id="file1" /><br/>
<input type="submit" value="Submit" />
</form>
</body>
</html>

Uploadfile.php:

<?php
if (((@$_FILES["file1"]["type"] == "image/gif") || (@$_FILES["file1"]["type"] == "image/png")
|| (@$_FILES["file1"]["type"] == "image/jpeg")
|| (@$_FILES["file1"]["type"] == "image/pjpeg"))
&& (@$_FILES["file1"]["size"] < 30720))
  {

  }
 else{
    echo "Check your file";
 }
?>

私の問題:
ファイルのアップロード(ファイルの種類とサイズのチェック)を含む各フォームコンポーネントの検証を作成したいのですが、フォームに入力すると、ユーザーはnext.phpにリダイレクトされます(フォームのアクションを参照)。
ファイルのアップロードを検証するためにajaxjqueryを使用しているため、アクションはuploadfile.phpに変更され、ユーザーがフォームに入力すると、ページはどこにも移動しません。
この問題を解決するのを手伝ってください。

4

1 に答える 1

0

uploadfile.phpで、すべてがOKの場合、javascriptリダイレクトを出力できます。

{
    echo '<script type="text/javascript">window.location.replace("next.php");</script>';
}

ちなみに、ファイルタイプのチェックはブラウザによって提供され(これは必須ではありません)、簡単に偽造できるため、信頼性が低いことに注意してください。ファイルが本当に画像であるかどうかを確認するより安全な方法の1つは、getimagesize失敗しないことを確認することです。

于 2013-02-10T16:10:14.860 に答える