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 :: Опять sql :)

 PHP.SU

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


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

> Без описания
twelveee
Отправлено: 06 Марта, 2014 - 12:01:10
Post Id


Гость


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


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




Здравствуйте, в общем разобрался я с функциями) Только вот хотел бы отправить вам на проверку)

Есть файл dbconfig.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $dbhost = "localhost"; //Localhost
  3. $dbname = "test1"; // Имя БД
  4. $dbuser = "test1"; // Пользователь
  5. $dbpass = "password";  // Пароль
  6. $connect = mysql_connect($dbhost, $dbuser, $dbpass) or die("Ошибка MySQL: " . mysql_error());  
  7. mysql_select_db($dbname) or die("Ошибка MySQL: " . mysql_error());  
  8. $select = mysql_select_db($dbname, $connect);
  9.  
  10. $query = mysql_query("SELECT * FROM users", $connect);
  11. while ($data = mysql_fetch_row($query))
  12. {
  13. $content = $data[4];
  14. }
  15. ?>


И сама админка /admin/index.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require "../configs/dbconfig.php";
  3. require "../libs/Smarty.class.php";
  4. $smarty = new Smarty;
  5. if($content == 1){
  6. echo "Вы в админке";
  7. }
  8. else{
  9. header('Location: http://test1.ru/admin/auth.php');
  10. }
  11. ?>


$content = это переменная из смарти, в общем долго объяснять)
Смысл таков: Человек который заходит в админку, проверяется на флаг admin.
Если флаг 1 - он админ, и может зайти в панель управления.
Если флаг 0 - он перебрасывается на страницу авторизации.

В общем вопрос:
1) Как сделать форму авторизации (Проверку на админа при авторизации)
2) Как выделять отсюда $query = mysql_query("SELECT * FROM users", $connect);
только поле с логином $_SESSION['Username']

Заранее спасибо!
 
 Top
lastdays
Отправлено: 07 Марта, 2014 - 10:21:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013  


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




php форма авторизации -> google

session_start(); стоит поставить после <?php

Вы должны знать кому админ права даете, всех остальных просто убивайте exit;
без всяких перенаправлений. Кстати говоря, после
PHP:
скопировать код в буфер обмена
  1. header('Location: http://test1.ru/admin/auth.php');

обязательно вызывайте exit ;

и ещё пора подумать о mysqli и забыть о mysql , чисто дружеский совет примите во внимание . :P

(Отредактировано автором: 07 Марта, 2014 - 10:22:25)

 
 Top
twelveee
Отправлено: 07 Марта, 2014 - 10:42:39
Post Id


Гость


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


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




Спасибо за ответ, но я немного не понял)
Решил сделать так:
$usr = $_SESSION['Username'];
$query = mysql_query("SELECT * FROM users WHERE Username=$usr", $connect);

Но выдает ошибку mysql_fetch_row() expects parameter 1 to be resource, boolean given in ...

И кстати, в чем разница mysql и mysqli??
(Добавление)
Кстати, с ошибкой справился. Все из-за двойных ковычек) "" Нужно было ''
ну ладно, теперь просто не выводится, ошибок не показывает) ПРОСТО ПУСТОТА
PHP:
скопировать код в буфер обмена
  1. $usr = $_SESSION['Username'];
  2.         $query = mysql_query('SELECT * FROM `users` WHERE `Username`="$usr"', $connect);
  3. while ($data = mysql_fetch_row($query)){
  4. $content = $data[4];
  5.  
  6. }
 
 Top
lastdays
Отправлено: 07 Марта, 2014 - 11:05:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013  


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




mysql устарело.
mysqli - поддерживают, работает быстрее.
Аргумент?
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4. session_start();  // запустили сессию.
  5.  
  6. // предположим у нас есть форма ниже
  7. // передающая параметры по :
  8. // name
  9. // pass
  10.  
  11. $name = $_POST["name"]; // логин
  12. $pass = $_POST["pass"]; // пароль
  13.  
  14. // Если какие то данные пришли
  15. if ( isset($name) and isset(pass)  ) {
  16.  
  17. // мы считаем с таблицы юзеров
  18. $check = mysql_query("SELECT `user`,`pass` FROM `users` WHERE `user`='".$user."' and `pass`='".$pass."' LIMIT 1");
  19.  
  20. // если юзер существует в таблице и пароль подходит
  21. // только ТОГДА нужно записывать сессию.
  22. }
  23.  
  24. ?>
  25.  
  26.  


Я до конца разжевывать не стану.
Не поленитесь, идите в гугл и начните с изучения документации mysqli.
По сути ничего особо не изменится в плане кодинга.

На 2-м месте, я дал ответ выше ( есть готовые решения, где можно понять логику) и написать собственный вариант. ага ?Улыбка
 
 Top
twelveee
Отправлено: 07 Марта, 2014 - 11:22:04
Post Id


Гость


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


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




Спасибо за ответ)
Опять туплю..
Вот полный код:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $dbhost = "localhost"; //Localhost
  4. $dbname = "test1"; // Имя БД
  5. $dbuser = "test1"; // Пользователь
  6. $dbpass = "password";  // Пароль
  7. $connect = mysql_connect($dbhost, $dbuser, $dbpass) or die("Ошибка MySQL: " . mysql_error());  
  8. mysql_select_db($dbname) or die("Ошибка MySQL: " . mysql_error());  
  9. $select = mysql_select_db($dbname, $connect);
  10. $user = $_POST["Username"];
  11. $pass = $_POST["Password"];
  12. if ( isset($name) and isset($pass)  ) {
  13.  
  14.         $query = mysql_query("SELECT `Username`,`Password` FROM `users` WHERE `Username`='".$user."' and `Password`='".$pass."' LIMIT 1", $connect);
  15. while ($data = mysql_fetch_row($query)){
  16. $content = $data[4];
  17. }
  18. }
  19.  
  20. ?>
  21.  


В чем ошибка? Что нужно сделать?
$content - вывод в шаблон, смарти
 
 Top
lastdays
Отправлено: 07 Марта, 2014 - 11:25:07
Post Id



Частый гость


Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013  


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




Вам лень читать.
Мне лень отвечать.
На этом и разойдемся, увы.
 
 Top
twelveee
Отправлено: 07 Марта, 2014 - 11:43:19
Post Id


Гость


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


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




Что именно мне лень читать? На mysqli я этот скрипт переводить не буду, так как там уже много написано на mysql, да и пока не нуждаюсь в этом. Потом уже буду на mysqli писать, но задача стоит сделать на mysql, поэтому и спрашиваю, как?
 
 Top
twelveee
Отправлено: 08 Марта, 2014 - 08:37:40
Post Id


Гость


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


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




Тему клоз, проблемку решил. Спасибо Lastdays) Натолкнул на мысль)
 
 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