Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите пожалуйста)

72K
09 сентября 2011 года
purposeful
2 / / 03.07.2011
я только изучаю php и часто встречаюсь с ошибками) вот обычная проверка на авторизацию) почему-то выдает ошибку Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in Z:\home\localhost\www\auth\mysql.php on line 15

<? //подключиться к MySQL
$mysql=mysql_pconnect("localhost", "root", "");
if(!$mysql) die("не могу подключиться к mysql");
$mysql=mysql_select_db('auth');
if(!$mysql) die("не могу подключиться к базе данных");
$query="select * from auth where name='$_POST['name']' and pass='$_POST['pass']';" ; //здесь выдает ошибку
$result=mysql_query($query);
if(!$result) die("не могу запустить запрос");
for($i=0; $i<count($result); $i++)
echo $result[$i];
$count = mysql_result( $result, 0, 0 );
if ( $count > 0 )
{
// Комбинация имени и пароля посетителя правильная
echo "<h1>Here it is !</h1>" ;
echo "Text.";
}
else
{
// Комбинация имени и пароля посетителя не правильная
echo "<h1>Go Away ! </h1>" ;
echo "You are not authorized to view this resource.";
}
?>
20K
09 сентября 2011 года
Finder
37 / / 06.05.2007
Неэкранированые данные и лучше с оператором конкатенации, будет понятнее.
Вот так надо
$query="select * from auth where name='".mysql_real_escape_string($_POST['name'],$mysql)."' and pass='".mysql_real_escape_string($_POST['pass'],$mysql)."';";

А еще die лучше не используйте.
274
09 сентября 2011 года
Lone Wolf
1.3K / / 26.11.2006
1. Лучше так:
 
Код:
$mysql=mysql_pconnect("localhost", "root", "") or die("не могу подключиться к mysql");

И во всех остальных случаях аналогично.

2. По поводу ошибки... ассоциативные масивы нельзя так преобразовывать в строку
 
Код:
$query="select * from auth where name='".$_POST['name']."' and pass='".$_POST['pass']."'" ;

3. А пароль что в БД в чистом виде лежит? Не красиво
274
09 сентября 2011 года
Lone Wolf
1.3K / / 26.11.2006
Цитата: Finder
Неэкранированые данные и лучше с оператором конкатенации, будет понятнее.
Вот так надо
$query="select * from auth where name='".mysql_real_escape_string($_POST['name'],$mysql)."' and pass='".mysql_real_escape_string($_POST['pass'],$mysql)."';";

А еще die лучше не используйте.




Но-но. смотри внимательно что у него за переменная $mysql

271
09 сентября 2011 года
MrXaK
721 / / 31.12.2002
http://php.net/manual/en/language.types.string.php глава Variable parsing

правильно будет:
$query="select * from auth where name='{$_POST['name']}' and pass='{$_POST['pass']}';" ;
$query="select * from auth where name='$_POST[name]' and pass='$_POST[pass]';" ;
$query='select * from auth where name=\''.$_POST['name'].'\' and pass=\''.$_POST['pass'].'\';';

блин, пока напишешь, ссылки найдёшь - до тебя уже 3 поста написали)))
72K
09 сентября 2011 года
purposeful
2 / / 03.07.2011
Lone Wolf, спасибо за помощь) не знал что нельзя ассоциативный массив преобразовывать в строку) по поводу хранения паролей. конечно буду использовать какое-то шифрование, но это только знакомство с базами данных) поэтому код написан по-простому) спасибо всем!!!!
20K
09 сентября 2011 года
Finder
37 / / 06.05.2007
А да, ой не посмотрел, он зачемто затирает идентификатор соединения. Учитесь писать аккуратно сразу. Если в этом коде надо будет работать еще с одной базой данных, то придется его переписывать. Юзайте идентификатор соединения с базой данных, пожааааалуйста.
244
09 сентября 2011 года
UAS
2.0K / / 19.07.2006
Юзайте sprintf для формирования запроса. Код становится намного прозрачнее и прятнее.
271
09 сентября 2011 года
MrXaK
721 / / 31.12.2002
sprintf - хорошая идея до тех пор, пока не надо заботиться о скорости.. самое быстрое (в PHP) если не выводить - конкатенация строк в одинарных кавычках..
http://stackoverflow.com/questions/3316060/single-quotes-or-double-quotes-for-variable-concatenation
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог