2009-04-30 53 views
1

我使用这种形式的文件上传表单(作为一个更大的PHP脚本的一部分,$ PK在实际的东西消毒):使用表单变量与文件上传脚本

<?php 

if (isset($_GET["pk"])) 
{ $pk = $_GET["pk"];} 
echo '<form action="up.php" method="post" 
enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file" /> 
<input type="hidden" name="pk" value="$pk"> 
<br /> 
<input type="submit" name="submit" value="Submit" /> 
</form>'; 
?> 

我使用以下(非常修剪)的代码来处理上传。任何语法错误都是我使用的tabifier的结果。

<?php 
if (isset($_GET["pk"])) { 
    $pk = $_GET["pk"]; 
} 
$con = mysqli_connect("localhost","x","x", "x"); 
echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
echo "Type: " . $_FILES["file"]["type"] . "<br />"; 
echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; 
move_uploaded_file($_FILES["file"]["tmp_name"], 
     "./" . $_FILES["file"]["name"]); 
echo "Stored in: " . "./" . $_FILES["file"]["name"]; 
$fileQuery = "INSERT INTO FILES VALUES (?, ?)"; 
if ($fileInsert = $con->prepare($fileQuery)) { 
    $fileInsert->bind_param("ss", $pk, $_FILES["file"]["name"]); 
    $fileInsert->execute(); 
    $fileInsert->close(); 
} else { 
    print_r($con->error); 
} 
?> 

我想知道的是,如何访问$ pk。它是否已经通过表单传递给处理代码?

回答

0

建议:$pk未设置。

所以尽量用$_REQUEST['pk']代替_GET

此外,在您的回音单引号不会评价$ PK。改变

input type="hidden" name="pk" value="$pk" 

input type="hidden" name="pk" value="' . $pk . '" 

干杯,T.

0
$_POST['pk'] 

,但你会看到$pk我猜,因为您使用单引号呼应的字符串。

+0

所以在处理代码,我应该有(isset($ _ POST [ “PK”])){ $ PK = $ _POST [ “PK”]; ? – 2009-04-30 13:45:04

+0

yep____________ – SilentGhost 2009-04-30 13:49:19