Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вопрос по серверу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
mascot
Отправлено: 25 Октября, 2009 - 00:05:36
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Подскажите пожалуста, на хостах в инете обычно register_globals в php.ini стоит "on" или "off" ? Заранее спасибо!
 
 Top
Ch_chov
Отправлено: 25 Октября, 2009 - 06:59:36
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




По умолчанию register_globals = off (начиная с версии PHP 4.20).
Тем не менее у многих хостеров register_globals вкючена, вероятно, для совместимости со старыми скриптами.

Я обычно отключаю её в .htaccess
php_value register_globals 0
(Добавление)
Кстати в PHP6 register_globals вообще нет...
 
 Top
JustUserR
Отправлено: 25 Октября, 2009 - 12:11:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Ch_chov Да и еще в PHP6 нету safe mode так что многие клиенты хостингов порадуются Улыбка
И кстати уже есть PHP6-CGI версия?


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
mascot
Отправлено: 25 Октября, 2009 - 20:34:51
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




то есть мне придется при отправке данных из формы вручную присваивать полям переменные?
 
 Top
keysi_
Отправлено: 26 Октября, 2009 - 00:24:22
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2009  


Помог: 1 раз(а)




mascot пишет:
то есть мне придется при отправке данных из формы вручную присваивать полям переменные?


Ну регистр глобалс не просто так выключили, он представляет собой дыру в безопасности.
Я когда прекратил ими пользоваться взял за правила использовать переменные типа $_POST['var'] . Но вообще лучше задачу в студию, и вместе придумаем как лучше. Улыбка
 
 Top
mascot
Отправлено: 26 Октября, 2009 - 02:03:49
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Вот у меня есть такая примитивная форма для проверки пользователя:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?if(!isset($name)&& !isset($password))
  4.                 {
  5.                 //$name = $_REQUEST("name");
  6.                 //$password = $_REQUEST("password");
  7.                 // Посетитель должен ввести имя и пароль
  8.                 ?>
  9.                 <hl>Flease Log In</hl>
  10.                 This page is secret.
  11.                 <form method = post action = reg_fn.php>
  12.                 <table border = 1>
  13.                 <tr>
  14.                 <th> Username </th>
  15.                 <td> <input type = text name = name> </td>
  16.                 </tr>
  17.                 <tr>
  18.                 <th> Password </th>
  19.                 <td> <input type = password name = password> </td>
  20.                 </tr>
  21.                 <tr>
  22.                 <td colspan =2 align = center>
  23.                 <input type = submit value = Log In>
  24.                 </td>
  25.                 </tr>
  26.                 </table>
  27.                 </form>
  28.                
  29.                
  30.                
  31.                 <?
  32.                 }
  33.                
  34.                 else
  35.                 {
  36.                         // Подключиться к MySQL
  37.                         $mysql = mysql_connect( 'localhost', 'webauth' , 'webauth' );
  38.                         if ( !$mysql)
  39.                         {
  40.                         echo 'Cannot connect to database. ' ;
  41.                         exit;
  42.                         }
  43.                         // Выбрать соответствующую базу данных
  44.                          mysql_select_db ( $mysql ) ;
  45.                         //if (!$mysql)
  46.                         //{
  47.                         //echo 'Cannot select database.';
  48.                         //exit;
  49.                         //}
  50.                         // Запрос к базе данных, чтобы проверить,
  51.                         // существует ли соответствующая запись
  52.                         $query = "select count(*) from webauth.auth where
  53.                         user = ' $name ' and
  54.                         pass = ' $password' ;" ;
  55.                         $result = mysql_query ( $query ) ;
  56.                         //if (!$result)
  57.                         //{
  58.                         //echo 'Cannot run query.';
  59.                         //exit;
  60.                         //}
  61.                         $count = mysql_result ( $result, 0, 0 );
  62.                         if ( $count > 0 )
  63.                         {
  64.                         // Комбинация имени и пароля посетителя правильная
  65.                         echo "<hl>Here it is !</hl>" ;
  66.                         echo "I bet you are glad you can see this secret page.";
  67.                         }
  68.                         else
  69.                         {
  70.                         // Комбинация имени и пароля посетителя не правильная
  71.                         echo "<hl>Go Away ! </hl>" ;
  72.                         echo "You are not authorized to view this resource.";
  73.                         }


В книжке по РНР нашел вариант присвоения переменных (первые закомментенные строчки), но чет не работает)
 
 Top
movEAX
Отправлено: 26 Октября, 2009 - 06:42:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Сделай тут небольшие преобразования:
(!isset($name)&& !isset($password)) - (!isset($_POST['name'])&& !isset($_POST['password']))


Потом, где-нибудь после else extract($_POST) до отправления запроса к бд.
И еще, засовывать пароль в запрос не есть правильно... Сделай выборку по логину и уже из полученных данных вытягивай пароль и сравнивай его с введенным.


-----
армия.. самое убогое место
 
 Top
Stierus Супермодератор
Отправлено: 26 Октября, 2009 - 08:51:57
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Попробуй ввести
login: 1' /*
password: 1' */ OR '1' = '1
 
My status
 Top
JustUserR
Отправлено: 26 Октября, 2009 - 10:55:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




mascot пишет:
То есть мне придется при отправке данных из формы вручную присваивать полям переменные?
Помоему register globals не присваивал генерируемым формам значения автоматически а просто созлавал переменные с именами ключей из GET/POST
Если уж вы позарех хотите RG то вот примерный код который надо вставаить в начало программы
PHP:
скопировать код в буфер обмена
  1. foreach($_REQUEST as $key=>$value)
  2. {${"$key"}=$value;}
Но помните - я этого не говорил


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
mascot
Отправлено: 27 Октября, 2009 - 20:37:42
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




movEAX
Спасибо, вроде работает этот метод)

Stierus пишет:
Попробуй ввести
login: 1' /*
password: 1' */ OR '1' = '1


Немножко не понял, куда это ввести?
 
 Top
mascot
Отправлено: 27 Октября, 2009 - 22:58:28
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Подскажите пожалуста в чем ошибка:

PHP:
скопировать код в буфер обмена
  1. <?if(!isset($_POST['name'])&& !isset($_POST['password']))
  2.                 {
  3.                 ?>
  4.                 <hl>Flease Log In</hl>
  5.                 This page is secret.
  6.                 <form method = post action = reg_fn.php>
  7.                 <table border = 1>
  8.                 <tr>
  9.                 <th> Username </th>
  10.                 <td> <input type = text name = name> </td>
  11.                 </tr>
  12.                 <tr>
  13.                 <th> Password </th>
  14.                 <td> <input type = password name = password> </td>
  15.                 </tr>
  16.                 <tr>
  17.                 <td colspan =2 align = center>
  18.                 <input type = submit value = Log In>
  19.                 </td>
  20.                 </tr>
  21.                 </table>
  22.                 </form>
  23.                
  24.                
  25.                
  26.                 <?
  27.                 }
  28.                
  29.                 else
  30.                 {       extract($_POST);
  31.                         // Подключиться к MySQL
  32.                         $mysql = mysql_pconnect ( 'localhost', 'webauth' , 'webauth' );
  33.                         if ( !$mysql)
  34.                         {
  35.                         echo 'Cannot connect to database. ' ;
  36.                         exit;
  37.                         }
  38.                         // Выбрать соответствующую базу данных
  39.                          mysql_select_db ( $mysql ) ;
  40.                         // Запрос к базе данных, чтобы проверить,
  41.                         // существует ли соответствующая запись
  42.                         $query = "select * from webauth.auth where
  43.                         user = ' $name '" ;
  44.                         $result = mysql_query ( $query ) ;
  45.                         $i = mysql_num_rows($result);
  46.                         if (!$result)
  47.                         {
  48.                         echo 'Cannot run query.';
  49.                         exit;
  50.                         }
  51.                         $row = mysql_result($result, $i, "pass");
  52.                         if ($password = $row)
  53.                        
  54.                        
  55.                         {
  56.                         echo "<hl>Here it is !</hl>" ;
  57.                         echo "I bet you are glad you can see this secret page.";
  58.                         }
  59.                         else
  60.                         {
  61.                         // Комбинация имени и пароля посетителя не правильная
  62.                         echo "<hl>Go Away ! </hl>" ;
  63.                         echo "You are not authorized to view this resource.";
  64.                         }
  65.                 }
  66.                 ?>


Отправляю правильные данные из формы, а запрос из БД возвращается пустой, такую ошибку показывает:

Цитата:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 3 in Z:\home\localhost\www\myweb\auth\reg_fn.php on line 56
 
 Top
movEAX
Отправлено: 28 Октября, 2009 - 17:42:25
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Посмотри что mysql_error выдает.


-----
армия.. самое убогое место
 
 Top
mascot
Отправлено: 28 Октября, 2009 - 19:41:19
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




movEAX
Разобрался, пробелы лишние стояли в
PHP:
скопировать код в буфер обмена
  1. $query = "select * from webauth.auth where43.                   user = ' $name '" ;


Спасибо за помощь!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB