PHP MYSQL输入表单需要输入特定词

时间:2019-03-08 01:35:04

标签: php html mysql

我有一个input box,在其中键入文件名。我希望input box要求我或其他用户input还要提供哪种文件类型。

例如,当我在this_is_name_of_file上键入input box并提交时。它应该返回false

只有当我以name_of_file.pdfname_of_file.docx键入其中文件名并以其file extension键入时,才可以接受它。

这是表单中的输入标签:

<label>File Name: </label> 
<input class="input2" type="text" name="filename" 
       placeholder="file.pdf/xlsx/xls/docx" required autofocus><br>

这是我的php文件:

$FName = $_POST['filename'];
$pdoQuery = "INSERT INTO `report`(`filename`) VALUES (:FName)";
$pdoResult = $pdoConnect->prepare($pdoQuery);
$pdoExec = $pdoResult->execute(array(":FName"=>$FName));

2 个答案:

答案 0 :(得分:3)

有很少的选择,但是我会去:

$path_parts = pathinfo($_POST['filename']);//spits the variable in to parts to chewck

if(empty($path_parts['extension'])){ //check for extension
    echo 'filename error';
}else{
    $FName = $_POST['filename'];
    $pdoQuery = "INSERT INTO `report`(`filename`) VALUES (:FName)";
    $pdoResult = $pdoConnect->prepare($pdoQuery);
    $pdoExec = $pdoResult->execute(array(":FName"=>$FName));
}

答案 1 :(得分:3)

如果您对浏览器验证感到满意(例如required的使用方式),则可以始终使用模式,例如

<form>
<input class="input2" type="text" name="filename" 
       placeholder="file.pdf/xlsx/xls/docx" required autofocus
       pattern=".+\.(pdf|xlsx?|docx)">
<button>Try it</button>
</form>