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
Форумы портала PHP.SU :: Версия для печати :: Админка
Форумы портала PHP.SU » PHP » Программирование на PHP » Админка

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

1. D1ma - 24 Июля, 2010 - 16:37:19 - перейти к сообщению
Помогите пожалуйста с написанием админки.

Пока что вариант такой:

в таблице пользователей есть поле group , при авторизации, сессии "group" присваеваеться значение из поля "group"

в итоге if ($_SESSION['group'] == "admin") {

echo "Панель администратора";
}

если кто сталкивался или знает вариант по лучше помогите пожалуйста.
2. Реф - 24 Июля, 2010 - 17:40:41 - перейти к сообщению
как минимум в условии присваивание на сравнение замени =)
3. Arch-Web - 24 Июля, 2010 - 17:52:51 - перейти к сообщению
Вам надо побольше практики и мануалов =)

PHP:
скопировать код в буфер обмена
  1. class cp {
  2.    privat  $status = false;
  3. function getStatus(){ return $this->status; }
  4.   function logaut(){
  5.       global $_GET,$_COOKIE;
  6.       if(isset($_GET['logaut'])){
  7.           setcookie("_cp","");
  8. // тут конект к мускулу
  9.           $id = $_COOKIE['cp'];
  10.           $result = mysqli_query($mysql,"DELETE FROM `cp` WHERE `id`='{$id}' ");
  11.         @header("Location: /");
  12.         die("Reload Page.");
  13.       }
  14.   }
  15.   function authentication(){
  16.        global $_POST;
  17.        if(isset($_POST['cp_inp'])){
  18.           $login = $_POST['cp_login'];
  19.           $pass = $_POST['cp_pass'];
  20. // Конект к базе
  21.           $cp = mysqli_query($mysql,"SELECT COUNT(*) FROM `user` WHERE `login`='{$login}' AND `password`='{$pass}' ");
  22.           $_cp = mysqli_fetch_row($cp);
  23.           if($_cp[0] == 0){print("Error User not found.") return;}
  24.           $ids = md5($login.time());
  25.           $timeOut = $time + 10800;
  26.           $add_ses = mysqli_query($mysql,"INSERT INTO `cp` values('{$ids}','{$login}','{$pass}','{$timeOut}')")
  27.           setcookie("_cp",$ids, $timeOut,"/");
  28.           @header("Location: /");
  29.           die("Reload Page.");
  30.        }
  31.   }
  32.  
  33.  function guard(){
  34.          global $_COOKIE;
  35.          if(!isset($_COOKIE['_cp'])){return;}
  36.          $cp = $_COOKIE['_cp'];
  37.          // Конект к мускулу
  38.          $test = mysqli_query($mysql,"SELECT COUNT(*) FROM `cp` WHERE `id`='{$cp}' ");
  39.          $_test = mysqli_fetch_row($test);
  40.          if($_test[0] == 0 ){return;}
  41.          $this->status = true;
  42.  }
  43.  
  44. }
  45.  
  46. $cp =new cp;
  47. $cp->logaut();
  48. $cp->guard();
  49. $cp->authentication();
  50.  
  51.  
  52. if($my->getStatus()){
  53. // тут сама админка
  54. } else {
  55. // Тут Форма для Авторизации
  56. }




Вот я написал пример ,он самый простой. учись =)
4. D1ma - 24 Июля, 2010 - 18:19:03 - перейти к сообщению
чтоб написать "нормальную" админку надо учить ООП ? Однако
5. Champion - 24 Июля, 2010 - 20:09:40 - перейти к сообщению
В общем-то нет. Чтобы написать админку, нужно иметь идею. А как ее реализовывать - сам решишь. Конечно ООП знать надо, чтобы понять, где оно нужно)
6. D1ma - 24 Июля, 2010 - 21:16:08 - перейти к сообщению
ну моя идея наверно банальна и не очень безопасна Улыбка
7. Arch-Web - 24 Июля, 2010 - 22:37:07 - перейти к сообщению
D1ma очень банальная и очень не безопасная =)))
8. D1m0n - 05 Октября, 2010 - 16:09:55 - перейти к сообщению
здравствуйте, при входе юзера с админской учеткой, пытаюсь его перенаправить по другому адресу, как-то вот так:
PHP:
скопировать код в буфер обмена
  1. if((strcmp($_REQUEST["number1"], 'admin') == 0) && (strcmp(md5($_REQUEST["number2"]), trim($a[1])) == 0))
  2.                 {
  3.                         $adm = $_REQUEST["number1"];
  4.                         @session_register("adm");
  5.                         @header("Location: adminko.php");
  6.                         exit;
  7.                 }

в итоге все остается на этой странице с таким Warning:
Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
9. AdMeen - 06 Октября, 2010 - 11:33:50 - перейти к сообщению
Arch-Web пишет:
D1ma очень банальная и очень не безопасная =)))


собственно, извиняюсь, если не увидел сразу. Но чем ваш вариант, принципиально отличается от варианта описанного топикстартером? Кроме того, что вы написали в "ООП стиле"?
10. Uchkuma - 06 Октября, 2010 - 13:29:37 - перейти к сообщению
D1m0n пишет:
в итоге все остается на этой странице с таким Warning:
А вы не пытались перевести данное сообщение на русский? Там все написано. И еще ваша проблема в том, что вы пытаетесь игнорировать ошибки, затыкая их собакой.
11. D1m0n - 06 Октября, 2010 - 15:50:30 - перейти к сообщению
Uchkuma,
ошибки там не было, был еще один Warning, которого я убрал собакой, со вторым решил иначе, приподнял код повыше и подправил, вроде заработалоУлыбка
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if((strcmp($_REQUEST["number1"], 'admin') == 0) && (strcmp(md5($_REQUEST["number2"]), trim($a[1])) == 0))
  3.                 {
  4.                         $_SESSION["number1"] = $_REQUEST["number1"];
  5.                         @header("Location: adminko.php");  //редирект
  6.                         exit;                              //выход
  7.                 }
  8.  

я перевёл это сообщение, единственное что я понял, что работать так как написано оно не будет.
12. Uchkuma - 06 Октября, 2010 - 18:21:09 - перейти к сообщению
Ну так а что за warning?
13. D1m0n - 06 Октября, 2010 - 19:24:26 - перейти к сообщению
Сейчас я убрал из кода последнюю собаку, ни каких warning уже нет. А тот что был перевода я не понял, решение знакомый подсказал.

Неизвестный: Ваш подлинник возможно полагается на побочный эффект сессии, который существовал до PHP 4.2.3. Доводим до вашего сведения, что расширение сессии не рассматривает глобальные переменные как источник данных, если register_globals не позволен. Вы можете повредить эту функциональность и это предупреждение, устанавливая сессию bug_compat_42 или сессию bug_compat_warn к прочь, соответственно. в Неизвестном на линии 0

что можно понять из этого хз.

 

Powered by ExBB FM 1.0 RC1