Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表单未保存到数据库_Php_Mysql_Forms - Fatal编程技术网

Php 表单未保存到数据库

Php 表单未保存到数据库,php,mysql,forms,Php,Mysql,Forms,我制作了一张5公里跑步的表格,用户在表格中输入他/她的基本信息(姓名、姓氏、电子邮件、组织、是否参加活动,并在查看弃权表格后选中复选框) 我在末尾放置了一个提交按钮。我在将表单连接到数据库时遇到了问题。我已经尝试了连接,并在mySql中创建了一个名为“basicInfo”的表。我对编码还不熟悉,因此我感谢所有能得到的帮助,我一直在努力 这是到目前为止我的代码 index.php(已编辑) 首先,尽管我通常不喜欢这些建议,但您是否考虑过使用带有表单前端的google文档?对于非开发人员来说,这是一

我制作了一张5公里跑步的表格,用户在表格中输入他/她的基本信息(姓名、姓氏、电子邮件、组织、是否参加活动,并在查看弃权表格后选中复选框)

我在末尾放置了一个提交按钮。我在将表单连接到数据库时遇到了问题。我已经尝试了连接,并在mySql中创建了一个名为“basicInfo”的表。我对编码还不熟悉,因此我感谢所有能得到的帮助,我一直在努力

这是到目前为止我的代码

index.php(已编辑)


首先,尽管我通常不喜欢这些建议,但您是否考虑过使用带有表单前端的google文档?对于非开发人员来说,这是一种非常简单的方法,可以从人们那里获取数据,并将其放入电子表格中

在此,我假设您使用的是自动递增主键,我建议您将查询更改为:

if(mysql_query("INSERT INTO basicInfo VALUES(null, '{$_POST['first]}', '{$_POST['last']}', '{$_POST['email']}', '{$_POST['attendant']}', '$org', $time, 0, '', 1)"))
    {
我已将“”更改为null,因为您希望DB在其中插入它想要的内容。我还将在字符串中包含关联数组的方式更改为通常使PHP更快乐的方式

用于清理$\u POST数组,类似于

$expected = array('first', 'last', 'expected', 'attendant');
foreach($expected as $k)
{
  $p[$k] = clean($_POST[$k]);
}
//then changing the query to use $p rather than $_POST, clearly. 
除此之外,正如其他人所建议的,我强烈建议您使用
mysql\u real\u escape\u string()
,而不是某种addslashes()组合


发布
SHOW CREATE TABLE basicInfo;
的结果或任何错误都将有助于解决MySQL问题。

使用表单向数据库发送数据基本上有两种方法。第一种方法是让人们填写表单并将数据发送到下一页。您可以添加Java脚本来检查填写的数据是否符合您的要求和即时响应。例如,是否已填写所有必填字段。下一页处理数据并将数据发送到MySQL服务器。可以使用的表单方法是POST/GET。第二种方法是在一页上显示表单,并在同一页上处理数据(PHP_SELF或通过引用表单操作中的同一页面)。第二种方法要求代码非常结构化。如果需要检查数据是否已提交。接下来需要验证是否有效。如果表单已提交且输入有效,则数据将提交到数据库,访问者将显示如下文本“感谢您提交表单。我们将尽快与您联系。”。如果表单已提交且数据无效,访问者应停留在同一页面上,并收到错误消息,如“需要填写以下字段:……”,并显示表单。如果表单未提交(首次访问时)访客应显示表格

最容易设置的方法是第一种方法第二种方法是我认为最好的方法,但我建议您从第一种方法开始。第一种方法工作后,您可以添加Javascript之类的内容和/或将其更改为方法二

试试这个:

<?php

// Event name
$event = "2013 VIA-1 5K Run Fundraiser";

// Orgs  See table organisations
// $orgs = array('', 'Northeastern Illinois','Illinois Institute of Technology', 'Loyola', 'Oberlin', 'Northwestern', 'Purdue', 'IVSU', 'UW-Madison', 'UIllinois','Iowa State University', 'Michigan-Ann Arbor','Marquette University', 'Michigan State', 'UIC', 'Notre Dame', 'VSAM', 'Ohio State', 'UCincinnati', 'Northern Illinois', 'Indiana-Bloomington', 'University of Iowa', 'St. Cloud');
// asort($orgs);

// Registration fees for attendees and non-attendees
$fee_attendee = 10;
$fee_nonAttendee = 15;


$paypal_email = 'payment@example.com ';

// Registration closing date (will go until 11:59 PM Central Standard Time of this day)
$close_month = 03;
$close_day = 08;
$close_year = 2013;

// $time = time(); Easier to use the build in now function of MySQL. 


function clean($in)
{
    $out = trim(strip_tags($in));
    $out = addslashes($out);
    return $out;
}



function listform(){
$host = "localhost";
$user = "user";
$password = "password";
$database = "database";

// open connection to databse
$link = mysqli_connect($host, $user, $password, $database);
        IF (!$link){
            echo ("Unable to connect to database!");
        }
        ELSE {
           //Get organisations from table organisations
           $query = "SELECT * FROM  organisations ORDER BY name ASC"; 
           $result = mysqli_query($link, $query);
                while($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
                    echo "<option value=".$row['id_organisations'].">".$row['name']."</option>\n";
                }
        }
        mysqli_close($link);
}

//Check if variables are post if so filter the input if not initiating variables for form
IF (isset($_POST['firstname'])){  
     $firstname  = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING);    
}
ELSE {
    $firstname  = "";
}

IF (isset($_POST['lastname'])){
            $lastname   = filter_var($_POST['lastname'],FILTER_SANITIZE_STRING); 
}
ELSE {
    $lastname   = "";
}

IF (isset($_POST['org'])){
   $org = $_POST['org'];
}
ELSE {
    $org    = "";
}

IF (isset($_POST['email'])){
    $email  = filter_var(filter_var($_POST['email'],FILTER_SANITIZE_EMAIL),FILTER_VALIDATE_EMAIL);
}
ELSE {
    $email  = "";
}

IF (isset($_POST['attendant'])){
    $attendant  = filter_var(filter_var($_POST['attendant'],FILTER_SANITIZE_STRING));
}
ELSE {
    $attendant  = "";
}
IF (isset($_POST['waiver'])){
    $waiver = filter_var(filter_var($_POST['waiver'],FILTER_SANITIZE_STRING));
}
ELSE {
    $waiver  = "";
}



function submit_form(){
    $host = "localhost";
    $user = "user";
    $password = "password";
    $database = "database";   

    $firstname  = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING); 
    $lastname   = filter_var($_POST['lastname'], FILTER_SANITIZE_STRING); 
    $org    = $_POST['org'];
    $email  = filter_var(filter_var($_POST['email'],FILTER_SANITIZE_EMAIL),FILTER_VALIDATE_EMAIL);
    $attendant  = $_POST['attendant'];

    // open connection to database
    $link = mysqli_connect($host, $user, $password, $database);
        IF (!$link){
            echo ("Unable to connect to database!");
        }
        ELSE {
           //INSERT VALUES INTO DATABASE
           $query = "INSERT INTO basicInfo (firstname,lastname,email,attendant,org,time) VALUES('".$firstname."', '".$lastname."', '".$email."', ".$attendant.", ".$org.", NOW())";
           return mysqli_query($link,$query);

        }
//close connection to database
        mysqli_close($link);

    }



//Warning messages initiation
$warning_firstname  = "*Required";
$warning_lastname   = "*Required";
$warning_org  = "*Required";
$warning_email   = "*Required";
$warning_attendant   = "*Required";
$warning_waiver      = "*Required";





$formfirstpart = <<<EODformfirspart
<HTML>
    <head><title>Form 5K RUN </title></head>
     <body style="background-color:gold">
     <tbody>
            <p>We're excited to introduce the 5K Run to VIA-1! During this year's conference, Individuals can register to participate in the fun across University of Iowa's campus in order to raise money for this year's CPP</p>
    <div class='row'>
        <form action="{$_SERVER['PHP_SELF']}" method="POST" name="registration">
           <div class='column grid_5'>
            <label for='first'>First Name:</label><br />
            <input type="text" name="firstname" id="first" maxlength="25" tabindex='1' VALUE="$firstname"><span class="warning">$warning_firstname</span><br><br>
            <label for='first'>Last Name:</label><br />
            <input type="text" name="lastname" id='lastname' maxlength="25" tabindex='1' VALUE="$lastname" /><span class="warning">$warning_lastname</span><br /><br />
            <label for='email'>E-mail:</label><br />
            <input type="text" name="email" id='email' maxlength="100" tabindex='3' VALUE="$email" /><span class="warning">$warning_email</span><br /><br />

            <label for='org'>Organization:</label><br />
            <SELECT id="org" name="org">

EODformfirspart;

$formlastpart = <<<EODlastpart
            </SELECT>
                <span class="warning">$warning_org</span><br /><br />

                    <label for='attendant'>Are you attending VIA-1?</label><br />

                <input type='radio' class='radio' name='attendant' id='attendant-yes' value='1' /> <label for='attendant-yes'>Yes</label><br />
            <input type='radio' class='radio' name='attendant' id='attendant-no' value='0' /> <label for='attendant-no'>No </label>$warning_attendant<br /><br />


            <input type='checkbox' class='radio' name='waiver' id='waiver' value=1  /> <label for='waiver'>I understand and agree to the terms of <a href='waiver.php' target="_blank">the waiver</a>.$warning_waiver</label>
        </div>      
    </div>
    <br></br>
    <div class='column grid_10 right'>
            <input type="submit" class='button' name="submit" value="submit" tabindex='7' /></form>
        </div>

            </tbody>
        </div>
    </div>


    </body>
    </html>

EODlastpart;









IF(!IsSet($_POST['submit'])){ // Check if form is not send, if not display empty form.

echo $formfirstpart;
echo listform();
echo $formlastpart; 
}

ELSEIF (IsSet($_POST['submit']) AND (isset($firstname) OR isset($lastname) OR isset($email) OR  isset($org) OR isset($attendant))) {
$warning_counter = 0;
if ($firstname == "") {      
        $warning_firstname = 'Please provide your first name and / or a valid name';
                $warning_counter = + 1 ;
        }
if ($firstname == "") {      
        $warning_lastname = 'Please provide your last name and / or a valid name';
                $warning_counter = + 1;
        }
if ($email == "") {      
        $warning_email = 'Please provide your email adress and / or a valid email adress';
                $warning_counter = +1;
        }

if ($org == " ") {      
        $warning_org = 'Please select your organisation';
                $warning_counter = +1;
        }

if ($waiver == "") {      
        $warning_waiver = 'You have to accept the waiver agreement the otherwise you cannot attend'; 
                $warning_counter = +1;
        }
if ($attendant == "") {      
        $warning_attendant = 'Do you attend VIA-1?';
                $warning_counter =+1;
        } 
 if ($warning_counter>0){               
$formfirstpart1 = <<<EODformfirspart1
<HTML>
    <head><title>Form 5K RUN </title></head>
     <body style="background-color:gold">
     <tbody>
            <p>We're excited to introduce the 5K Run to VIA-1! During this year's conference, Individuals can register to participate in the fun across University of Iowa's campus in order to raise money for this year's CPP</p>
    <div class='row'>
        <form action="{$_SERVER['PHP_SELF']}" method="POST" name="registration">
           <div class='column grid_5'>
            <label for='first'>First Name:</label><br />
            <input type="text" name="firstname" id="first" maxlength="25" tabindex='1' VALUE="$firstname"><span class="warning">$warning_firstname</span><br><br>
            <label for='first'>Last Name:</label><br />
            <input type="text" name="lastname" id='lastname' maxlength="25" tabindex='1' VALUE="$lastname" /><span class="warning">$warning_lastname</span><br /><br />
            <label for='email'>E-mail:</label><br />
            <input type="text" name="email" id='email' maxlength="100" tabindex='3' VALUE="$email" /><span class="warning">$warning_email</span><br /><br />

            <label for="org">Organization:</label><br />
            <select id="org" name="org" tabindex='5' form="registration">


EODformfirspart1;



$formlastpart1 = <<<EODlastpart1
            </select>
                <span class="warning">$warning_org</span><br /><br />

                    <label for='attendant'>Are you attending VIA-1?</label><br />

                <input type='radio' class='radio' name='attendant' id='attendant-yes' value='1' /> <label for='attendant-yes'>Yes</label><br />
            <input type='radio' class='radio' name='attendant' id='attendant-no' value='0' /> <label for='attendant-no'>No </label><br />$warning_attendant<br />


            <input type='checkbox' class='radio' name='waiver' id='waiver' value=1  /> <label for='waiver'>I understand and agree to the terms of <a href='waiver.php' target="_blank">the waiver</a>.$warning_waiver</label>
        </div>      
    </div>
    <br></br>
    <div class='column grid_10 right'>
            <input type="submit" class='button' name="submit" value="submit" tabindex='7' />
        </div>
        </form>
            </tbody>
            </table>
        </div>
    </div>


    </font>
    </body>
    </html>

EODlastpart1;

    echo $formfirstpart1;
    echo listform();
    echo $formlastpart1;
 }
 IF ($warning_counter == 0){
submit_form();
header('Location: submitted.php');    
 }
}


?>

重要的是要注意这只是一个开始。我还没有测试过它,所以请记住。我不理解你代码的某些部分,所以我不得不做一些猜测工作

编辑:删除旧数据库并导入结构和数据:

DROP TABLE IF EXISTS basicinfo;
DROP TABLE IF EXISTS organisations;


CREATE TABLE organisations (
      id_organisations int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(100) DEFAULT NULL,
      PRIMARY KEY (id_organisations)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE basicinfo (
  id int(11) NOT NULL AUTO_INCREMENT,
  firstname varchar(30) NOT NULL,
  lastname varchar(50) NOT NULL,
  org int(11) NOT NULL,
  email varchar(100) NOT NULL,
  attendant int(11) NOT NULL,
  `time` datetime NOT NULL,
  PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


INSERT INTO `organisations` (`id_organisations`, `name`) VALUES
(1, 'Northeastern Illinois'),
(2, 'Illinois Institute of Technology'),
(3, 'Loyola'),
(4, 'Oberlin'),
(5, 'Northwestern'),
(6, 'Purdue'),
(7, 'IVSU'),
(8, 'UW-Madison'),
(9, 'UIllinois'),
(10, 'Iowa State University'),
(11, 'Michigan-Ann Arbor'),
(12, 'Marquette University'),
(13, 'Michigan State'),
(14, 'UIC'),
(15, 'Notre Dame'),
(16, 'VSAM'),
(17, 'Ohio State'),
(18, 'UCincinnati'),
(19, 'Northern Illinois'),
(20, 'Indiana-Bloomington'),
(21, 'University of Iowa'),
(22, 'St. Cloud');
如果您以前更改过UID,请在PHP代码中将其更改为ID。上述查询将删除您的表(basicinfo),然后重新创建两个新表(basicinfo和Organizations)。这是将其应用于您自己的数据库的方式。将上面的SQL代码复制到phpmyadmin。登录phpmyadmin->选择您的数据库->SQL->删除默认文本并将上面的代码复制到窗口->运行查询(开始)

如果只想更改数据库,可以使用以下查询:

ALTER TABLE `basicinfo` 
CHANGE `uid` `id` INT auto_increment,
CHANGE `firstname` `firstname` varchar(30),
CHANGE `lastname` `lastname` varchar(50),
CHANGE `org` `org` INT,
CHANGE `email` `email` VARCHAR(100), 
ADD `time` datetime NOT NULL;
但您仍然需要创建并填充组织数据库

CREATE TABLE organisations (
      id_organisations int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(100) DEFAULT NULL,
      PRIMARY KEY (id_organisations)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `organisations` (`id_organisations`, `name`) VALUES
(1, 'Northeastern Illinois'),
(2, 'Illinois Institute of Technology'),
(3, 'Loyola'),
(4, 'Oberlin'),
(5, 'Northwestern'),
(6, 'Purdue'),
(7, 'IVSU'),
(8, 'UW-Madison'),
(9, 'UIllinois'),
(10, 'Iowa State University'),
(11, 'Michigan-Ann Arbor'),
(12, 'Marquette University'),
(13, 'Michigan State'),
(14, 'UIC'),
(15, 'Notre Dame'),
(16, 'VSAM'),
(17, 'Ohio State'),
(18, 'UCincinnati'),
(19, 'Northern Illinois'),
(20, 'Indiana-Bloomington'),
(21, 'University of Iowa'),
(22, 'St. Cloud');

最终编辑

<?php


// Event name
$event = "2013 VIA-1 5K Run Fundraiser";

// Registration fees for attendees and non-attendees
$fee_attendee = 10;
$fee_nonAttendee = 15;


$paypal_email = 'payment@example.com ';

// Registration closing date (will go until 11:59 PM Central Standard Time of this day)
$close_month = 03;
$close_day = 08;
$close_year = 2013;

// $time = time(); Easier to use the build in now function of MySQL. 


function clean($in)
{
    $out = trim(strip_tags($in));
    $out = addslashes($out);
    return $out;
}



function listform(){
$host = "host";
$user = "username";
$password = "password";
$database = "databasename";

// open connection to databse
$link = mysqli_connect($host, $user, $password, $database);
        IF (!$link){
            echo ("Unable to connect to database!");
        }
        ELSE {
           //Get organisations from table organisations
           $query = "SELECT * FROM  organisations ORDER BY name ASC"; 
           $result = mysqli_query($link, $query);
                while($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
                    echo "<option value=".$row['id_organisations'].">".$row['name']."</option>\n";
                }
        }
        mysqli_close($link);
}

//Check if variables are post if so filter the input if not initiating variables for form
IF (isset($_POST['firstname'])){  
     $firstname  = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING);    
}
ELSE {
    $firstname  = "";
}

IF (isset($_POST['lastname'])){
            $lastname   = filter_var($_POST['lastname'],FILTER_SANITIZE_STRING); 
}
ELSE {
    $lastname   = "";
}

IF (isset($_POST['org'])){
   $org = $_POST['org'];
}
ELSE {
    $org    = "";
}

IF (isset($_POST['email'])){
    $email  = filter_var(filter_var($_POST['email'],FILTER_SANITIZE_EMAIL),FILTER_VALIDATE_EMAIL);
}
ELSE {
    $email  = "";
}

IF (isset($_POST['attendant'])){
    $attendant  = filter_var(filter_var($_POST['attendant'],FILTER_SANITIZE_STRING));
}
ELSE {
    $attendant  = "";
}
IF (isset($_POST['waiver'])){
    $waiver = filter_var(filter_var($_POST['waiver'],FILTER_SANITIZE_STRING));
}
ELSE {
    $waiver  = "";
}



function submit_form(){
    $host  = "host";
$user = "username";
$password = "password";
$database = "databasename";

    $firstname  = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING); 
    $lastname   = filter_var($_POST['lastname'], FILTER_SANITIZE_STRING); 
    $org    = $_POST['org'];
    $email  = filter_var(filter_var($_POST['email'],FILTER_SANITIZE_EMAIL),FILTER_VALIDATE_EMAIL);
    $attendant  = $_POST['attendant'];

    // open connection to database
    $link = mysqli_connect($host,$user, $password, $database);
        IF (!$link){
            echo ("Unable to connect to database!");
        }
        ELSE {
           //INSERT VALUES INTO DATABASE
           $query = "INSERT INTO basicinfo (firstname,lastname,email,attendant,org,time) VALUES('".$firstname."', '".$lastname."', '".$email."', ".$attendant.", ".$org.", NOW())";
           return mysqli_query($link,$query);

        }
//close connection to database
        mysqli_close($link);

    }



//Warning messages initiation
$warning_firstname  = "*Required";
$warning_lastname   = "*Required";
$warning_org  = "*Required";
$warning_email   = "*Required";
$warning_attendant   = "*Required";
$warning_waiver      = "*Required";





$formfirstpart = <<<EODformfirspart
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <title>Form 5K RUN </title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link href="style.css" type="text/css" rel="stylesheet" media="screen"/>

    </head>
    <body style="background-color:gold">

            <div>We're excited to introduce the 5K Run to VIA-1! During this year's conference, Individuals can register to participate in the fun across University of Iowa's campus in order to raise money for this year's CPP</div>
    <div class="row">
        <form action="{$_SERVER['PHP_SELF']}" method="POST" name="registration">
           <div class="column grid_5">
               <label for='first'>First Name:</label></br>
            <input type="text" name="firstname" id="first" maxlength="25" tabindex='1' VALUE="$firstname" /><span class="warning">$warning_firstname</span></br></br>
            <label for='first'>Last Name:</label></br>
            <input type="text" name="lastname" id='lastname' maxlength="25" tabindex='1' VALUE="$lastname" /><span class="warning">$warning_lastname</span></br></br>
            <label for='email'>E-mail:</label></br>
            <input type="text" name="email" id='email' maxlength="100" tabindex='3' VALUE="$email" /><span class="warning">$warning_email</span></br></br>


           <label for="org">Organization:</label><br />
            <select id="org" name="org" tabindex="5">

EODformfirspart;

$formlastpart = <<<EODlastpart
                            </select>
                <span class="warning">$warning_org</span><br /><br />

                    <label for='attendant'>Are you attending VIA-1?</label><br />

                <input type='radio' class='radio' name='attendant' id='attendant-yes' value='1' /> <label for='attendant-yes'>Yes</label><br />
            <input type='radio' class='radio' name='attendant' id='attendant-no' value='0' /> <label for='attendant-no'>No </label><br />$warning_attendant<br />


            <input type='checkbox' class="radio" name="waiver" id="waiver" value="1"  /> <label for='waiver'>I understand and agree to the terms of <a href='waiver.php' target="_blank">the waiver</a>.$warning_waiver</label>
        </div>

    <div class='column grid_10 right'>
            <input type="submit" class='button' name="submit" value="submit" tabindex='7' />
            </form>
</div>
    </body>
</html>
EODlastpart;








IF(!IsSet($_POST['submit'])){ // Check if form is not send, if not display empty form.

echo $formfirstpart;
echo listform();
echo $formlastpart; 
}

ELSEIF (IsSet($_POST['submit']) AND (isset($firstname) OR isset($lastname) OR isset($email) OR  isset($org) OR isset($attendant))) {
$warning_counter = 0;
if ($firstname == "") {      
        $warning_firstname = 'Please provide your first name and / or a valid name';
                $warning_counter = + 1 ;
        }
if ($firstname == "") {      
        $warning_lastname = 'Please provide your last name and / or a valid name';
                $warning_counter = + 1;
        }
if ($email == "") {      
        $warning_email = 'Please provide your email adress and / or a valid email adress';
                $warning_counter = +1;
        }

if ($org == " ") {      
        $warning_org = 'Please select your organisation';
                $warning_counter = +1;
        }

if ($waiver == "") {      
        $warning_waiver = 'You have to accept the waiver agreement the otherwise you cannot attend'; 
                $warning_counter = +1;
        }
if ($attendant == "") {      
        $warning_attendant = 'Do you attend VIA-1?';
                $warning_counter =+1;
        } 
 if ($warning_counter>0){               
$formfirstpart1 = <<<EODformfirspart1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <title>Form 5K RUN </title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link href="style.css" type="text/css" rel="stylesheet" media="screen"/>

    </head>
    <body style="background-color:gold">

            <div>We're excited to introduce the 5K Run to VIA-1! During this year's conference, Individuals can register to participate in the fun across University of Iowa's campus in order to raise money for this year's CPP</div>
    <div class="row">
        <form action="{$_SERVER['PHP_SELF']}" method="POST" name="registration">
           <div class="column grid_5">
               <label for='first'>First Name:</label></br>
            <input type="text" name="firstname" id="first" maxlength="25" tabindex='1' VALUE="$firstname" /><span class="warning">$warning_firstname</span></br></br>
            <label for='first'>Last Name:</label></br>
            <input type="text" name="lastname" id='lastname' maxlength="25" tabindex='1' VALUE="$lastname" /><span class="warning">$warning_lastname</span></br></br>
            <label for='email'>E-mail:</label></br>
            <input type="text" name="email" id='email' maxlength="100" tabindex='3' VALUE="$email" /><span class="warning">$warning_email</span></br></br>


           <label for="org">Organization:</label><br />
            <select id="org" name="org" tabindex="5">


EODformfirspart1;



$formlastpart1 = <<<EODlastpart1

                            </select>
                <span class="warning">$warning_org</span><br /><br />

                    <label for='attendant'>Are you attending VIA-1?</label><br />

                <input type='radio' class='radio' name='attendant' id='attendant-yes' value='1' /> <label for='attendant-yes'>Yes</label><br />
            <input type='radio' class='radio' name='attendant' id='attendant-no' value='0' /> <label for='attendant-no'>No </label><br />$warning_attendant<br />


            <input type='checkbox' class="radio" name="waiver" id="waiver" value="1"  /> <label for='waiver'>I understand and agree to the terms of <a href='waiver.php' target="_blank">the waiver</a>.$warning_waiver</label>
        </div>

    <div class='column grid_10 right'>
            <input type="submit" class='button' name="submit" value="submit" tabindex='7' />
            </form>
</div>
    </body>
</html>



EODlastpart1;

    echo $formfirstpart1;
    echo listform();
    echo $formlastpart1;
 }
 IF ($warning_counter == 0){
submit_form();
header('Location: submitted.php');    
 }
}


?>

您似乎缺少一个SQL查询,在该查询中,您将数据插入数据库,我想这就是您正在尝试做的事情?如果您确实有该代码,但只是忽略了它,我们将需要查看它。您是否意识到您的“clean”函数实际上并不能阻止SQL注入攻击?有关可接受的解决方案,请参阅。(而且clean甚至似乎没有被使用...用粉笔另一个占位符。)@Joe Doe-这不是吗?如果(mysql_查询(“插入basicInfo值(“,$”,$”,POST[first],“$”,$”,POST[email],“$”,$POST[attendant],“$org',$time,0,,,1)”),将数据插入数据库的一个好例子是什么?我认为SQL“插入”我输入的命令执行了此操作。还是因为我正在将数据插入表“basicInfo”而不是整个数据库“conference”而出错?您是否已将config.php包含在索引文件中?我看不到。谢谢您的建议。我对我的查询进行了更改!我曾考虑过一个google文档,但有一些关于paypal的内容我需要在以后添加以供支付选项,所以我更喜欢这样做,尽管我认为google文档会很好。我现在和将来都无法访问我的页面我得到了这个错误:“Parse error:syntax error,意外的$end在第120行”,它指的是“在我的index.php文件的末尾。可能有什么问题吗?我发现当我插入@Mr.radic时,我尝试添加了一个”}“在index.php的不同位置,但似乎无法找到它。你知道它可能丢失在哪里吗?@digitalwomen我看到$uid前面有一个开始的括号,它必须在某处闭合。”。
DROP TABLE IF EXISTS basicinfo;
DROP TABLE IF EXISTS organisations;


CREATE TABLE organisations (
      id_organisations int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(100) DEFAULT NULL,
      PRIMARY KEY (id_organisations)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE basicinfo (
  id int(11) NOT NULL AUTO_INCREMENT,
  firstname varchar(30) NOT NULL,
  lastname varchar(50) NOT NULL,
  org int(11) NOT NULL,
  email varchar(100) NOT NULL,
  attendant int(11) NOT NULL,
  `time` datetime NOT NULL,
  PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


INSERT INTO `organisations` (`id_organisations`, `name`) VALUES
(1, 'Northeastern Illinois'),
(2, 'Illinois Institute of Technology'),
(3, 'Loyola'),
(4, 'Oberlin'),
(5, 'Northwestern'),
(6, 'Purdue'),
(7, 'IVSU'),
(8, 'UW-Madison'),
(9, 'UIllinois'),
(10, 'Iowa State University'),
(11, 'Michigan-Ann Arbor'),
(12, 'Marquette University'),
(13, 'Michigan State'),
(14, 'UIC'),
(15, 'Notre Dame'),
(16, 'VSAM'),
(17, 'Ohio State'),
(18, 'UCincinnati'),
(19, 'Northern Illinois'),
(20, 'Indiana-Bloomington'),
(21, 'University of Iowa'),
(22, 'St. Cloud');
ALTER TABLE `basicinfo` 
CHANGE `uid` `id` INT auto_increment,
CHANGE `firstname` `firstname` varchar(30),
CHANGE `lastname` `lastname` varchar(50),
CHANGE `org` `org` INT,
CHANGE `email` `email` VARCHAR(100), 
ADD `time` datetime NOT NULL;
CREATE TABLE organisations (
      id_organisations int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(100) DEFAULT NULL,
      PRIMARY KEY (id_organisations)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `organisations` (`id_organisations`, `name`) VALUES
(1, 'Northeastern Illinois'),
(2, 'Illinois Institute of Technology'),
(3, 'Loyola'),
(4, 'Oberlin'),
(5, 'Northwestern'),
(6, 'Purdue'),
(7, 'IVSU'),
(8, 'UW-Madison'),
(9, 'UIllinois'),
(10, 'Iowa State University'),
(11, 'Michigan-Ann Arbor'),
(12, 'Marquette University'),
(13, 'Michigan State'),
(14, 'UIC'),
(15, 'Notre Dame'),
(16, 'VSAM'),
(17, 'Ohio State'),
(18, 'UCincinnati'),
(19, 'Northern Illinois'),
(20, 'Indiana-Bloomington'),
(21, 'University of Iowa'),
(22, 'St. Cloud');
<?php


// Event name
$event = "2013 VIA-1 5K Run Fundraiser";

// Registration fees for attendees and non-attendees
$fee_attendee = 10;
$fee_nonAttendee = 15;


$paypal_email = 'payment@example.com ';

// Registration closing date (will go until 11:59 PM Central Standard Time of this day)
$close_month = 03;
$close_day = 08;
$close_year = 2013;

// $time = time(); Easier to use the build in now function of MySQL. 


function clean($in)
{
    $out = trim(strip_tags($in));
    $out = addslashes($out);
    return $out;
}



function listform(){
$host = "host";
$user = "username";
$password = "password";
$database = "databasename";

// open connection to databse
$link = mysqli_connect($host, $user, $password, $database);
        IF (!$link){
            echo ("Unable to connect to database!");
        }
        ELSE {
           //Get organisations from table organisations
           $query = "SELECT * FROM  organisations ORDER BY name ASC"; 
           $result = mysqli_query($link, $query);
                while($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
                    echo "<option value=".$row['id_organisations'].">".$row['name']."</option>\n";
                }
        }
        mysqli_close($link);
}

//Check if variables are post if so filter the input if not initiating variables for form
IF (isset($_POST['firstname'])){  
     $firstname  = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING);    
}
ELSE {
    $firstname  = "";
}

IF (isset($_POST['lastname'])){
            $lastname   = filter_var($_POST['lastname'],FILTER_SANITIZE_STRING); 
}
ELSE {
    $lastname   = "";
}

IF (isset($_POST['org'])){
   $org = $_POST['org'];
}
ELSE {
    $org    = "";
}

IF (isset($_POST['email'])){
    $email  = filter_var(filter_var($_POST['email'],FILTER_SANITIZE_EMAIL),FILTER_VALIDATE_EMAIL);
}
ELSE {
    $email  = "";
}

IF (isset($_POST['attendant'])){
    $attendant  = filter_var(filter_var($_POST['attendant'],FILTER_SANITIZE_STRING));
}
ELSE {
    $attendant  = "";
}
IF (isset($_POST['waiver'])){
    $waiver = filter_var(filter_var($_POST['waiver'],FILTER_SANITIZE_STRING));
}
ELSE {
    $waiver  = "";
}



function submit_form(){
    $host  = "host";
$user = "username";
$password = "password";
$database = "databasename";

    $firstname  = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING); 
    $lastname   = filter_var($_POST['lastname'], FILTER_SANITIZE_STRING); 
    $org    = $_POST['org'];
    $email  = filter_var(filter_var($_POST['email'],FILTER_SANITIZE_EMAIL),FILTER_VALIDATE_EMAIL);
    $attendant  = $_POST['attendant'];

    // open connection to database
    $link = mysqli_connect($host,$user, $password, $database);
        IF (!$link){
            echo ("Unable to connect to database!");
        }
        ELSE {
           //INSERT VALUES INTO DATABASE
           $query = "INSERT INTO basicinfo (firstname,lastname,email,attendant,org,time) VALUES('".$firstname."', '".$lastname."', '".$email."', ".$attendant.", ".$org.", NOW())";
           return mysqli_query($link,$query);

        }
//close connection to database
        mysqli_close($link);

    }



//Warning messages initiation
$warning_firstname  = "*Required";
$warning_lastname   = "*Required";
$warning_org  = "*Required";
$warning_email   = "*Required";
$warning_attendant   = "*Required";
$warning_waiver      = "*Required";





$formfirstpart = <<<EODformfirspart
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <title>Form 5K RUN </title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link href="style.css" type="text/css" rel="stylesheet" media="screen"/>

    </head>
    <body style="background-color:gold">

            <div>We're excited to introduce the 5K Run to VIA-1! During this year's conference, Individuals can register to participate in the fun across University of Iowa's campus in order to raise money for this year's CPP</div>
    <div class="row">
        <form action="{$_SERVER['PHP_SELF']}" method="POST" name="registration">
           <div class="column grid_5">
               <label for='first'>First Name:</label></br>
            <input type="text" name="firstname" id="first" maxlength="25" tabindex='1' VALUE="$firstname" /><span class="warning">$warning_firstname</span></br></br>
            <label for='first'>Last Name:</label></br>
            <input type="text" name="lastname" id='lastname' maxlength="25" tabindex='1' VALUE="$lastname" /><span class="warning">$warning_lastname</span></br></br>
            <label for='email'>E-mail:</label></br>
            <input type="text" name="email" id='email' maxlength="100" tabindex='3' VALUE="$email" /><span class="warning">$warning_email</span></br></br>


           <label for="org">Organization:</label><br />
            <select id="org" name="org" tabindex="5">

EODformfirspart;

$formlastpart = <<<EODlastpart
                            </select>
                <span class="warning">$warning_org</span><br /><br />

                    <label for='attendant'>Are you attending VIA-1?</label><br />

                <input type='radio' class='radio' name='attendant' id='attendant-yes' value='1' /> <label for='attendant-yes'>Yes</label><br />
            <input type='radio' class='radio' name='attendant' id='attendant-no' value='0' /> <label for='attendant-no'>No </label><br />$warning_attendant<br />


            <input type='checkbox' class="radio" name="waiver" id="waiver" value="1"  /> <label for='waiver'>I understand and agree to the terms of <a href='waiver.php' target="_blank">the waiver</a>.$warning_waiver</label>
        </div>

    <div class='column grid_10 right'>
            <input type="submit" class='button' name="submit" value="submit" tabindex='7' />
            </form>
</div>
    </body>
</html>
EODlastpart;








IF(!IsSet($_POST['submit'])){ // Check if form is not send, if not display empty form.

echo $formfirstpart;
echo listform();
echo $formlastpart; 
}

ELSEIF (IsSet($_POST['submit']) AND (isset($firstname) OR isset($lastname) OR isset($email) OR  isset($org) OR isset($attendant))) {
$warning_counter = 0;
if ($firstname == "") {      
        $warning_firstname = 'Please provide your first name and / or a valid name';
                $warning_counter = + 1 ;
        }
if ($firstname == "") {      
        $warning_lastname = 'Please provide your last name and / or a valid name';
                $warning_counter = + 1;
        }
if ($email == "") {      
        $warning_email = 'Please provide your email adress and / or a valid email adress';
                $warning_counter = +1;
        }

if ($org == " ") {      
        $warning_org = 'Please select your organisation';
                $warning_counter = +1;
        }

if ($waiver == "") {      
        $warning_waiver = 'You have to accept the waiver agreement the otherwise you cannot attend'; 
                $warning_counter = +1;
        }
if ($attendant == "") {      
        $warning_attendant = 'Do you attend VIA-1?';
                $warning_counter =+1;
        } 
 if ($warning_counter>0){               
$formfirstpart1 = <<<EODformfirspart1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <title>Form 5K RUN </title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link href="style.css" type="text/css" rel="stylesheet" media="screen"/>

    </head>
    <body style="background-color:gold">

            <div>We're excited to introduce the 5K Run to VIA-1! During this year's conference, Individuals can register to participate in the fun across University of Iowa's campus in order to raise money for this year's CPP</div>
    <div class="row">
        <form action="{$_SERVER['PHP_SELF']}" method="POST" name="registration">
           <div class="column grid_5">
               <label for='first'>First Name:</label></br>
            <input type="text" name="firstname" id="first" maxlength="25" tabindex='1' VALUE="$firstname" /><span class="warning">$warning_firstname</span></br></br>
            <label for='first'>Last Name:</label></br>
            <input type="text" name="lastname" id='lastname' maxlength="25" tabindex='1' VALUE="$lastname" /><span class="warning">$warning_lastname</span></br></br>
            <label for='email'>E-mail:</label></br>
            <input type="text" name="email" id='email' maxlength="100" tabindex='3' VALUE="$email" /><span class="warning">$warning_email</span></br></br>


           <label for="org">Organization:</label><br />
            <select id="org" name="org" tabindex="5">


EODformfirspart1;



$formlastpart1 = <<<EODlastpart1

                            </select>
                <span class="warning">$warning_org</span><br /><br />

                    <label for='attendant'>Are you attending VIA-1?</label><br />

                <input type='radio' class='radio' name='attendant' id='attendant-yes' value='1' /> <label for='attendant-yes'>Yes</label><br />
            <input type='radio' class='radio' name='attendant' id='attendant-no' value='0' /> <label for='attendant-no'>No </label><br />$warning_attendant<br />


            <input type='checkbox' class="radio" name="waiver" id="waiver" value="1"  /> <label for='waiver'>I understand and agree to the terms of <a href='waiver.php' target="_blank">the waiver</a>.$warning_waiver</label>
        </div>

    <div class='column grid_10 right'>
            <input type="submit" class='button' name="submit" value="submit" tabindex='7' />
            </form>
</div>
    </body>
</html>



EODlastpart1;

    echo $formfirstpart1;
    echo listform();
    echo $formlastpart1;
 }
 IF ($warning_counter == 0){
submit_form();
header('Location: submitted.php');    
 }
}


?>