PHP / HTML:输入后保存表单数据

我有一个包含基本HTML的PHP​​网页,其中包含表单,用户可以在其中输入一些数据。表单可以由用户直接填写,也可以通过GET方法自动填写,该方法由原始PHP网页调用的操作之一返回。

问题是,在表单自动填充后,如果在网页上调用了其他任何操作(外部php页面;这些操作中的任何一个都不导致离开网页),则表单数据将被删除,并且用户空白字段。

我希望保存表单中的数据,并在输入后始终显示。在变量通过$_SESSION方法到达后,我尝试使用GET来保存值数组,但它对我不起作用:

<?php if (isset($_GET['decrypted'])) : ?>

<?php session_start(); 
$_SESSION['saved'] = array();

// Add items based on item ID
$_SESSION['saved'][$decrypt_data] = array('s_id' => $_GET['s_id'],'u_id' => $_GET['u_id'],'l_id' => $_GET['l_id'],'cu_id' => $_GET['cu_id']);

?>

...

    <form action="./encrypt.php">
    <p>2) Select options:</p>
    <input type="radio" name="mode" value="one">one<br>
    <input type="radio" name="mode" value="two">two<br>
    <p></p>
    s ID: <br><input type="text" name="s_id" value="<?php echo $_SESSION['saved'][decrypt_data]['s_id'] ?>"><br> 
    u ID: <br><input type="text" name="u_id" value="<?php echo $_SESSION['saved'][decrypt_data]['u_id'] ?>"><br> 
    l ID: <br><input type="text" name="l_id" value="<?php echo $_SESSION['saved'][decrypt_data]['l_id'] ?>"><br>
    cu ID: <br><input type="text" name="cu_id" value="<?php echo $_SESSION['saved'][decrypt_data]['cu_id'] ?>"><br>
    <p></p>
    <input type="submit" value="Do it!">
    </form>

完整代码:

<html lang="en">
<head>
<Title>WEBPAGE</Title>
</head>
<body>
    <h1>DECRYPT</h1>

    <form action="webpage.php" method="post" enctype="multipart/form-data">
    <p>
    <label for="my_upload">1) Select a file to upload:</label>
    <input id="my_upload" name="my_upload" type="file">
    </p>
    <input type="submit" value="Upload">
    </form>

    <?php if (isset($_GET['uploaded'])) : ?>
    <span style="background-color:#29a329"> <font color="white">File successfully uploaded!</font></span>
    <?php endif; ?>

    <form action="./decrypt.php">
    <p>2) Select decrypt mode:</p>
    <input type="radio" name="mode" value="one">one<br>
    <input type="radio" name="mode" value="two">two<br> 
    <p></p>
    <input type="submit" value="Decrypt">
    </form>

    <?php if (isset($_GET['decrypted'])) : ?>

    <?php session_start(); 
    $_SESSION['saved'] = array();

    // Add items based on item ID
    $_SESSION['saved'][$decrypt_data] = array('s_id' => $_GET['s_id'],'cu_id' => $_GET['cu_id']);

    ?>

    <span style="background-color:#29a329"> <font color="white">File successfully decrypted!</font></span>
    <p></p>
    <form method="get" action="/decrypted_downloaded/<?php echo $_GET['final_name'] ?>">
        <button type="submit">Download decrypted file</button>
    </form>


    <?php endif; ?>

    <hr>

    <h1>ENCRYPT normal file</h1>

    <form action="webpage.php" method="post" enctype="multipart/form-data">
    <p>
    <label for="my_upload2">1) Select a file to upload:</label>
    <input id="my_upload2" name="my_upload2" type="file">
    </p>
    <input type="submit" value="Upload">
    </form>

    <?php if (isset($_GET['uploaded_bin'])) : ?>
    <span style="background-color:#29a329"> <font color="white">File successfully uploaded!</font></span>
    <?php endif; ?>

    <form action="./encrypt.php">
    <p>2) Select encrypt options:</p>
    <input type="radio" name="mode" value="one">one<br>
    <input type="radio" name="mode" value="two">two<br>
    <p></p>
    s ID: <br><input type="text" name="s_id" value="<?php echo $_SESSION['saved'][decrypt_data]['s_id'] ?>"><br> 
    u ID: <br><input type="text" name="u_id" value="<?php echo $_SESSION['saved'][decrypt_data]['u_id'] ?>"><br> 
    l ID: <br><input type="text" name="l_id" value="<?php echo $_SESSION['saved'][decrypt_data]['l_id'] ?>"><br>
    cu ID: <br><input type="text" name="cu_id" value="<?php echo $_SESSION['saved'][decrypt_data]['cu_id'] ?>"><br>
    <p></p>
    <input type="submit" value="Encrypt">
    </form>

    <?php if (isset($_GET['encrypted'])) : ?>

    <span style="background-color:#29a329"> <font color="white">File successfully encrypted!</font></span>
    <p></p>
    <form method="get" action="/encrypted_downloaded/<?php echo $_GET['final_name_webpage'] ?>">
        <button type="submit">Download encrypted file</button>
    </form>


    <?php endif; ?>


</body>
</html>
<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{
  if (is_uploaded_file($_FILES['my_upload']['tmp_name'])) 
  { 
    //delete folder contents
    $files = glob('./encrypted_uploaded/*'); // get all file names
    foreach($files as $file){ // iterate files
        if(is_file($file))
            unlink($file); // delete file
    }

    //Validate the file name
    if(empty($_FILES['my_upload']['name']))
    {
        echo " File name is empty! ";
        exit;
    }

    $upload_file_name = $_FILES['my_upload']['name'];
    //Too long file name?
    if(strlen ($upload_file_name)>150)
    {
        echo " too long file name ";
        exit;
    }

    //set a limit to the file upload size
    if ($_FILES['my_upload']['size'] > 10000000) 
    {
        echo " too big file ";
        exit;        
    }

    //Save the file
    $dest=__DIR__.'/encrypted_uploaded/'.$upload_file_name;
    if (move_uploaded_file($_FILES['my_upload']['tmp_name'],$dest)) 
    {
        header('Location: webpage.php?uploaded=yes'); 
    }
  }

  if (is_uploaded_file($_FILES['my_upload2']['tmp_name'])) 
  { 

    echo " test ";
    //delete folder contents
    $files = glob('./decrypted_uploaded/*'); // get all file names
    foreach($files as $file){ // iterate files
        if(is_file($file))
            unlink($file); // delete file
    }

    //Validate the file name
    if(empty($_FILES['my_upload2']['name']))
    {
        echo " File name is empty! ";
        exit;
    }

    $upload_file_name = $_FILES['my_upload2']['name'];
    //Too long file name?
    if(strlen ($upload_file_name)>150)
    {
        echo " too long file name ";
        exit;
    }

    //set a limit to the file upload size
    if ($_FILES['my_upload2']['size'] > 10000000) 
    {
        echo " too big file ";
        exit;        
    }

    //Save the file
    $dest=__DIR__.'/decrypted_uploaded/'.$upload_file_name;
    if (move_uploaded_file($_FILES['my_upload2']['tmp_name'],$dest)) 
    {
        header('Location: webpage.php?uploaded_bin=yes');
    }
  }
}
heartear15 回答:PHP / HTML:输入后保存表单数据

您将数据保存在 $ _SESSION ['saved'] [$ decrypt_data] 但是你读 $ _SESSION ['saved'] [decrypt_data] ['l_id'] 读取数据时,在解密数据中添加$符号

,

您必须以HTML形式使用Post方法;并使用Post方法;

本文链接:https://www.f2er.com/3086945.html

大家都在问