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

时间:2014-11-05 12:26:41

标签: php forms

我创建了一个PHP注册表单,供访问者填写并提交,询问他们的基本信息。

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

  1. 添加图片/文件上传字段
  2. 将它们重定向到确认页面
  3. 我无法让它发挥作用。以下是我所拥有的。

    我的代码

    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";
    
    ?>
    

3 个答案:

答案 0 :(得分:2)

您的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>

一旦您完成了该操作,因为您的文件存储在临时文件夹中,您还需要将文件移动到上传文件夹中,如下所示:

$target_file = "uploads/" . basename ($_FILES["fileToUpload"]["name"]);
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)

我希望这有帮助!

答案 1 :(得分:0)

添加上传需要添加enctype =&#34; multipart / form-data&#34;到您的表单标签,然后添加上传字段。对于“电子邮件”字段,将类型更改为HTML5类型=&#34;电子邮件&#34;,这将进行一些验证,检查其格式是否正确。在php文件的底部添加一个位置标题,如果一切顺利的话。您可以将它全部放在一个文件中,顶部有一个if语句。您还应该清理输入

答案 2 :(得分:0)

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

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>
相关问题