ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Простая защита на Php
  #1  
Старый 07.01.2008, 21:19
Аватар для Хелпер
Хелпер
Участник форума
Регистрация: 21.02.2007
Сообщений: 171
Провел на форуме:
849260

Репутация: 32
По умолчанию Простая защита на Php

оочень нужен скрипт PHP следующего характера.
Простая авторизация:
2 поля Логин пароль
Кнопка войти.
Проверяет данные через БД. (БД: таблица: user и pass)
Если введено верно: открывает данную страницу(которая защищена)
Если не верно: выводит сообщение: доступ закрыт и типа этого
Спасибо заранее

Последний раз редактировалось Хелпер; 07.01.2008 в 21:33..
 
Ответить с цитированием

  #2  
Старый 07.01.2008, 21:33
Аватар для Ch3ck
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

http://bozza.ru/?c=403&p=content
http://bozza.ru/?c=404&p=content
 
Ответить с цитированием

  #3  
Старый 07.01.2008, 21:35
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

[
PHP код:
<?php
    
include("header.php");
    
error_reporting(0);
    
session_start();

foreach(
$_POST as $x => $y)
{
            
$x[$y] = mysql_escape_string($x[$y]);
}
        
       
$query    mysql_query("SELECT `name`,`pass` FROM `users` WHERE `name`='".$_COOKIE['name']."' AND `pass`='".$_COOKIE['pwd']."'");
    if(
mysql_num_rows($query)) $reged 1;


    if(
$reged)
    {
        echo 
"Хм...разве вы уже не вошли?";
    }
    else
    {
        echo 
'<div align="center">
            <form method="post">
            <table>
                <tr>
                    <td>Логин</td>
                    <td><input type="text" value="" name="name"></td>
                </tr>
                <tr>
                    <td>Пароль</td>
                    <td><input type="password" value="" name="pass"></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" value="Войти" name="sub"></td>
                </tr>
            </table>
            </form>
            </div>'
;
    }

    if(
$_POST['sub'])
    {
        
$password md5($_POST['pass']);
        
$error '';

        if (!
get_magic_quotes_gpc())
        {
             
$_POST['name'] = mysql_escape_string($_POST['name']);
        }

        if(empty(
$_POST['name']) || empty($_POST['pass']))
        {
            
$error 'Вы не ввели логин или пароль';
        }

        if(
$error)
        {
            echo 
"<div align='center'><div class='error'>".$error."</div></div>";
        }
        else
        {
            
$query    "SELECT `name`, `pass` FROM `users` WHERE `name`='".$_POST['name']."' AND `pass`='".$password."'";
            
$result    mysql_query($query);
            if(
mysql_num_rows($result))
            {
                
$row mysql_fetch_array($result);
                
setcookie('name'$row['name'], time() + 86400 30 12);
                  
setcookie('pwd'$row['pass'], time() + 86400 30 12);
                echo 
"<div align='center'><div class='complete'>Вы успешно зашли</div></div>";
            }
            else
            {
                echo 
"<div align='center'><div class='error'>Логин или пароль не верен.</div></div>";
            }
        }
    }
?>
 
Ответить с цитированием

  #4  
Старый 07.01.2008, 21:40
Аватар для Хелпер
Хелпер
Участник форума
Регистрация: 21.02.2007
Сообщений: 171
Провел на форуме:
849260

Репутация: 32
По умолчанию

Цитата:
Сообщение от Isis  
...
ВЫ уж извените, но я совсем тупой. Поясните!

Последний раз редактировалось GreenBear; 07.01.2008 в 22:23..
 
Ответить с цитированием

  #5  
Старый 07.01.2008, 21:48
Аватар для .:EnoT:.
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

PHP код:
<?php

if(isset($_POST['go']))
{
    
$tlogin trim($_POST['login']);
    
$tpass trim($_POST['pass']);
    if(empty(
$tlogin) or empty($tpass))
    {
        echo
"Не заполнено поле логин или пароль";
    }
    else
    {
      
#тут можно замутить проверку на спецсимволы
      
$login $_POST['login'];
      
$pass $_POST['pass'];    
      
//$pass = md5($pass); можно и зашифровать
      
$query mysql_query("SELECT * FROM `users` WHERE `user` = '".$login."' and `pass` = '".$pass."'");
      if(
mysql_num_rows($query) == 0)
      {
            echo
"БЛА-БЛА-БЛА";
      }          
      else
      {
        
        
        
/*
        Твоя защищённая страница
        */
      
      
      
}

    }
}
else
{
    
?>    
    
    Введите логин и пароль:
    <form action method="post">
    <input type="text" name="login" />
    <input type="password" name="pass" />
    <input type="submit" name="go" /> 
    </form>
    
    <?php 
}    
?>
Типа такого, писал сходу поэтому не тестил, но по идее должно работать....плюс ко всему рекомендую использовать сессии или куки.
Вводимые данные не проверяются, используй mysql_real_escape_string() и htmlspecialchars() и пароль шифруй хотя бы в md5()
Удачи

Последний раз редактировалось .:EnoT:.; 07.01.2008 в 22:22..
 
Ответить с цитированием

  #6  
Старый 07.01.2008, 21:55
Аватар для Хелпер
Хелпер
Участник форума
Регистрация: 21.02.2007
Сообщений: 171
Провел на форуме:
849260

Репутация: 32
По умолчанию

В обоих случаях при зоходи на этот скрипт выводит следующие:
мой_логин@esoo.ru li-xkfJo мой_логин bZ62vg-S ykafxtaa
 
Ответить с цитированием

  #7  
Старый 07.01.2008, 22:17
Аватар для .:EnoT:.
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Вот подправил немного скрипт:
PHP код:
<?php
@session_start();
$dbhost "localhost";
#Имя пользователя БД
$dbuser "root";
#Пароль пользователя
$dbpass "";
#Имя БД
$dbname "db";
mysql_connect("$dbhost""$dbuser""$dbpass") or die("Неконнект");
mysql_select_db("$dbname") or die("Неконнект");


if(isset(
$_POST['go']))
{

    
$tlogin trim($_POST['login']);
    
$tpass trim($_POST['pass']);

    if(empty(
$tlogin) or empty($tpass))
    {
        echo
"Не заполнено поле логин или пароль";
    }
    else
    {
       
//$pass = md5($pass); можно и зашифровать
       
if (!get_magic_quotes_gpc())
       {
          
$login htmlspecialchars(mysql_escape_string($_POST['login']));
          
$pass htmlspecialchars(mysql_escape_string($_POST['pass']));
       }
       else
       {
          
$login htmlspecialchars($_POST['login']);
          
$pass htmlspecialchars($_POST['pass']);
       }

      
$query mysql_query("SELECT * FROM `users` WHERE `user` = '".$login."' and `pass` = '".$pass."'");
      if(
mysql_num_rows($query) == 0)
      {
            echo
"БЛА-БЛА-БЛА";
      }
      else
      {
        echo
"ПривеД";

        
/*
        Твоя защищённая страница
        */


      
}

    }
}
else
{
    
?>

    Введите логин и пароль:
    <form action method="post">
    <input type="text" name="login" /><br />
    <input type="password" name="pass" /><br />
    <input type="submit" name="go" />
    </form>

    <?php
}
?>
У меня всё прекрасно работает...банальный пример таблицы
Код:
CREATE TABLE `users` (
`id` int NOT NULL PRIMARY KEY AUTO_INCREMENT ,
`user` text NOT NULL ,
`pass` text NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET = cp1251

insert into `users` value(null, '123', '12345')
Логин 123, пасс 12345
Опять же пасс не стал шифровать.


З.Ы. Исис ну ты и намудрил)) Ему ж простой код надо.
И кстати откуда в твоём скрипте взялся header.php, он вроде такого не заказывал)))
 
Ответить с цитированием

  #8  
Старый 08.01.2008, 16:37
Аватар для SSB1981
SSB1981
Участник форума
Регистрация: 07.01.2008
Сообщений: 109
Провел на форуме:
214923

Репутация: 17
Отправить сообщение для SSB1981 с помощью ICQ
По умолчанию

Если надо могу скинуть скрипт, но БД в текстовом файле! (У меня с MySQL не получается подружиться...)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Что такое Php? PAPA212 Болталка 13 28.12.2007 20:44
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Пишем Php код, устойчивый к ошибкам k00p3r Чужие Статьи 0 10.07.2005 22:34
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ