на моем сайте я получил firebase чат работает с именем + аутентификации PIN требуется после входа на сайт и открыть окно чата (здесь наиболее важные три метки на этом посту:значение MySQL в HTML форме
<div id='messagesDiv'></div>
<input type='hidden' id='nameInput' value=''>
<input type='text' id='messageInput' placeholder='Message'>
) Я хочу, чтобы значение id='nameInput'
было именем пользователя в базе данных sql. структура SQL является
Database:
"xxxx_usr"
User:
"xxxx_usr"
Host:
"Localhost"
Table:
"Users"
Table;
Users:
------------------------------
id | username | password |
1 | Name | ****** |
2 | Name2 | ****** |
------------------------------
и конец сценария входа в систему является
session_register("myusername");
session_register("mypassword");
header("location:sucsess.html");
так есть ли способ использовать этот
session.register("myusername")
изменить
<input type='hidden' id='nameInput' value=''>
значение для зарегистрированного имени пользователя php на двух страницах e arlier, скажем, имя, так что все сообщения чата, которые отправил пользователь, будут отправляться от имени.
и какой должен быть полный controll.php? теперь он выглядит как
после редактирования предложил он выглядит как
<?php
$host="localhost"; // Host name
$username="*******_usr"; // Mysql username
$password="*******"; // Mysql password
$db_name="*******_usr"; // Database name
$tbl_name="Users"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$myusername=$_POST['username'];
$mypassword=$_POST['password'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.
if (!isset ($_SESSION)) session_start();
$_SESSION["myusername"] = $username;
$_SESSION["mypassword"] = $password;
header("Location:sucsess.html");
}
else {
echo "Wrong Username or Password";
}
?>
becuase после редактирования я могу sucsess.html Хороший доступ без регистрации или это может быть выходом из системы кода, что это неправильно?
<?php
session_destroy();
?<
или код, который перенаправляет не авторизованных пользователей?
<?php
session_start();
if(!session_is_registred(myusername)) {
header("Location:index.html")
}
?>
Спасибо за ваш ответ
Использование параметризованных запросов, чтобы избежать инъекции SQL. Помимо использования mysqli или PDO, mysql_ * также устарел. Другой заголовок 'point ('Location: success.html'); L должен быть капиталом. ' – zkanoca
@ пользователь2818691 да, можете использовать. но у вас есть риски – zkanoca
У меня код, чтобы избежать инъекции mysql. могу ли я по-прежнему использовать мой код, чтобы проверить, что вход в систему и мой код выхода выглядит следующим образом: if logged in: ' php if (! session_is_registred (myusername)) {header (" Location: index.html "); ?> '(перенаправление неавторизованных пользователей) и выход из системы:' php session_start(); session_destroy(); ?> '? – user2818691