`Я пытаюсь ввести данные в базу данных из регистрационной формы, но кажется, что она не работает, и я думаю, что сделал правильную кодировку. Я не уверен, где я ошибся. Я читаю код по коду, и вся база данных, которую я создал, следовала.
<form method='post' action='login.php'> <table width='400' border='5' align='CENTER'> <tr> <td><h1>Registration</h1></td> </tr> <tr> <td>User Name:</td> <td><input type='text' name='name'/></td> </tr> <tr> <td>Password:</td> <td><input type='password' name='pass'/></td> </tr> <tr> <td>Email:</td> <td><input type='text' name='email'/></td> </tr> <tr> <td><input type='submit' name='register' value='register'/></td> </tr> </table> </form>
<?php $connect=mysql_connect("localhost","root",""); $db_selected = mysql_select_db("users_db", $connect); if(isset($_POST['submit'])){ $users_name = $_POST['name']; $users_pass = $_POST['pass']; $users_email = $_POST['email']; if($users_name==''){ echo "<script>alert('Please enter your Username')</script>"; exit(); } if($users_pass==''){ echo "<script>alert('Please enter your password')</script>"; exit(); } if($users_email==''){ echo "<script>alert('Please enter your email')</script>"; exit(); } $check_email="select*from users where users_email='$users_email'"; $run = mysql_query($check_email) or die(mysql_error()); if(mysql_num_rows($run)>0){ echo"<script>alert('Email $users_email is already exist in our databse, please try another one')</script>"; exit(); } $query = "insert into users (users_name,users_pass,users_email) values(' $users_name','$users_pass','$users_email')"; { $result = mysql_query($query) or die(mysql_error()); } echo"<script>alert window.open('','_self')</script>"; } ?>
Измените начальные задания на:
$users_name = mysql_real_escape_string($_POST['name']); $users_pass = mysql_real_escape_string($_POST['pass']); $users_email = mysql_real_escape_string($_POST['email']);
чтобы избежать проблем со специальными символами в полях, а также для защиты от SQL-инъекций.
Измените запрос на ввод:
$query = "insert into users (users_name,users_pass,users_email) values('$users_name','$users_pass','$users_email')";
У вас была $users_name
и пробелы перед $users_name
, поэтому они вставлялись в базу данных.