Php 防止刷新后表单重新提交

Php 防止刷新后表单重新提交,php,html,Php,Html,我已经阅读了一些关于这个问题的其他问题,我应该使用标题('Locaction:xxx.php');但我不知道如何在我的代码中实现它。我很抱歉对这件事解释得不好。任何帮助或指导我将是非常伟大的!以下是index.php: <body> <div id="container"> <div id="upload"> <div id="logo"><a href="index.php"><img src="imag

我已经阅读了一些关于这个问题的其他问题,我应该使用标题('Locaction:xxx.php');但我不知道如何在我的代码中实现它。我很抱歉对这件事解释得不好。任何帮助或指导我将是非常伟大的!以下是index.php:

<body>
<div id="container">
    <div id="upload">
        <div id="logo"><a href="index.php"><img src="images/logo.png"></a></div>
        <form enctype="multipart/form-data" method="post" action="uploader.php">
        <p class="uploadtxt">Choose your file below:</p>
        <input type="file" name="image" class="button" />
        <input type="submit" value="Upload It!" class="button" />
        </form>
    </div>
<?php include 'footer.php'; ?>
</div>
</body>
</html>
    <input type="hidden" name="key" value="<?php echo (isset($_POST['key']) ? $_POST['key'] : rand(1,150)); ?>" />
    <?php if (isset($_POST['key']) { $_SESSION['key'] = $_POST['key']); } ?>

在下面选择您的文件:

    <input type="hidden" name="key" value="<?php echo (isset($_POST['key']) ? $_POST['key'] : rand(1,150)); ?>" />
    <?php if (isset($_POST['key']) { $_SESSION['key'] = $_POST['key']); } ?>
下面是uploader.php代码:

<?php
// Set local PHP vars from the POST vars sent from our form using the array
// of data that the $_FILES global variable contains for this uploaded file

$fileName = $_FILES["image"]["name"]; // The file name
$fileTmpLoc = $_FILES["image"]["tmp_name"]; // File in the PHP tmp folder
$fileType = $_FILES["image"]["type"]; // The type of file it is
$fileSize = $_FILES["image"]["size"]; // File size in bytes
$fileErrorMsg = $_FILES["image"]["error"]; // 0 for false... and 1 for true

$url = "http://localhost/";

// Specific Error Handling if you need to run error checking

if (!$fileTmpLoc) { // if file not chosen
    echo "ERROR: Please browse for a file before clicking the upload button.";
    exit();
} else if($fileSize > 10000000) { // if file is larger than we want to allow
    echo "ERROR: Your file was larger than 10000000kB in file size.";
    unlink($fileTmpLoc);
    exit();
} else if (!preg_match("/.(gif|jpg|jpeg|png)$/i", $fileName) ) {
     // This condition is only if you wish to allow uploading of specific file types    
     echo "ERROR: Your image was not .gif, .jpg, .jpeg or .png.";
     unlink($fileTmpLoc);
     exit();
}

//-- GENERATE A RANDOM NAME --//

$newfilename = rand(0, 999);
$newerfilename = $newfilename .'-'. $fileName;

//-- MAKE UPLOADS FOLDER IN YEAR AND MONTHLY --//

$path = "uploads/";

$year_folder = $path . date("Y");
$month_folder = $year_folder . '/' . date("m");

!file_exists($year_folder) && mkdir($year_folder , 0777);
!file_exists($month_folder) && mkdir($month_folder, 0777);

$path = $month_folder . '/';

move_uploaded_file($_FILES["image"]["tmp_name"], $path . $newerfilename);

?>

<html>
<head>
<title>Localhost - Upload Completed!</title>

<?php include_once 'header.php'; ?>

<body>
<div id="container">
    <div id="upload">
        <div id="logo"><a href="index.php"><img src="images/logo.png"></a></div>
        <p class="filenametxt"><?php echo "The image is now uploaded!"; ?></p>
        <p class="uploadtxt">Get the link below:</p>
        <pre><?php echo $url . $path . $newerfilename; ?></pre>

    </div>
<?php include 'footer.php'; ?>
</div>
</body>
</html>
    <input type="hidden" name="key" value="<?php echo (isset($_POST['key']) ? $_POST['key'] : rand(1,150)); ?>" />
    <?php if (isset($_POST['key']) { $_SESSION['key'] = $_POST['key']); } ?>

本地主机-上传完成!

获取以下链接:

    <input type="hidden" name="key" value="<?php echo (isset($_POST['key']) ? $_POST['key'] : rand(1,150)); ?>" />
    <?php if (isset($_POST['key']) { $_SESSION['key'] = $_POST['key']); } ?>
试试这个:

<?php if (isset($_SESSION['key'])) { if ($_POST['key']==$_SESSION['key']){ echo "You may not resubmit a form!"; } } ?>

不,您不想重定向,因为upload.php中的信息需要显示给用户。我不明白您的问题是什么?问题是如何实现这一点。当我使用标题时('location:uploader.php');这给了我错误。那么,如果还有其他选择的话,我完全是PHP的初学者。你能给我一个例子,我会把代码。我觉得很失落。我说“试试这个:”-把它放在你的:
下面,我说“在你提交的PHP中:”-把它放在你的:
下面,谢谢。但是我得到了一个解析错误:解析错误:语法错误,意外的“{”PHP说它在哪一行?:)它在18,你写的那一行=