Страницы: (20) 1 2 [3] 4 5 ... Последняя » ( Перейти к первому непрочитанному сообщению ) Reply to this topicStart new topicStart Poll

PHP & MySQL - ???

Шаман
Отправлено: Jun 25 2007, 03:24 PM
Quote Post


  Команда ЭйсВэб
*

Группа: Members
Сообщений: 435
Пользователь №: 936
Регистрация:
13-June 07



вот можешь написать рабочий вариан админки, скажем для добавления новостей

да и кстати судя по коду admin.php в случае неправильного пароля должно выйти сообщение "неправильный пароль", но этого не происходит


--------------------
user posted image
user posted image
user posted image
PMEmail PosterUsers WebsiteICQ
Top
Asid Storm
Отправлено: Jun 25 2007, 04:18 PM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 895
Пользователь №: 39
Регистрация:
27-August 06



Шаман

Писать будем через БД:

Создаюм папку /admin:
В ней файл:

index.php:

CODE
<html>
<head>
<title>Вход в Админ панель</title>
</head>
<body>
<form method='post' action='enter.php'>
<input type='text' value='' name='a_login'> => <input type='text' name='a_pass' value='Пароль'> => <input type='submit' value='==>'>
</form>
</body>
</html>


Теперь с БД:
1. Создать таблицу users: // Для возможности доступа к админке нескольких пользователей

CODE
CREATE TABLE `users` (
 `id` bigint(15) NOT NULL auto_increment,
 `login` varchar(255) NOT NULL default '0',
 `password` varchar(255) NOT NULL default '0',
 KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2;


И добавляем туда запись id=1 | login=admin | password=В md5

2. online

CODE
CREATE TABLE `online` (
 `id` bigint(15) NOT NULL auto_increment,
 `sid` varchar(255) NOT NULL default '0',
 `login` varchar(255) NOT NULL default '0',
 KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2;


Для перевода пароля в md5 (md5.php):

CODE
<?
$md5=md5($input);
print "$md5 - $input";

// Вызываеться набором в строке md5.php?input=пароль

?>


PS файл conf.php у Вас уже есть... Он находиться в корневом каталоге, не надо его перемещать в каталог /admin

файл enter.php:

CODE
<html>
<head>
<?
include("../conf.php");

mysql_connect($base,$user,$pass) or die();
mysql_select_db($db);

print "<title>Авторизация</title>";
print "</head>";
print "<body>";
$login = $_POST["a_login"];
$password = $_POST["a_pass"];
if(empty($login) || empty($password)){
print "
<center>
<fieldset style='width: 400px;'>
<legend>Ошибка</legend>
<center>В не ввели <u><b><i>логин</i></b></u> или <u><b><i>пароль</i></b></u>.

<a href='index.php'>На главную</a>
</center>
</fieldset>
</center>
";
die();
}
else {
$rand = rand(1,10000000);
$sid = md5($rand);

$insert_online = ("INSERT INTO `online`(login,sid) VALUES ('$login','$sid')");
$insert_online_ok = mysql_query($insert_online);

print "
<script>
location.href=view.php?sid=$sid;
</script>
";
}
?>
</body>
</html>


Теперь файл view.php

CODE
<?
include("../conf.php");

if(empty($sid)){
print "Неавторизирован сессия";
die();
}
$sid_check = mysql_query("SELECT * FROM `online` WHERE sid='$sid'");
$data  = mysql_fetch_array($sid_check);
if($data){
print "
<center>
<fieldset style='width: 400;'>
<legend>Ошибка</legend>
<center>
<b>Неавторизированная сессия

<a href='index.php'>На главную</a>
</center>
</fieldset>
</center>
";
}
else {
mysql_connect($base,$user,$pass) or die();
mysql_select_db($db);
if(empty($action)){
print "
<center>Редактировать меню</center>
";
$v_menus = mysql_query("SELECT mod, id, title FROM content");
while ($view_menus = mysql_fetch_row($v_menus)) {
print "
<a href='view.php?sid=$sid&action=red&id=$view_menus[1]'>$view_mewnus[2]</a>

";
}
}
else if($action==red){
if(empty($id)){
print "Не выбрано меню";
}
else {
if(empty($update)){
$show = mysql_query("SELECT * FROM content WHERE id='$id'");
$show_data  = mysql_fetch_array($show);

$mod = $show_data["mod"];
$title = $show_data["title"];
$text = $show_data["text"];
print "
<form method='post' action='view.php?sid=$sid&action=red&id=$id&update=1'>
<input type='text' name='mod' value='$mod'>

<input type='text' name='title' value='$title'>

<textarea name='text'>
$text
</textarea>
<input type='submit'>
</form>
";
}
else {
$update = "UPDATE content SET mod='$mod', text='$text', title='$title' WHERE id='$id';";
$update_data = mysql_query($update);
}
}
}
?>


Если что-то не равботает пиши... просто не проверял скрипт..
PMEmail PosterUsers WebsiteICQ
Top
Шаман
Отправлено: Jun 26 2007, 08:44 AM
Quote Post


  Команда ЭйсВэб
*

Группа: Members
Сообщений: 435
Пользователь №: 936
Регистрация:
13-June 07



почти всё рабаботает.....идут записи заходов, показывает ошибку в случае не введения пароля и логина, но ничего не происходит если ввести правильный или непраильный пароль, т.е. форма реагирует только на пустое поле, хотя при правильном входе сессия в базе прописывается


--------------------
user posted image
user posted image
user posted image
PMEmail PosterUsers WebsiteICQ
Top
Asid Storm
Отправлено: Jun 26 2007, 09:52 AM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 895
Пользователь №: 39
Регистрация:
27-August 06



Шаман
Измени код enter.php на:
CODE
<html>
<head>
<?
include("../conf.php");

mysql_connect($base,$user,$pass) or die();
mysql_select_db($db);

print "<title>Авторизация</title>";
print "</head>";
print "<body>";
$login = $_POST["a_login"];
$password = $_POST["a_pass"];
if(empty($login) || empty($password)){
print "
<center>
<fieldset style='width: 400px;'>
<legend>Ошибка</legend>
<center>Вы ввели неверный <b><i><u>пароль</u></i></b>.

<a href='index.php'>На главную</a>
</center>
</fieldset>
</center>
";
die();
}
else {

$pass_check = mysql_query("SELECT * FROM `users` WHERE login='$login'");
$pass_check_data  = mysql_fetch_array($pass_check);

$pass_from_db = $pass_check_data["password"];

$password_in_md5 = md5($password);


if($pass_from_db!=$password_in_md5){
print "
<center>
<fieldset style='width: 400px;'>
<legend>Ошибка</legend>
<center>В не ввели <u><b><i>логин</i></b></u> или <u><b><i>пароль</i></b></u>.

<a href='index.php'>На главную</a>
</center>
</fieldset>
</center>
";
die();
}
else {

$rand = rand(1,10000000);
$sid = md5($rand);

$insert_online = ("INSERT INTO `online`(login,sid) VALUES ('$login','$sid')");
$insert_online_ok = mysql_query($insert_online);

print "
<script>
location.href=view.php?sid=$sid;
</script>
";
}
}
?>
</body>
</html>
PMEmail PosterUsers WebsiteICQ
Top
Шаман
Отправлено: Jun 26 2007, 09:57 AM
Quote Post


  Команда ЭйсВэб
*

Группа: Members
Сообщений: 435
Пользователь №: 936
Регистрация:
13-June 07



а теперь он выдает что "вы не ввели логин или пароль", хотя он был введен


--------------------
user posted image
user posted image
user posted image
PMEmail PosterUsers WebsiteICQ
Top
Asid Storm
Отправлено: Jun 26 2007, 10:10 AM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 895
Пользователь №: 39
Регистрация:
27-August 06



Шаман
Блин... Я перепутал некоторе коды местами:
Попробуй так:
CODE
<html>
<head>
<?
include("../conf.php");

mysql_connect($base,$user,$pass) or die();
mysql_select_db($db);

print "<title>Авторизация</title>";
print "</head>";
print "<body>";
$login = $_POST["a_login"];
$password = $_POST["a_pass"];
if(empty($login) || empty($password)){
print "
<center>
<fieldset style='width: 400px;'>
<legend>Ошибка</legend>
<center>В не ввели <u><b><i>логин</i></b></u> или <u><b><i>пароль</i></b></u>.

<a href='index.php'>На главную</a>
</center>
</fieldset>
</center>
";
die();
}
else {

$pass_check = mysql_query("SELECT * FROM `users` WHERE login='$login'");
$pass_check_data  = mysql_fetch_array($pass_check);

$pass_from_db = $pass_check_data["password"];

$password_in_md5 = md5($password);


if($pass_from_db!=$password_in_md5){
print "
<center>
<fieldset style='width: 400px;'>
<legend>Ошибка</legend>
<center>Вы ввели неверный <b><i><u>пароль</u></i></b>.

<a href='index.php'>На главную</a>
</center>
</fieldset>
</center>
";
die();
}
else {

$rand = rand(1,10000000);
$sid = md5($rand);

$insert_online = ("INSERT INTO `online`(login,sid) VALUES ('$login','$sid')");
$insert_online_ok = mysql_query($insert_online);

print "
<script>
location.href=view.php?sid=$sid;
</script>
";
}
}
?>
</body>
</html>


ЗЫ А при всём верном заходит хоть?!
PMEmail PosterUsers WebsiteICQ
Top
Шаман
Отправлено: Jun 26 2007, 10:12 AM
Quote Post


  Команда ЭйсВэб
*

Группа: Members
Сообщений: 435
Пользователь №: 936
Регистрация:
13-June 07



ВСЕ РАВНО ТОЖЕ САМОЕ


--------------------
user posted image
user posted image
user posted image
PMEmail PosterUsers WebsiteICQ
Top
Asid Storm
Отправлено: Jun 26 2007, 10:18 AM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 895
Пользователь №: 39
Регистрация:
27-August 06



Шаман
Тогда незнаю (( Вроде всё прально написал.. [Пойду щас проверять]
PMEmail PosterUsers WebsiteICQ
Top
Шаман
Отправлено: Jun 26 2007, 10:20 AM
Quote Post


  Команда ЭйсВэб
*

Группа: Members
Сообщений: 435
Пользователь №: 936
Регистрация:
13-June 07



блин вру......он пишет что пароль неправильный, хотя я ввел правильный так что може что то с проверкой пароля?


--------------------
user posted image
user posted image
user posted image
PMEmail PosterUsers WebsiteICQ
Top
Asid Storm
Отправлено: Jun 26 2007, 10:30 AM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 895
Пользователь №: 39
Регистрация:
27-August 06



Шаман

В коде я ошибки не вижу (((
Аозможно Вы ввели пароль в БД без МД5???
PMEmail PosterUsers WebsiteICQ
Top

Topic OptionsСтраницы: (20) 1 2 [3] 4 5 ... Последняя » Reply to this topicStart new topicStart Poll

 



[ Script Execution time: 0.0202 ]   [ 10 queries used ]   [ GZIP выключен ]