Я простую регистрацию с php & mysql и все выглядит отлично, но я не знаю, почему ничего не вставляется в базу данных & возникает ошибка. Вот мой полный код:Невозможно зарегистрировать нового пользователя через форму php
<?php
if (isset($_POST['submit'])){
if(isset($_POST['agreement'])=="checked"){
$username = $_POST['username'];
$email = $_POST['email'];
$gender = $_POST['gender'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$select = $_POST['slct1'];
if(!empty($username)){
if(strlen($username)>5){
$query = $con->query("SELECT * FROM admins WHERE username='$username'");
if(mysqli_num_rows($query) > 0){
echo "<p class='error'><code> The username that you have entered has been already registered!</code></p></br>";
}else{
if(!empty($email)){
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$query2 = $con->query("SELECT * FROM admins WHERE email='$email'");
if(mysqli_num_rows($query2) > 0){
echo "<p class='error'><code> The email that you have entered has been already added!</code></p></br>";
}else{
if(!empty($password)){
if (strlen($password)>10){
if ($password==$password2){
$register = "INSERT INTO admins username='$username',email='$email',gender='$gender',password='$password',adminlevel='$select'";
$register = mysqli_query($con, $register);
if ($register){
echo "<p class='success'><code> The admin registered successfully. He/she can now login to sitebook...</code></p></br>";
}else{
echo "<p class='error'><code> An error occured. Try again later!</code></p></br>";
}
}else{
echo "<p class='error'><code> Passwords do not match. Try again please!</code></p></br>";
}
}else{
echo "<p class='error'><code> The password should be more than 10 characters!</code></p></br>";
}
}else{
echo "<p class='error'><code> Don't forget to fill password field!</code></p></br>";
}
}
}else{
echo "<p class='error'><code> The email you have entered is not a valid one!</code></p></br>";
}
}else{
echo "<p class='error'><code> Don't forget to fill email field!</code></p></br>";
}
}
}else{
echo "<p class='error'><code> Your username must be more than 5 characters!</code></p></br>";
}
}else{
echo "<p class='error'><code> Don't forget to fill username field!</code></p></br>";
}
}else{
echo "<p class='error'><code> You need to check the agreement in order to continue!</code></p></br>";
}
}
?>
<!-- START OF DEFAULT WIZARD -->
<h4 class="subtitle2">Fill The Form Completely</h4>
<form class="stdform" method="POST" action="">
<div id="wizard" class="wizard">
<br />
<ul class="hormenu">
<li>
<a href="#wiz1step1">
<span class="h2">Step 1</span>
<span class="label">Basic Information</span>
</a>
</li>
<li>
<a href="#wiz1step2">
<span class="h2">Step 2</span>
<span class="label">Account Information</span>
</a>
</li>
<li>
<a href="#wiz1step3">
<span class="h2">Step 3</span>
<span class="label">Terms of Agreement</span>
</a>
</li>
</ul>
<div id="wiz1step1" class="formwiz" >
<h4 class="widgettitle">Step 1: Basic Information</h4>
<p >
<div class="par">
<label style="text-align:left;">Username</label>
<div class="input-prepend">
<span class="add-on">@</span>
<input name="username" type="text" placeholder="Username" id="prependedInput" class="span2" />
</div>
</div>
</p>
<p>
<label style="text-align:left;">Email</label>
<span class="field">
<input type="email" name="email" id="email" class="input-xxlarge" required/>
</span>
</p>
<p>
<label style="text-align:left;">Gender</label>
<span class="field">
<select name="gender" id="selection" class="uniformselect">
<option value="1">Male</option>
<option value="2">Female</option>
</select>
</span>
</p>
<p>
<label style="text-align:left;">Temorary Password</label>
<span class="field">
<input type="password" name="password" id="password" class="input-xxlarge" required/>
</span>
</p>
<p>
<label style="text-align:left;">Confirm Password</label>
<span class="field">
<input type="password" name="password2" id="password" class="input-xxlarge" required/>
</span>
</p>
</div><!--#wiz1step1-->
<div id="wiz1step2" class="formwiz">
<h4 class="widgettitle">Step 2: Account Information</h4>
<p>
<label style="text-align:left;">Which Kind Of These Types Your Admin Is:</label>
<span class="field">
<select id="slct1" name="slct1" onchange="populate(this.id,'slct2')" class="uniformselect" required>
<option value=""></option>
<option value="Adminstrator">Adminstrator</option>
<option value="ContentC">Content Creator</option>
<option value="Analyst">Analyst</option>
</select>
</span>
</p>
<p>
<label style="text-align:left;">Then Your Admin Can Be Able To:</label>
<span class="field">
<select style="max-width:90%;" disabled="disabled" id="slct2" name="slct2"></select>
</span>
</p>
</div><!--#wiz1step2-->
<div id="wiz1step3">
<h4 class="widgettitle">Step 3: Careful</h4>
<div class="par terms" style="padding: 0 20px;font-size:17px;">
<p>You can change the admin type later on in <i>all admins</i> section settings.</p>
<p><strong>Sitebook</strong> is not responsible for what your admins post on the site. This is on your risk so please take care of your site yourself! </p>
<p>Thanks...</p>
<p><input name="agreement" value="checked" type="checkbox" /> I agree with this</p>
</div>
</div><!--#wiz1step3-->
</div><!--#wizard-->
<button type="reset" class="btn">Reset Button</button>
<button name="submit" type="submit" class="btn btn-primary">Add Admin</button>
</form>
<!-- END OF DEFAULT WIZARD -->
Когда я пытаюсь отправить форму с правильной информацией, никаких ошибок PHP не приходит и только одно сообщение об ошибке, которое является An error occured. Try again later!
появляется (что я писал в строке 31)
Там может быть проблема, что данные не могут быть вставлены, но я этого не понимаю!
Это также мой админ инструкция таблица:
username varchar(16)
email varchar(255)
password varchar(255)
gender varchar(11)
adminlevel varchar(11)
Пожалуйста, если вы, как решить эту проблему, пожалуйста, дайте мне знать ...
Примечание: Я пропустил писать, как я подключите мою базу данных, потому что это уже хорошо!
Вы уязвимы для [SQL-инъекций] (http://bobby-tables.com), а вместо фиксированных (бесполезных) сообщений «проблема возникла», используйте DB ** TELL **, почему запросов не удалось: 'mysqli_error ($ con)' –
Для работы с защитой паролем воспользуйтесь встроенными функциями PHP (http://jayblanchard.net/proper_password_hashing_with_PHP.html). Если вы используете версию PHP менее 5.5, вы можете использовать 'password_hash()' [пакет совместимости] (https://github.com/ircmaxell/password_compat). –
12 уровней вложенных операторов 'if' - это боль для отладки. Попробуйте уменьшить количество уровней, и будет легче отладить ваш код. –