Я попытался использовать таблицу и нашел ее забавой, потому что мне намного легче организовать контент, а не просто использовать простые div, но теперь моя форма не будет работать, и я не уверен, в чем проблема.
HTML:
<?php
include('connect.php');
?>
<div class="signUpWrapper">
<h1 class="contentMainHeader" style="text-align: center"> Create a new Admin </h1>
<form method="post" name="registry" action="main index.php?page=thankyouPage">
<table class="signUpTable">
<tr style="height: 5em">
<td>
<div>
<h1 class="userHeader">Name</h1>
</div>
<div>
<input type="text" name="firstName" class="textbox" placeholder="First Name"/>  
<input type="text" name="lastName" class="textbox" placeholder="Last Name"/>
</div>
</td>
</tr>
<tr style="height: 5em">
<td>
<div>
<h1 class="userHeader">Email</h1>
</div>
<div>
<input type="text" name="email" class="textbox" placeholder="Email">  
<input type="text" name="email2" class="textbox" placeholder="Re-Enter Email"/>
</div>
</td>
</tr>
<tr style="height: 2em;">
<td>
<div>
<input type="text" name="altEmail" class="textbox" placeholder="Alternate Email">  
</div>
</td>
</tr>
<tr style="height: 5em">
<td>
<div>
<h1 class="userHeader">Password</h1>
</div>
<div>
<input type="text" name="password" class="textbox" placeholder="Password"/>  
<input type="text" name="password2" class="textbox" placeholder="Re-Enter Password"/>
</div>
</td>
</tr>
<tr style="height: 5em">
<td>
<div>
<h1 class="userHeader">Birthday</h1>
</div>
<div>
<select name="month" class="dropDown">
<option selected>Select Month</option>
<option> January </option>
<option> February </option>
<option> March </option>
<option> April </option>
<option> May </option>
<option> June </option>
<option> July </option>
<option> August </option>
<option> September </option>
<option> October </option>
<option> November </option>
<option> December </option>
</select>
<input type="text" name="day" class="dateTextBox" placeholder="Day (dd)"/>  
<input type="text" name="year" class="dateTextBox" placeholder="Year (yyyy)"/>
</div>
</td>
</tr>
<tr style="height: 5em">
<td>
<div>
<h1 class="userHeader">Gender</h1>
</div>
<select name="gender" class="dropDown">
<option selected>Select Gender</option>
<option> Male </option>
<option> Female </option>
</select>
</td>
</tr>
<tr style="height: 5em">
<td>
<div>
<h1 class="userHeader">Phone Number</h1>
</div>
<div>
<input type="text" name="phoneNumber" class="textbox" placeholder="Phone Number">  
</div>
</td>
</tr>
<tr style="height: 8em"><td>
<input type="submit" value="Register" class="css_button">
</td>
</tr>
</table>
</form>
</div>
PHP:
<?php
#error_reporting(0);
$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];
$email = $_POST['email'];
$altEmail = $_POST['altEmail'];
$gender = $_POST['gender'];
$birthday = $_POST['month'] . "/" . $_POST['day'] . "/" . $_POST['year'];
$phoneNumber = $_POST['phoneNumber'];
$password = $_POST['password'];
$sql = "INSERT INTO 'admin' ('email', 'alternateEmail', 'firstName', 'lastName', 'password', 'DateOfBirth', 'Gender', 'phoneNumber') VALUES ('$email', '$altEmail','$firstName', '$lastName', '$password', '$birthday', '$gender', '$phoneNumber')";
$result = mysql_query($sql);
?>
Он перенаправляет на другой php файл, содержащий тот же PHP-код, но он не отправляет какие-либо данные в phpmyadmin.
Если ваша форма подчиняется самому себе, тогда атрибут действия не требуется. Однако в элементах select
формы отсутствуют несколько значений. Например,
<select name="month" class="dropDown">
<option selected>Select Month</option>
<option value="January"> January </option> <!--each option needs a value-->
Все параметры выбора должны иметь значение, или их результат в массиве POST будет пустым. Я бы порекомендовал добавить имя к вашей кнопке отправки:
<input type="submit" value="Register" name="Register" class="css_button" />
Это позволяет вам проверить, еще ли представлена форма:
<?php
#error_reporting(0);
if(isset($_POST['Register'])){
$_POST = mysql_real_escape_string($_POST); //protect yourself from SQL injection...
$country = $_POST['country'];
$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];
//etc...
Наконец, я считаю, что INSERT терпит неудачу, потому что вы назовёте столбец country
без соответствующей переменной $country
нужно вставить. Это дает вам 9 названных названий и всего 8 значений для вставки:
$sql = "INSERT INTO 'admin' ('email', 'alternateEmail', 'firstName', 'lastName', 'password', 'DateOfBirth', 'country', 'Gender', 'phoneNumber') VALUES ('$email', '$altEmail','$firstName', '$lastName', '$password', '$birthday', '$country', '$gender', '$phoneNumber')";
$result = mysql_query($sql);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
Я также не вижу вызов mysql_connect
любом месте, поэтому я надеюсь, что у вас есть соединение с базой данных где-нибудь?
Если вы хотите отправить значения на другую страницу. Вы должны определить действие формы
<form method="post" name="registry" action="Filepath">
Вот для деталей Форма, Действие
Если вы не определяете действие формы или Оставьте действие пустым. Форма отправляется на ту же страницу.
вы забыли тег действия, чтобы указать целевой скрипт php для получения данных
<form method="post" name="registry" action="yourpage.php">