如何在mysql中发布表单数据

时间:2015-01-28 21:49:37

标签: php mysql

目前我已经设置了4个变量,然后将其值存储到mysql中。这很好用。但是,我不想设置值,而是编写一行代码,从我的表单中获取这些值(在同一页面上)。我已将表单方法设置为POST并添加了特殊字符以帮助安全。有人可以请给我看一两行代码,所以我不必写=“John Doe”。请记住,我是一个非常新的

<?php

// Connect to the Database
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "topsecretDontTell";
$dbname = "gaming";
$connection = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);

// Show error if connection fails
if(mysqli_connect_errno()){ 
    die("Database connection failed: " .
        mysqli_connect_error() . 
        " (" . mysqli_connect_errno() .")"
        );
}
?>

<?php
// ordertbl
    $customer_name = "John Doe";
    $game_id = 3;
    $reservation_start = "2015-01-05";
    $requested_days = 1;

// removes single quotes (escapes strings)
    $customer_name = mysqli_real_escape_string($connection, $customer_name);

//add into ordertbl
    $query  = "INSERT INTO ordertbl (customer_name,game_id,reservation_start,requested_days) VALUES ('{$customer_name}',{$game_id},'{$reservation_start}', {$requested_days})";

//Run query and test if there was a query error  
 $result = mysqli_query($connection, $query);
 if (!$result) {
    die("Database query failed."); 
 }
?>

<?php    
//determine the name of the game via its id using a function    
function GameTitle ($game_id){
$message = "";
if ($gameid ==1){
    $message = "Fantasy World";
    }
    else if ($gameid ==2){
    $message = "Sir Wags A Lot";
    }
    else if ($gameid ==3){
    $message = "Take a Path";
    }
    else if ($gameid ==4){
    $message = "River Clean Up";
    }
    else if ($gameid ==5){
    $message = "PinBall";
    }
    else if ($gameid ==6){
    $message = "Ghost girl";
    }
    else if ($gameid ==7){
    $message = "Dress up";
    }
    else if ($gameid ==8){
    $message = "Where is my hat?";
    }
    else {
    $message = "Invalid ID";
    }
    return $message;
}
?> 

</body>
</html>
<!--Link to the style sheet-->
<link href="styles.css" rel="stylesheet" type="text/css">
</head>

<!--Create Header (logo, title and navigation bar)-->
<body>
<div id='main'>
    <div id='titleImage'><img title='Home' src='images/GLLogo.png' width='700' height='190' alt='Games Library Title' /></div>
    <div id='menu-wrapper'>
        <div id='menu'>
            <ul>
                <li><a href='index.html'>Home</a></li>
                <li class='current_page_item'><a href='#'>Reservations</a></li>
            </ul>
        </div>
    </div>

<!--Make the form-->
    <div class="form">
    <h1>Reservations</h1>

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
      <table width="755" border="3" cellpadding="6">

        <tr>
          <td width="195" align="right" bgcolor="#FF0000"><label for="customer_name">Name:</label></td>
          <td width="370"><input name="customer_name" autofocus type="text" id="customer_name" size="35" maxlength="90" required autocomplete="off" /></td>
         </tr>

        <tr>
          <td align="right" bgcolor="#FF0000"><label for="game_id">Game's ID:</label></td>
          <td><input name="game_id" type="number" id="game_id" size="35" maxlength="50" min="1" /></td>
         </tr>

        <tr>
            <td width="195" align="right" bgcolor="#FF0000"><button onClick="GameTitle(); return false">Search</button></td>
          <td><input name="Result" type="text" id="demo" size="35" maxlength="50" /></td>
        </tr>

        <tr>
          <td align="right" bgcolor="#FF0000"><label for="Loan">Number of Days you wish to borrow the Game</label></td>
          <td><select name="requested_days" id="requested_days">
            <option selected="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
          </select></td>
        </tr>

        <tr> <!--put date into value field to get a calendar-->
          <td align="right" bgcolor="#FF0000"><label for="reservation">Reservation Date:</label></td>
          <td><input id="reservation_start" input name="reservation_start" type="" value="" placeholder="YYYY/MM/DD" pattern="(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))" title="The date should be in the exact format: YYYY-MM-DD with leading zeros where necessary"/> 
        </tr>

        <tr>
          <td align="right" bgcolor="#FF0000"><label for="mysearch2">Enter your search string here : </label></td>
          <td><input {background-colour: #E5F5EF;} id="mysearch2" type="search" placeholder="search"size="35" maxlength="50"/>
        </tr>   

         <tr>
          <td align="right" bgcolor="#FF0000"><input type="reset" name="Reset" id="button" value="Reset Form" /></td>
          <td><input type="submit" name="button2" id="button2" value="Submit Form" /></td>
        </tr>
      </table>
    </form>
    </div>

</div>

</body>
</html>

<?php
// get rid of data in cache and close
    mysqli_close($connection);
?>

2 个答案:

答案 0 :(得分:2)

使用以下内容,从表单的<input name="customer_name"...元素中获取POST变量:

$customer_name=stripslashes($_POST['customer_name']);
$customer_name=mysqli_real_escape_string($connection,$_POST['customer_name']);

允许包含约翰O&#39; Reilly等撇号的名称。

另外,您有function GameTitle ($game_id),因此您最有可能使用function GameTitle ($gameid)

答案 1 :(得分:0)

你应该使用$ _POST。在该数组中是发布数据。例如:

$customer_name = $_POST['name'];