PHP表单-用于注册的文件上载字段

PHP表单-用于注册的文件上载字段,php,forms,Php,Forms,我创建了一个PHP注册表单,供访问者填写和提交,要求他们提供基本信息 我正在努力完成以下两项任务: 添加图像/文件上载字段 将它们重定向到确认页面 我一直无法使它工作。下面是我所拥有的 我的代码 HTML表单 <form name="form1" method="post" action="signup.php"> Username: <input type="text" name="user"> <br>Email: <input type=

我创建了一个PHP注册表单,供访问者填写和提交,要求他们提供基本信息

我正在努力完成以下两项任务:

  • 添加图像/文件上载字段
  • 将它们重定向到确认页面
  • 我一直无法使它工作。下面是我所拥有的

    我的代码

    HTML表单

    <form name="form1" method="post" action="signup.php"> 
    Username: <input type="text" name="user">    
    <br>Email: <input type="text" name="mail">
    <br>Experience: <select name="exp"> <option value="beginner">Beginner</option> 
    <option value="intermediate">Intermediate</option> <option value="advanced">Advanced</option> 
    </select><br> <input type="submit" name="Submit" value="Sign Up"> 
    </form>
    
    
    用户名:
    
    电邮:
    经验:初学者 中级高级
    Signup.php

    <?php
    
    $username = $_POST['user'];
    
    $email = $_POST['mail'];
    
    $experience = $_POST['exp'];
    
    //the data
    
    $data = "$username | $email | $experience\n";
    
    
    //open the file and choose the mode
    
    $fh = fopen("users.txt", "a");
    
    fwrite($fh, $data);
    
    
    //close the file
    
    fclose($fh);
    
    
    print "User Submitted";
    
    ?>
    
    
    
    Ta添加上传您需要将enctype=“multipart/form data”添加到表单标签,然后添加上传字段。对于电子邮件字段,将类型更改为HTML5 type=“Email”,这将执行一些有效性检查,以确保其格式正确。如果一切顺利,在php文件的底部添加一个位置头。您可以将所有内容放在一个文件中,顶部有一个if语句。您还应该清理输入内容。您的HTML中似乎缺少一个输入字段。 下面是一个上传文件的表单示例

    <form action="upload.php" method="post" enctype="multipart/form-data">
        Select image to upload:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload Image" name="submit">
    </form>
    

    我希望这有帮助

    这是一个上传文件脚本,它将遍历文件的所有数据并插入

    if(isset($_POST['submit'])) {
                if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
                echo "<h1>" . "File ". $_FILES['filename']['name']. "uploaded successfully." . "</h1>";
                }
    
                $csv_file=$_FILES['filename']['tmp_name'];
                $type=$_FILES['filename']['type'];
    
    
                $handle = fopen($csv_file, "r");
    
                $i=0;
                while (($data = fgetcsv($handle)) !== FALSE) {
                if($i>0) {
    
                $import="insert into `table_name`(col1,col2,col3,col4,col5,col6,col7)values('".addslashes($data[0])."','".addslashes($data[1])."','".addslashes($data[2])."','".addslashes($data[3])."','".addslashes($data[4])."','$data[5]','$data[6]')";
    
           mysql_query($import) or die(mysql_error());
           }
           $i=1;
           }
           echo "Success";
           echo "<br>";
           echo $_FILES['filename']['type'];
            }   
     ?>
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="" id="">
    Choose File:<br>
    <input name="filename" type="file" />
    <input type="submit" name="submit" value="submit" />
    </form>
    
    if(isset($\u POST['submit'])){
    如果(是上传的文件($\u文件['filename']['tmp\u name'])){
    echo“.”文件“$\u文件['filename']['name']”已成功上载。“”;
    }
    $csv_文件=$_文件['filename']['tmp_name'];
    $type=$_文件['filename']['type'];
    $handle=fopen($csv_文件,“r”);
    $i=0;
    while(($data=fgetcsv($handle))!==FALSE){
    如果($i>0){
    $import=“插入到`表名称'(col1,col2,col3,col4,col5,col6,col7)值('.”.addslashes($data[0])。“,'.”.addslashes($data[1])。”,'.”.addslashes($data[2]),'.addslashes($data[3]),'.addslashes($data[4]),'$data[5],'$data[6]';
    mysql_query($import)或die(mysql_error());
    }
    $i=1;
    }
    呼应“成功”;
    回声“
    ”; echo$_文件['filename']['type']; } ?>
    我在代码中没有看到输入文件字段。可能您需要查看此问题,如果此问题回答了您的问题,请将此标记为答案,否则此问题将保持标记为“打开”。您可以通过单击答案左侧的灰色小“检查”来标记答案,当它变为绿色时,您已将其标记为答案。
    if(isset($_POST['submit'])) {
                if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
                echo "<h1>" . "File ". $_FILES['filename']['name']. "uploaded successfully." . "</h1>";
                }
    
                $csv_file=$_FILES['filename']['tmp_name'];
                $type=$_FILES['filename']['type'];
    
    
                $handle = fopen($csv_file, "r");
    
                $i=0;
                while (($data = fgetcsv($handle)) !== FALSE) {
                if($i>0) {
    
                $import="insert into `table_name`(col1,col2,col3,col4,col5,col6,col7)values('".addslashes($data[0])."','".addslashes($data[1])."','".addslashes($data[2])."','".addslashes($data[3])."','".addslashes($data[4])."','$data[5]','$data[6]')";
    
           mysql_query($import) or die(mysql_error());
           }
           $i=1;
           }
           echo "Success";
           echo "<br>";
           echo $_FILES['filename']['type'];
            }   
     ?>
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="" id="">
    Choose File:<br>
    <input name="filename" type="file" />
    <input type="submit" name="submit" value="submit" />
    </form>