Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2015, 21:43   #1
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию вход в систему

Здравствуйте, подскажите пожалуйста как войти в систему под логином и паролем.
Вот страница регистрации(2.php), данные с этой страницы добавляются в базу данных(1.php):
2.php
Код HTML:
<html>
        <head>
            <title>регистрация</title>
<META content="text/html; charset=windows-1251" http-equiv=Content-Type>
 
            <link rel="stylesheet" type="text/css" href="style1.css">
            <script type="text/javascript" src="script.js"></script>
        </head>
        <body>
            <center>
            <img src="js6.gif"><br><br>
            
                <br><br>
<?
$db = mysql_connect( "localhost", "root", "");
mysql_select_db ('mydb',$db);
 
?> 
 
                <form name="forma1" action="1.php" method="POST">
                    <table  border="0" cellspacing="5" cellpadding="5">
                        <tr><td align="right" valign="top">Фамилия</td>
                            <td><input type="text" name="fam" size="25"></td>
                        </tr>
                        <tr><td align="right" valign="top">Имя</td>
                            <td><input type="text" name="name" size="25"></td>
                        </tr>
            
            <tr><td align="right" valign="top">Отчество</td>
                            <td><input type="text" name="otch" size="25"></td>
                        </tr>
                        <tr><td align="right" valign="top">e-mail</td>
                            <td><input type="text" name="mail" size="25"></td>
                        </tr>
            <tr><td align="right" valign="top">Логин</td>
                            <td><input type="text" name="login" size="25"></td>
                        </tr>
                        <tr><td align="right" valign="top" >Пароль</td>
                            <td><input type="password" name="password" size="25"></td>
                        </tr>
                        <tr><td align="right" valign="top" >Повтор пароля</td>
                            <td><input type="password" name="password1" size="25"></td>
                        </tr>
                        <tr><td align="right" valign="top" >Пол</td>
                            <td><input type="radio" name="sex" value="man" checked>мужской
                                <input type="radio" name="sex" value="woman"> женский
                            </td>
                        </tr>
                        
                        <tr><td align="right" valign="top">Ваши пожелания</td>
                            <td><textarea cols="30" rows="3" wrap="physical" name="pozhel"></textarea>
                            </td>
                        </tr>
                        <tr><td align="right" colspan="2">
                                <input type="submit" name="submit" value="Отправить" >
                                <input type="reset" name="reset" value="Очистить">
                            </td>
                        </tr>
                    </table>
                </form>
                <img src="js7.gif">
            </center>
       </body>
    </html>

1.php

PHP код:
<?php
 
$db 
mysql_connect"localhost""root""");
mysql_select_db ('mydb',$db);
 
$a=$_POST['fam'];
$b=$_POST['name'];
$c=$_POST['otch'];
$d=$_POST['mail'];
$e=$_POST['login'];
$f=$_POST['password'];
$g=$_POST['sex'];
$h=$_POST['pozhel'];
 
$insert_sql "INSERT INTO polzovateli (familiya,name,otchestvo,login,mail,parol,pol,pozhilaniya) VALUES ('".$a."','".$b."','".$c."','".$d."','".$e."','".$f."','".$g."','".$h."')";
 
mysql_query($insert_sql) or die(mysql_error());
echo 
"Ваши данные успешно отправлены";
 
?>

и вот страница входа(vhod.html):

Код HTML:
<html>
    <head>
<META content="text/html; charset=windows-1251" http-equiv=Content-Type>
<script typy="text/javascript" src="scriptvhod.js"></script>
    </head>
    <body >
<form name="form2">
Логин:<input type="text" name="name" size="25"><br><br>
Пароль:<input type="text" name="password2" size="25"><br><br>
<input type="button" name="button" value="Войти">
</form>
 
    </body>
</html>
fkty вне форума Ответить с цитированием
Старый 19.04.2015, 15:50   #2
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

Никто не знает?
fkty вне форума Ответить с цитированием
Старый 19.04.2015, 16:11   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

За 13 дней можно было бы и самому нагуглить.
Пример авторизации с помощью сессий
Andkorol вне форума Ответить с цитированием
Старый 19.04.2015, 16:48   #4
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

за это время много всего прочитала,но так и не разобралась как это сделать в моем случае.
Т.е. получается вот это у меня будет страница входа?:
PHP код:
<?
$db 
mysql_connect"localhost""root""");
mysql_select_db ('mydb',$db);

if (isset(
$_POST['login'])) {
  
$name=mysql_real_escape_string($_POST['login']);
  
$pass=mysql_real_escape_string($_POST['password']);
  
$query "SELECT * FROM polzovateli WHERE login='$name' AND parol='$pass'";
  
$res mysql_query($query) or trigger_error(mysql_error().$query);
  if (
$row mysql_fetch_assoc($res)) {
    
session_start();
    
$_SESSION['user_id'] = $row['id'];
    
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  }
  
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
  exit;
}
if (isset(
$_GET['action']) AND $_GET['action']=="logout") {
  
session_start();
  
session_destroy();
  
header("Location: http://".$_SERVER['HTTP_HOST']."/");
  exit;
}
if (isset(
$_REQUEST[session_name()])) session_start();
if (isset(
$_SESSION['user_id']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) return;
else {
?>
<form method="POST">
<input type="text" name="login"><br>
<input type="password" name="password"><br>
<input type="submit"><br>
</form>
<? 
}
exit;
?>
А что должно происходить после этого?
fkty вне форума Ответить с цитированием
Старый 19.04.2015, 17:07   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

По ссылке же русским по белому написано:
Цитата:
теперь достаточно написать во всех защищаемых скриптах строчку
require "auth.php";
Это скрипт авторизации.
Согласно этому скрипту, есть 3 состояния пользователя:
– пользователь НЕ авторизован
– пользователь авторизован
– пользователь хочет выйти из системы
Если пользователь НЕ авторизован – скрипт выводит форму авторизации, после заполнения формы – выполняет авторизацию пользователя.
Если пользователь указал в URL ?action=logout – скрипт осуществляет деавторизацию пользователя (выход из системы).
Если пользователь уже авторизован – скрипт просто завершает свою работу, «пропуская» пользователя на запрошенную им страницу.
Andkorol вне форума Ответить с цитированием
Старый 19.04.2015, 17:26   #6
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

Допустим я поместила этот код вместо страницы vhod.html (стал vhod.php):
Код:
<? 
$db = mysql_connect( "localhost", "root", ""); 
mysql_select_db ('mydb',$db); 

if (isset($_POST['login'])) { 
  $name=mysql_real_escape_string($_POST['login']); 
  $pass=mysql_real_escape_string($_POST['password']); 
  $query = "SELECT * FROM polzovateli WHERE login='$name' AND parol='$pass'"; 
  $res = mysql_query($query) or trigger_error(mysql_error().$query); 
  if ($row = mysql_fetch_assoc($res)) { 
    session_start(); 
    $_SESSION['user_id'] = $row['id']; 
    $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; 
  } 
  header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 
  exit; 
} 
if (isset($_GET['action']) AND $_GET['action']=="logout") { 
  session_start(); 
  session_destroy(); 
  header("Location: http://".$_SERVER['HTTP_HOST']."/"); 
  exit; 
} 
if (isset($_REQUEST[session_name()])) session_start(); 
if (isset($_SESSION['user_id']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) return; 
else { 
?> 
<form method="POST"> 
<input type="text" name="login"><br> 
<input type="password" name="password"><br> 
<input type="submit"><br> 
</form> 
<?  
} 
exit; 
?>

И добавила например на страницу опросов require "vhod.php";
Код:
<html>
	<head>
<META content="text/html; charset=windows-1251" http-equiv=Content-Type>
	</head>
	<body>
<?
require "vhod.php";
?>
		<font size=4 color="red">
			<h3><center>Выберите любой интересующий Вас опрос:</center></h3>
		</font>
		<ul>
         		<li><a href="opros1.html">опрос 1</a></li>
         		<li><a href="opros2.html">опрос 2</a></li>
         		<li><a href="opros3.html">опрос 3</a></li>
       		</ul>
	</body>
</html>
Правильно?
Я заполняю форму регистрации и отправляю в бд. Захожу на эту страницу авторизации, ввожу тот логин и пароль из формы регистрации, нажимаю на кнопку и ничего...
А как понять зашел пользователь или нет?ничего ведь не отображается..
fkty вне форума Ответить с цитированием
Старый 19.04.2015, 17:56   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от fkty Посмотреть сообщение
Правильно?
Нет – require 'vhod.php'; нужно разместить в самом начале скрипта, первой строкой.
Цитата:
Сообщение от fkty Посмотреть сообщение
Захожу на эту страницу авторизации, ввожу тот логин и пароль из формы регистрации, нажимаю на кнопку и ничего...
А как понять зашел пользователь или нет?ничего ведь не отображается..
Содержимое страницы опросов не отображается?
Вы же на страницу опросов заходите?
Andkorol вне форума Ответить с цитированием
Старый 19.04.2015, 18:04   #8
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

Сделала так:
Код:
<?
require ("vhod.php");
?>

<html>
	<head>
<META content="text/html; charset=windows-1251" http-equiv=Content-Type>
	</head>
	<body>
		<font size=4 color="red">
			<h3><center>Выберите любой интересующий Вас опрос:</center></h3>
		</font>
		<ul>
         		<li><a href="opros1.html">опрос 1</a></li>
         		<li><a href="opros2.html">опрос 2</a></li>
         		<li><a href="opros3.html">опрос 3</a></li>
       		</ul>
	</body>
</html>

На страницу опросов всегда заходит,независимо от того зарегистрирован или нет.
Я имею ввиду,что например выводилось бы сообщение что "спасибо что зашли Вася." и кнопка выхода,чтобы пользователь мог выйти. А на сайт с опросами, чтобы могли заходить только зарегистрированные пользователи.
fkty вне форума Ответить с цитированием
Старый 19.04.2015, 18:26   #9
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
Сообщение от fkty Посмотреть сообщение
Сделала так:
Код:
<?
require ("vhod.php");
?>

<html>
	<head>
<META content="text/html; charset=windows-1251" http-equiv=Content-Type>
	</head>
	<body>
		<font size=4 color="red">
			<h3><center>Выберите любой интересующий Вас опрос:</center></h3>
		</font>
		<ul>
         		<li><a href="opros1.html">опрос 1</a></li>
         		<li><a href="opros2.html">опрос 2</a></li>
         		<li><a href="opros3.html">опрос 3</a></li>
       		</ul>
	</body>
</html>

На страницу опросов всегда заходит,независимо от того зарегистрирован или нет.
Я имею ввиду,что например выводилось бы сообщение что "спасибо что зашли Вася." и кнопка выхода,чтобы пользователь мог выйти. А на сайт с опросами, чтобы могли заходить только зарегистрированные пользователи.

заплатите вам сделают, иначе бы сами все давно сделали, либо начните изучения с простого чтобы понять принципы работы
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 19.04.2015, 18:45   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Добью, раз начал
vhod.php:
PHP код:
<?php
$db 
mysql_connect"localhost""root"""); 
mysql_select_db ('mydb'); 

if (isset(
$_POST['login'])) { 
  
$name=mysql_real_escape_string($_POST['login']); 
  
$pass=mysql_real_escape_string($_POST['password']); 
  
$query "SELECT * FROM polzovateli WHERE login='$name' AND parol='$pass'"
  
$res mysql_query($query) or trigger_error(mysql_error().$query); 
  if (
$row mysql_fetch_assoc($res)) { 
    
session_start(); 
    
$_SESSION['user_id'] = $row['id']; 
    
$_SESSION['user_login'] = $row['login'];
    
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; 
  } 
  
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 
  exit; 

if (isset(
$_GET['action']) AND $_GET['action']=="logout") { 
  
session_start(); 
  
session_destroy(); 
  
header("Location: http://".$_SERVER['HTTP_HOST']); 
  exit; 

session_start(); 
if (isset(
$_SESSION['user_id']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']){
  
$auth_message 'Спасибо, что зашли, ' $_SESSION['user_login'] . ' <a style="margin-left: 50px;" href="?action=logout">Выход</a>'
}
else {
?> 
<form method="POST"> 
<input type="text" name="login"><br> 
<input type="password" name="password"><br> 
<input type="submit"><br> 
</form> 
<?
  
exit;

?>
opros.php:
PHP код:
<?php 
require 'vhod.php';
?>
<html>
    <head>
    <META content="text/html; charset=windows-1251" http-equiv=Content-Type>
    </head>
    <body>
    <?php if(!empty($auth_message)): ?>
        <p>
            <h4><?=$auth_message?></h4>
        </p>
    <?php endif; ?>
        <font size=4 color="red">
            <h3><center>Выберите любой интересующий Вас опрос:</center></h3>
        </font>
        <ul>
                 <li><a href="opros1.html">опрос 1</a></li>
                 <li><a href="opros2.html">опрос 2</a></li>
                 <li><a href="opros3.html">опрос 3</a></li>
               </ul>
    </body>
</html>
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с входом в систему. Служба "Клиент групповой политики" препятствует входу в систему Илья Кийков Свободное общение 0 09.12.2013 21:02
Вход в БД VHomer БД в Delphi 12 12.06.2010 02:58
Вход limon PHP 4 14.01.2009 17:46
как из Delphi определить под какой учетной записью осуществлен вход в систему zetrix Безопасность, Шифрование 1 29.10.2006 11:14