Я относительно новичок в кодировании вещей в php и ищу помощи в том, что я делаю неправильно. Я просматривал этот сайт последние несколько часов и не могу найти ничего, что конкретно отвечает на мой вопрос. Так что любая помощь будет принята с благодарностью.
Я пытаюсь сделать действительно простой вход на страницу, используя только пароль. Кажется, хотя я сделал что-то не так. Я сделал все живое на ftp-сервере и зашел на страницу входа.
ОБНОВЛЕНО: Ниже приведен окончательный код, который сработал для меня.
Вот код, который я поставил вверхуmembers.php«:
<?php
error_reporting(E_ALL);
session_start();
if(!isset($_SESSION['loggedin'])){
header("location:login2.php");
}
?>
Это отправляет меня вlogin.php«, к которому я могу добраться. Ниже, как выглядит мой код формы на этой странице:
<form name="form1" method="post" action="checklogin.php">
<label for="password">This Area Requires a Password:</label>
<input name="password" type="text" id="password">
<div id="lower">
<input type="submit" name="Submit" value="Login">
</div>
</form>
Когда кто-то вводит пароль (есть только один пароль), кнопка «отправить / войти» должна принять его »checklogin.php«который затем перенаправляет их на»members.php«. К сожалению, этого не происходит. Он просто очищает то, что я набрал в поле пароля, и остается на той же странице (login.php), и я не получаю никаких сообщений об ошибках.
Ниже приведен код «checklogin.php«:
<?php
error_reporting(E_ALL);
session_start();
$host="";
$username="";
$password="";
$db_name="";
$tbl_name="";
mysql_connect($host, $username, $password) or die("cannot connect");
mysql_select_db($db_name) or die("cannot select DB");
$mypassword=$_POST['password'];
$mypassword = stripslashes($mypassword);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
$_SESSION["loggedin"] = "true";
header("location:members2.php");
}
else {
echo "Wrong Password";
}
?>
Я взял информацию для входа в базу данных для безопасности своих сайтов, но я настроил таблицу в базе данных, которая выглядит следующим образом:
Изображение таблицы базы данных
Так что я не совсем уверен, что мне не хватает, но это, вероятно, потому что я довольно новичок в этом. Любая помощь будет принята с благодарностью и, конечно, если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать. Кроме того, если кто-то может предложить способ шифрования пароля, это было бы здорово. Спасибо.
Ваш подход либо правильный, либо неправильный, я просто исправляю его, чтобы он работал на вас.
Я надеюсь, что это сработает для вас, так как я проверил это на своем ПК.
Почему вы храните пароль в сессии?
Если вы хотите сохранить это сеанс, то на странице проверки login.php сделайте это
Start_session ();
$ _session [‘mypassword’] = $ _post [‘password’];
я не буду хранить пароль в сессии.
Вы можете сделать что-то вроде вместо
$ mypass = $ _post [‘password’];
Тогда создай. Переменная Session и установите ее только если пользователь аутентифицирован.
Если $ mypass был найден в базе данных, тогда выполните
Start_session ();
$ _session [‘authenticrized]] = true;
На остальных страницах вы можете перейти на самый верх, прежде чем мой эхо-оператор сделает это
Sesaion_start ();
If (! Isset ($ _ session [‘authenticrized]]) || ($ _session [‘ authenticrized]]! == true) {
Заголовок (‘location: login.php’);
Выход();
}
Вы можете просмотреть эту ссылку для учебника о том, как создать простую страницу входа
http://www.devarticles.com/c/a/PHP/PHP-for-Beginners-by-a-Beginners/
Извините за любые опечатки / формат, который я использую мой iPhone, поэтому трудно набрать