Почему, когда я добавляю SESSION_START в свое кодирование, он не работает.
после того как я добавлю начало сеанса на свою индексную страницу когда я нажму свой логин buttuon он останется на моей странице входа и не перейдет на мой indexpage
ПОЖАЛУЙСТА, ПОМОГИТЕ МНЕ
Что я уже пробовал:
это мой код loginpage
<title>Login @import url("css/styles.css"); <center> <div class="container"> <div class="container-fluid"> <div class="b"> <h1>RB COUNSELING</h1> </div> <h2>Welcome to RB Counseling</h2> <p> Not yet a member?<a href="home.php">Sign Up</a></p> <table border="1" width="300" height="150"><tbody><tr> <td>Username:</td> <td></td></tr><tr> <td>Password</td> <td></td></tr><tr> <td colspan="5" align="center"></td></tr></tbody></table> </div></div></center> <?php session_start(); mysql_connect("localhost","root","") or die (mysql_error()); mysql_select_db("registration") or die (mysql_error()); if (isset($_POST['Login'])) { $username=$_POST ['name']; $pass=$_POST ['password']; if($username=='') { echo "alert('Please enter the username')"; exit(); } if($pass=='') { echo "alert('Please enter the password')"; exit(); } else{ $query='SELECT * FROM `user` where `username`="'.$username.'" and `password`="'.$pass.'"'; $r = mysql_query($query); if (mysql_num_rows ($r) > 0){ $_SESSION['username'] = $username; header("location:index.php"); }else{ echo 'your password and username do not match'; } } } ?>
это мой код indexpage
<!doctype html> *{margin:0px; padding:0px;} #main{border:1px solid black; width:450px; height:500px; margin:24px auto;} #message_area{width:98%; border:1px solid blue; height:440px;} <?Php session_start(); if(isset($_SESSION['username'])){ echo 'Welcome '.$_SESSION['username']; echo '<a href="logout.php">Log out</a><br>'; }else{ header("location:login1.php"); } ?> <div id="main"> <div id="message_area"> </div> <?Php mysql_connect("localhost","root","") or die (mysql_error()); mysql_select_db("registration") or die (mysql_error()); if(isset($_POST['submit'])){ $message =$_POST['message']; $query='INSERT INTO `message` (`id`,`message`,`username`) VALUES ("","'.$message.'","'.$_SESSION['username'].'")'; if(mysql_query($query)){ echo '<h4 style="color: red">'.$_SESSION['username'].'</h4>'; echo '<p>'.$message.'</p>'; } } ?> </div>
ZurdoDev
Я не занимаюсь php, но от http://php.net/manual/en/function.session-start.php, вызов session_start запустит новый сеанс. Я предполагаю, что вы очищаете регистрационную информацию, создавая новый сеанс после этого факта.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
PHP: SQL-инъекция - руководство пользователя[^]
РНР: Подготовленные инструкции и хранимые процедуры - руководство пользователя[^]
Richard Deeming
Кроме того, вы храните пароли в виде обычного текста. Не делай этого!
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]
PHP даже имеет встроенные функции, которые помогут вам сделать все правильно:
PHP: password_hash[^]
РНР: функцию password_verify[^]