【问题标题】:how to do multiple form submissions in php如何在php中进行多个表单提交
【发布时间】:2014-12-14 02:48:49
【问题描述】:

用户/管理员登录并注册任意数量的学生。点击完成后,我们需要提供 付款方式选择后,我们需要为所有学生生成注册号,并且所有学生最后必须选择相同的付款方式。

我的问题是如何保存每个学生的表单值(包含近 100 个字段)直到他点击完成以及如何为所有这些学生插入和生成 reg no

【问题讨论】:

    标签: php mysql forms session submit


    【解决方案1】:

    您可以使用 JQUERY 就地编辑 html,并根据需要添加尽可能多的附加字段。对于每个新学生,在字段名称中增加一个 ID 号。在一个表单上提交所有信息,然后解析出结果。

    这篇文章讲的是如何使用jquery添加表单字段:Create new form fields with jQuery

    【讨论】:

      【解决方案2】:

      对于管理部分,您可以尝试:

      session_start(['username']);
      
      if (isset($_SESSION['username']))
      {
      
      $user = $_SESSION['username'];
      $connect = mysql_connect("localhost","root","");
      mysql_select_db("login");
      
      $POST = mysql_query("SELECT * FROM users WHERE username='$user'");
      while ($row = mysql_fetch_assoc($POST))
      {
          $admin = $row['account'];
      }
      
      if ($admin ==0)
      die("You're not an admin <a href='member.php'>Main menu</a>");
      
      
      
      }
      else
                  die("You must be logged in <a href='index.php'>Back</a>");
      ?>
      

      将帐户添加为您的数据库列表之一。

      这是一个有用的教程:

      https://www.youtube.com/watch?v=65gV8JOgWkQ&list=PL149E761860153CC8

      用户表:

      CREATE TABLE IF NOT EXISTS `users` (
        `userid` int(11) NOT NULL AUTO_INCREMENT,
        `firstname` varchar(25) NOT NULL,
        `surname` varchar(25) NOT NULL,
        `email` varchar(1024) NOT NULL,
        `password` varchar(30) NOT NULL,
        `username` varchar(25) NOT NULL,
        `account` int(11) NOT NULL DEFAULT '0',
        PRIMARY KEY (`userid`)
      ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=28 ;
      

      注册表:

      <?php
        if (isset($_POST['forename'], $_POST['email'], $_POST['surname'], $_POST['password'], $_POST['repassword']))
          {
          $errors = array();
          //form data
          $forename = strip_tags($_POST['forename']);
          $username = strtolower(strip_tags($_POST['username']));
          $surname = strip_tags($_POST['surname']);
          $password = strip_tags($_POST['password']);
          $repassword = strip_tags($_POST['repassword']);
          $email = $_POST['email'];
          //connect to database
          $connect = mysql_connect("localhost","root","");
          mysql_select_db("login");
      
          $namecheck = mysql_query("SELECT username FROM users WHERE username='$username'");
          $count = mysql_num_rows($namecheck);
      
          if (empty ($forename) || empty($email)){
          $errors[] ='All fields are required';
          }else{
          if(strlen($forename) >25 || strlen($forename) <3) {
          $errors[] = 'Your forename must be at least three letters long and a maximum of twenty letters';
          }
              if ($count!=0)
              {
          $errors[] = 'Username already taken';
          }
          if(strlen($surname) >25 || strlen($surname) <3) {
          $errors[] = 'Your surname must be at least three letters long and a maximum of twenty letters';
          }
          if(strlen($username) >25 || strlen($username) <3) {
          $errors[] = 'Your username must be at least three letters long and a maximum of twenty letters';
          }
          if(strlen($password) >25 || strlen($password) <3) {
          $errors[] = 'Your password must be at least three letters long and a maximum of twenty letters';
          }
          if(($password) != ($repassword)) {
          $errors[] = 'Your passwords do not match ';
          }
          if (filter_var($email, FILTER_VALIDATE_EMAIL) ===FALSE) {
          $errors[] ='Please enter a valid email';
          }
      
          }
          if(!empty($errors)){
      
          foreach ($errors as $errors){
          echo '<strong>',$errors ,'</strong><br />';
          }
          }else{
      
          $password = md5($password);
          $repassword = md5($repassword);
      
          $queryreg = mysql_query ("
      
          INSERT INTO users VALUES ('','$forename','$surname','$email','$password','$username','')
          ");
          header("Refresh: 1; url=index.php");
          die("you have registered <a href=index.php>Login</a>") ;
          }
      
          }
      ?>
      
      
      <form action =""  method="POST">
          <table>
          <tr><td>Forename:</td><td><input type="text" name="forename" value='<?php if (isset($_POST['forename'])) echo $forename; ?>'/></td></tr>
          <tr><td>Surname:</td><td><input type="text" name="surname" value='<?php if (isset($_POST['surname'])) echo $surname; ?>'/></td></tr>
          <tr><td>Username:</td><td><input type='text' name='username' value='<?php if (isset($_POST['username'])) echo $username; ?>'/></td></tr>
          <tr><td>Email:<td><input type ="text" name="email" value='<?php if (isset($_POST['email'])) echo $email; ?>'/><td></tr>
          <tr><td>Password:</td><td><input type='password' name='password'/></td></tr>
          <tr><td>Repeat password:</td><td><input type='password' name='repassword'/></td></tr>
          <tr><td><input type="submit" value="Register"/></td></tr>
          </table>
      
      </form> 
      

      登录:

      <?php
      
      session_start();
      
      $username = $_POST['username'];
      $password = $_POST['password'];
      $errors = array();
      
      
      if ($username&&$password)
      {
      
      $connect = mysql_connect("localhost","root","") or die ("Could not connect");
      mysql_select_db ("login") or die ("Could not find database");
      
      $query = mysql_query("SELECT * FROM users WHERE username ='$username'");
      
      $numrows = mysql_num_rows($query);
      if ($numrows !=0)
      {
          while ($row =mysql_fetch_assoc($query))
          {
              $dbusername = $row['username'];
              $dbpassword = $row['password'];
          }
      
          if ($username==$dbusername&&$password==$dbpassword)
          {
              echo header( 'Location: member.php' ) ;
              $_SESSION['username']=$dbusername;
              $_SESSION['userid']=$userid;
          }
          else 
              //echo "Inncorrect password";
          echo "
                  <script type=\"text/javascript\">
                    var text = document.createTextNode('Mmm ... something');
                      document.getElementById('myBtn').addEventListener('click', textchange1);
      
                  </script>
              ";
           }  
      
      }
      else
          die("That user dosen't exist");
      
      }
      
      else
          die("Please enter a username and a password");
      
      
      
      if(isset($_POST['btn'])){
      
      
      ?>
      
      用户名: 密码: 登记

      【讨论】:

      • 感谢您的链接。我的要求与提供的链接相似。但是管理员注册学生和所有学生应该得到个人注册号而不是项目,最后选择付款选项。你能提供任何示例代码
      • 这是一个相当大的项目,我可以给你一个注册和登录的示例代码,虽然你需要做一些工作来防止 sql 注入它。
      • 这是什么session_start(['username']);bool session_start ( void )php.net/manual/en/function.session-start.php
      • 这就是我学习的地方教我们的方式,它设置了我们被告知的会话名称。
      • 不是the manual 声明bool session_start ( void )。 Void 的意思是“无/空”。
      猜你喜欢
      • 2013-08-19
      • 2020-05-27
      • 2012-03-25
      • 1970-01-01
      • 2013-09-14
      • 2011-06-04
      • 2014-01-27
      • 2020-03-02
      • 2016-06-24
      相关资源
      最近更新 更多