【问题标题】:Pass POST data into a PHP function将 POST 数据传递给 PHP 函数
【发布时间】:2015-04-12 11:58:31
【问题描述】:

我想用 PHP 上传一个图像文件。如何将 POST 数据传递给另一个文件中的 PHP 函数,该函数将在单击提交按钮时执行...

这是表格:

 <!-- edit users profile picture -->
<form method="post" action="edit.php" name="user_edit_profile_picture">
    <input type="file" name="profil_slika" id="profil_slika">
    <input type="submit" name="user_edit_submit_profile_picture">

    <?php
        $con = mysqli_connect("localhost","root","","login");
        $q = mysqli_query($con,"SELECT * FROM users WHERE user_name = '".$_SESSION['user_name']."'");
        while($row = mysqli_fetch_assoc($q)){
            echo $row['user_name'];
            if($row['image'] == ""){
                echo "<img width='100' height='100' src='profile_pictures/default_user.png' alt='Default Profile Pic'>";
            } else {
                echo "<img width='100' height='100' src='profile_pictures/".$row['image']."' alt='Profile Pic'>";
            }
            echo "<br>";
        }
    ?>
</form>

这是另一个带有函数的 PHP 文件:

elseif(isset($_POST["user_edit_submit_profile_picture"])) {
                $this->editUserPicture($_POST['profil_slika']);
            }

和函数体:

public function editUserPicture($profilimage){

        $slika = $_FILES[$profilimage]['tmp_name'];
echo $slika;
        move_uploaded_file($_FILES[$profilimage]['tmp_name'],"profile_pictures/".$_FILES[$profilimage]['name']);

}

目前我在点击提交时收到此错误消息:

注意:未定义索引:C:\xampp\htdocs\advanced\classes\Login.php 中第 55 行中的 image.jpg

提前谢谢你!

【问题讨论】:

    标签: php function post


    【解决方案1】:

    改变这个:

    $this->editUserPicture($_POST['profil_slika']);
    

    到这里:

    $this->editUserPicture('profil_slika');
    

    并且还将enctype="multipart/form-data"添加到HTML &lt;form&gt;的属性中。

    原因是profil_slika 不会被传递给$_POST 数组。它将位于$_FILES 数组中,键为profil_slika。换句话说,$_FILES 数组需要用到的键 HTML inputname,你根本不需要使用$_POST。 p>

    【讨论】:

      【解决方案2】:

      请用这个替换您的表单标签并尝试:

      <form method="post" action="edit.php" name="user_edit_profile_picture" enctype="multipart/form-data">
      

      功能:

      elseif(isset($_POST["user_edit_submit_profile_picture"])) {
          $this->editUserPicture('profil_slika');
      }
      

      函数体:

      public function editUserPicture($profilimage){
              $slika = $_FILES[$profilimage]['tmp_name'];
              echo $slika;
              move_uploaded_file($_FILES[$profilimage]['tmp_name'],"profile_pictures/".$_FILES[$profilimage]['name']);
      
      }
      

      【讨论】:

      • 现在我得到另一个错误:注意:未定义的索引:在线 C:\xampp\htdocs\advanced\classes\Login.php 中的profil_slika ...
      • 另外请更改以下代码: elseif(isset($_POST["user_edit_submit_profile_picture"])) { $this->editUserPicture($_FILES['profil_slika']); }
      • 注意:C:\xampp\htdocs\advanced\classes\Login.php 中的数组到字符串转换在第 562 行数组警告:C:\xampp\htdocs\advanced\classes\ 中的非法偏移类型第 563 行的 Login.php 警告:第 565 行的 C:\xampp\htdocs\advanced\classes\Login.php 中的非法偏移类型警告:C:\xampp\htdocs\advanced\classes\Login.php 中的非法偏移类型第 565 行
      • 再改一次:elseif(isset($_POST["user_edit_submit_profile_picture"])) { $this->editUserPicture($_FILES['profil_slika']['name']); }
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 2013-05-02
      • 1970-01-01
      • 2012-07-19
      • 2013-01-16
      • 1970-01-01
      相关资源
      最近更新 更多