Как повторить информацию о моих пользователях на странице профиля
я пытаюсь создать страницу профиля пользователя,и то, что я хочу правильно, это как эхо-информация пользователей из базы данных для отображения на странице профиля, как только они войдут в систему со страницы входа, но проблема в том, что Эхо-идентификатор пользователя не определен.
Что я уже пробовал:
profile.php
<?php include('db.php'); ?> <!DOCTYPE html"> <html> <head> <title>Profile of an user</title> </head> <body> <div class="content"> <?php //We check if the users ID is defined if(isset($_GET['id'])) { $id = intval($_GET['id']); //We check if the user exists $sql = mysql_query('SELECT fst, las, uid, pass,sts,ocp FROM users WHERE id="'.$id.'"'); if(mysql_num_rows($sql)>0) { $res = mysql_fetch_array($sql); //We display the user datas ?> This is the profile of "<?php echo htmlentities($res['fst']); ?>" : <table style="width:500px;"> <tr> <td class="left"><h1><?php echo htmlentities($res['fst']); ?></h1> Email: <?php echo htmlentities($dnn['las']); ?><br /> This user joined the website on <?php echo htmlentities($res['uid']); ?></td> </tr> </table> <?php } else { echo 'This user dont exists.'; } } else { echo 'The user ID is not defined.'; } ?> </div> </body> </html>
login.php
<?php include 'db.php'; $uid = $_POST['uid']; $pass = $_POST['pass']; $sql = "SELECT * FROM users WHERE uid='$uid' AND pass='$pass'"; $result = mysqli_query($conn,$sql); if($row = mysqli_fetch_assoc($result)){ header("Location: profile.php"); }else{ echo "invalid username or password"; } ?>
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]
Richard Deeming
Также, никогда храните пароли в виде обычного текста.
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хеширование паролей - все правильно[^]