PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
foozzi
Отправлено: 02 Декабря, 2011 - 00:02:57
Посетитель
Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011
Откуда: rm -rf /
Помог: 0 раз(а)
Вот скрипт
PHP:
скопировать код в буфер обмена
<?
if ( ! isset ( $_POST [ 'submit' ] ) ) {
echo "<center><form action='./login.php' method=post>
<table width=200 border=1>
<tr height=30><td width=50 valign=center align=center><b>Login:</b></td><td width=50 valign=center align=center><input type=text name=login size=10></td></tr>
<tr height=30><td width=50 valign=center align=center><b>Password:</b></td><td width=50 valign=center align=center><input type=password name=pass size=10></td></tr>
</table><br>
<input type=submit name=submit value=Войти> <input type=reset value=Очистить></form>
</center>" ;
}
else
{
$_POST [ 'pass' ] = md5 ( $_POST [ 'pass' ] ) ; require_once "../core/config.php" ;
$query = mysql_query ( "SELECT '.PREFIX.'admins WHERE `login` = '$_POST[login] ' AND `password` = '$_POST[pass] '" ) ; {
$_SESSION [ 'login' ] = $_POST [ 'login' ] ;
$_SESSION [ 'status' ] = $r [ 'status' ] ;
echo "Вход выполнен успешно, сейчас вы будете автоматически перенаправлены на главную страницу." ;
echo "<meta http-equiv='refresh' content='3; URL=index.php'>" ;
} else echo "Неверный логин\пароль<br><a href='./login.php'>Назад</a>" ;
}
?>
вот что находится в таблице admins
Ввожу все правильно, пишет что не правильно...
в чем я ошибся?
-----90% ошибок находятся в полуметре от монитора...
foozzi
Отправлено: 02 Декабря, 2011 - 01:13:58
Посетитель
Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011
Откуда: rm -rf /
Помог: 0 раз(а)
соли там нет, запрос попробовал выше, тож самое.
вот как созадвал я таблицу
собственно вот весь установочник
PHP:
скопировать код в буфер обмена
<? require_once ( "../core/locale.php" ) ; ?>
<?PHP
#### Если файл lock есть, выходим из установки ####
?>
<?PHP
#### Вывод ошибок ####
#### Функция-инсталлятор ####
function install_gnub( ) {
include_once ( '../core/config.php' ) ;
if ( ! isset ( $tables [ PREFIX
. 'categories' ] ) ) //Если таблиц еще не существует {
#### Создаем табличку admins ####
id tinyint(4) NOT NULL auto_increment,
login tinytext NOT NULL,
password tinytext NOT NULL,
status enum("admin") NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 AUTO_INCREMENT=8;' ) or
die ( mysql_error ( ) ) ;
#### Создаем табличку config ####
site_name text NOT NULL,
quotes_num tinyint(4) default NULL
#### Создаем табличку logs ####
id tinyint(4) NOT NULL auto_increment,
qid tinyint(4) NOT NULL,
ip tinytext NOT NULL,
rating enum("plus","minus") default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 AUTO_INCREMENT=39;' ) or
die ( mysql_error ( ) ) ;
#### Создаем табличку quotes ####
id tinyint(4) NOT NULL auto_increment,
moderator tinytext NOT NULL,
date tinytext NOT NULL,
rating tinyint(4) NOT NULL,
content text,
status enum("checked","unchecked") NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;' ) or
die ( mysql_error ( ) ) ;
#### Заносим данные админа в таблицу admins ####
$name = @ $_REQUEST [ 'name' ] ;
if ( $name == '' ) $name = $login ;
login = "' . $login . '",
status = "admin",
#### Ставим блокировку на повторную установку ####
$lockt = 'lock' ;
$lock = fopen ( '../core/lock' , "w" ) ; require_once ( "../core/locale.php" ) ;
echo $locale [ 'i9' ] ; // Вывод сообщения об удачной установке :)
}
else
{
echo $locale [ 'i10' ] ; // Вывод сообщение об не удачной установке :(
}
}
?>
<?PHP
#### Если кнопка "Поехали" в форме нажата, заполняем массив ####
if ( isset ( $_REQUEST [ 'install' ] ) ) {
#### Заполняем массив настроек тем, что пришло из формы ####
$config [ 'login' ] = $_REQUEST [ 'login' ] ;
$config [ 'pass' ] = $_REQUEST [ 'pass' ] ;
$config [ 'servdb' ] = $_REQUEST [ 'servdb' ] ;
$config [ 'userdb' ] = $_REQUEST [ 'userdb' ] ;
$config [ 'passwd' ] = $_REQUEST [ 'passwd' ] ;
$config [ 'namedb' ] = $_REQUEST [ 'namedb' ] ;
$config [ 'PREFIX' ] = $_REQUEST [ 'prefix' ] ;
#### Берем шаблон config.php ####
#### обходим в цикле, заменяя части шаблона на элементы конф. массива ####
foreach ( $config as $key => $value ) $config_tmpl = str_replace ( "<%$key %>" , $value , $config_tmpl ) ; $cfg = fopen ( '../core/config.php' , "w" ) ; #### Запуск функции установки ####
install_gnub( ) ;
}
?>
<center>
<form action="./install.php" method="post" >
<? print_r ( $locale [ 'i1' ] ) ; ?> <br><input type="text" name="userdb" value="root" /><br>
<? print_r ( $locale [ 'i2' ] ) ; ?> <br><input type="text" name="namedb" value="gnub" /><br>
<? print_r ( $locale [ 'i3' ] ) ; ?> <br><input type="text" name="passwd" value="passwd" /><br>
<? print_r ( $locale [ 'i4' ] ) ; ?> <br><input type="text" name="servdb" value="localhost" /><br>
<? print_r ( $locale [ 'i5' ] ) ; ?> <br><input type="text" name="prefix" value="gnub_" /><br>
<? print_r ( $locale [ 'i7' ] ) ; ?> <br><input type="text" name="login" value="admin" /><br>
<? print_r ( $locale [ 'i8' ] ) ; ?> <br><input type="text" name="pass" value="pass" /><br>
<input type="submit" name="install" value="Поехали" /><br>
</form>
</center>
(Отредактировано автором: 02 Декабря, 2011 - 01:40:12)
-----90% ошибок находятся в полуметре от монитора...
foozzi
Отправлено: 02 Декабря, 2011 - 03:26:32
Посетитель
Покинул форум
Сообщений всего: 283
Дата рег-ции: Май 2011
Откуда: rm -rf /
Помог: 0 раз(а)
Вычислил траблу, запрос был не виноват
CODE (
SQL ):
скопировать код в буфер обмена
$query = mysql_query( "SELECT * FROM '.PREFIX.'`admins` WHERE `login` = '$_POST[login]' AND `password` = '$_POST[passwd]'" ) ;
все дело было в константе PREFIX , когда я прописал полное название базы с префиксом, все заработало.
а теперь вопрос, как мне константу префикса вставить в запрос?
-----90% ошибок находятся в полуметре от монитора...
filkeith
Отправлено: 02 Декабря, 2011 - 08:14:14
Гость
Покинул форум
Сообщений всего: 112
Дата рег-ции: Июль 2011
Помог: 2 раз(а)
foozzi пишет: как мне константу префикса вставить в запрос?
мб я не все посмотрел но разве у переменных не должно быть значка
$ доллара перед именем ?
т.е.
Мелкий
Отправлено: 02 Декабря, 2011 - 08:15:56
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009
Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
foozzi , подсветка форума намекает.
(Добавление)
filkeith пишет: мб я не все посмотрел но разве у переменных не должно быть значка $ доллара перед именем ?
Переменная != константа.
filkeith
Отправлено: 02 Декабря, 2011 - 08:20:39
Гость
Покинул форум
Сообщений всего: 112
Дата рег-ции: Июль 2011
Помог: 2 раз(а)
Мелкий пишет: Переменная != константа.
Ясно, не всё просмотрел
тогда мб не хватает точек раз строка
Panoptik
Отправлено: 02 Декабря, 2011 - 08:44:08
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011
Откуда: Одесса, Украина
Помог: 131 раз(а)
так точно не получится, у вас константа в строке интерпретируется как обычное слово. вообще пробуйте вывести значение константы и строку квери перед запросом и посмотрите что туда попадает
PHP:
скопировать код в буфер обмена
//..... php_code ....
echo PREFIX;
echo 'SELECT * FROM `' . PREFIX. 'admins` WHERE `login` = \'' . $_POST [ login] . '\' AND `password` = \'' . $_POST [ passwd] . '\';'
и вы опять поубирали кавычки вокруг строковых значений, а это к добру не приведет.
попробуйте вывести результат. если визуально запрос вроде правильный, выполните его в phpmyadmin или непосредственно в консоли mysql
и вообще выводите echo mysql_error() , мускул сам подскажет что не так, если допущена ошибка
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB