PHP.SU

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

Страниц (13): « 1 [2] 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 187
Uchenik Отправлено: 02 Января, 2014 - 17:20:26 • Тема: Помогите победить массивы • Форум: Хранение данных, их вывод и обработка

Ответов: 18
Просмотров: 3600
возможно я не совсем точно объяснил ситуацию, но во втором случае, когда я передаю массив с индексами, индексы элементов одинаковые, и мне бы хотелось чтобы на выходе из функции связь между элементами не терялась, ну вот например если я передаю массив
$Menu[0]['name']='Главная';
$Menu[0]['link']='?page=home';
$Menu[1]['name']='О Нас';
$Menu[1]['link']='?page=about';
, в Вашем случае вернется массив
[0] => MENU.name=Главная
[1] => MENU.link=?page=home
[2] => MENU.name=О Нас
[3] => MENU.link=?page=about
а не
[0] => MENU.name=Главная
[0] => MENU.link=?page=home
[1] => MENU.name=О Нас
[1] => MENU.link=?page=about
в этом собственно и вся проблема я понимаю что сохранение имеющихся индексов невозможно без обёртывания массива в новый массив со стандартной нумерацией индексов, т.е. в результате мы получим массив в котором структура будет что-то типа
[индекс][ключ][ключ]=значение
Uchenik Отправлено: 02 Января, 2014 - 16:31:41 • Тема: Помогите победить массивы • Форум: Хранение данных, их вывод и обработка

Ответов: 18
Просмотров: 3600
Добрый вечер.
Хочу написать функцию, но никак не могу сообразить, дело вот в чем
функция принимает слово($var) и массив($array), затем создаёт них новый массив, ну например если передать в неё $var='HEAD'; и $array('Title'=>'Заголовок','Keyw'=>'ключевые,слова');
то функция вернёт
{HEAD.Title}='Заголовок';
{HEAD.Keyw}='ключевые слова';
Работает идеально, но если я передаю в неё массив, в формате
$array[0]['title']='Заголовок';
$array[0]['keyw']='ключевые слова';
функция возвращает не то что нужно, она вернёт что-то типа {HEAD.0}=Array('Title'='Заголовок','Keyw'=>'ключевые,слова');
Помогите переделать функцию для работы и с двумерными и с трёхмерными массивами
PHP:
скопировать код в буфер обмена
  1. function assign($var,$array)
  2. {
  3. foreach($array as $k=>$v)
  4.  {
  5.    if(!is_numeric($k))
  6.    {$newarray[count($newarray)]['{'.$var.'.'.$k.'}']=$v;}
  7.    else
  8.     {
  9.       foreach ($v as $key=>$value)
  10.         {}
  11.      }
  12.  }
  13.     print_r($newarray);
  14. }
  15. }
Uchenik Отправлено: 21 Октября, 2013 - 09:36:29 • Тема: Авторизация с использованием AD • Форум: Вопросы новичков

Ответов: 3
Просмотров: 877
В общем код переделал, получилось так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $ldap = ldap_connect(LDAP_HOST,LDAP_PORT) or $page['error'] = 'Не удалось найти сервер авторизации';
  3. ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
  4. ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
  5.  if(!empty($_POST['login'])&&(!empty($_POST['passw'])))//проверяем ввел ли пользователь логин и пароль
  6.     {
  7.        $bind = ldap_bind($ldap, $_POST['login'].LDAP_DOMAIN, $_POST['passw']);
  8.        if ($bind)
  9.           {
  10.             $_SESSION['login']=$_POST['login'];
  11.             header( 'refresh:0.5;' );
  12.           }
  13.       else
  14.          {echo 'Ошибка. Возможно неверный пароль.';}
  15.      }

Теперь не могу сделать 2 вещи:
1. избавиться от ошибки
Цитата:
Warning: ldap_bind(): Unable to bind to server: Invalid credentials in
Ошибка. Возможно неверный пароль.

Она возникает в случае если введены неправильные данные и в случае, если вошедший пользователь не администратор. Как разрешить авторизацию не только администраторам
2. Не могу найти материал, как получить по логину и паролю ФИО и группу вошедшего пользователя
Uchenik Отправлено: 18 Октября, 2013 - 12:11:16 • Тема: Авторизация с использованием AD • Форум: Вопросы новичков

Ответов: 3
Просмотров: 877
и что? никто не знает?
Uchenik Отправлено: 18 Октября, 2013 - 09:35:25 • Тема: Авторизация с использованием AD • Форум: Вопросы новичков

Ответов: 3
Просмотров: 877
Добрый день. Перерыл кучу сайтов, везде один и тот же код, который не работает так как нужно. В общем суть вот в чем, нужно сделать так чтобы пользователи могли авторизовываться используя свои аккаунты домена.
PHP:
скопировать код в буфер обмена
  1. define ('LDAP_HOST', 'dc-server');
  2. define ('LDAP_PORT', '389');
  3. define ('LDAP_PREFIX', 'dc=unit,dc=corp,dc=com');
  4. define ('LDAP_BASE', 'ou=Members,dc=unit,dc=corp,dc=com');
  5. define ('LDAP_FILTER', 'sAMAccountName=');
  6. define ('LDAP_DOMAIN', '@unit.corp.com');
  7.  
  8. if (!empty($_POST['login']) && !empty($_POST['password']))
  9.        {
  10.        $username = $_POST['login'];
  11.        $login = $_POST['login'].LDAP_DOMAIN;
  12.        $password = $_POST['password'];
  13.        $ldap = ldap_connect(LDAP_HOST,LDAP_PORT) or die("Cant connect to LDAP Server");
  14.        ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
  15.        if ($ldap)
  16.              {
  17.              $bind = ldap_bind($ldap,$login,$password);
  18.              if ($bind)
  19.                    {
  20.                    $result = ldap_search($ldap,LDAP_BASE,"(&(memberOf=".LDAP_PREFIX.")(".LDAP_FILTER.$username."))");
  21.                    $result_ent = ldap_get_entries($ldap,$result);
  22.              }
  23.              else
  24.                    {die('Вы ввели неправильный логин или пароль. попробуйте еще раз');}
  25.        }
  26.        if ($result_ent['count'] != 0)
  27.              {exit;}
  28.        else
  29.              {die('К сожалению, вам доступ закрыт');}
  30. }
  31.  

Если вводить неправильный пароль или всё правильно, но пользователь не администратор домена то выводится
Цитата:
ldap_bind(): Unable to bind to server: Invalid credentials
Вы ввели неправильный логин или пароль. попробуйте еще раз


а если ввести правильный логин и правильный пароль АДминистратора домена
Цитата:
К сожалению, вам доступ закрыт

я пробовал в коде указать какие логин и пароль нужно использовать для подключения к LDAP (логин и пароль пользователя с правами админа), но как тогда будет работать авторизация?
Ну т.е. я не понимаю, как сделать чтобы можно было идентифицировать кто именно зашёл на сайт
помогите. очень нужно.
Uchenik Отправлено: 26 Февраля, 2013 - 05:52:45 • Тема: Подскажите что не так • Форум: Работа с СУБД

Ответов: 9
Просмотров: 1438
Могу, потому-что это стандарт в моих скриптах $sql содержит строку самого запроса
$res всегда mysql_query($sql);
$myr всегда mysql_fetch_assoc($res);
именно из-за этого и возникла вся проблема, теперь стандарты пришлось чуть-чуть подправить, чтобы не уничтожать переменные каждый раз после использования (т.к. они в циклах, то это проблематично), теперь к этим именам добавлены ещё и имена скриптов, т.е. переменные теперь выглядят так:
краткое имя скрипта+стандартное имя переменной
Uchenik Отправлено: 25 Февраля, 2013 - 12:55:58 • Тема: Подскажите что не так • Форум: Работа с СУБД

Ответов: 9
Просмотров: 1438
Кстати, Мелкий, а это мысль.
А почему вдруг "совершенно дурацкое" имя?
да, во всех подключаемых скриптах переименовал переменные, теперь работает как часы, спасибо.
Интересно, раньше таких траблов не было, странно.
А что если я просто буду после каждого использования уничтожать саму переменную через unset, это исправит ситуацию?
Просто проект очень большой, скриптов много, неизвестно где ещё могут всплыть такие же переменные.
Uchenik Отправлено: 25 Февраля, 2013 - 12:42:55 • Тема: Подскажите что не так • Форум: Работа с СУБД

Ответов: 9
Просмотров: 1438
А я думал что while вызовет ошибку если предварительно не проверить, ну если запрос вернёт нулевой результат.
Проверил по-другому, не стал подключать, а просто сделал вывод
т.е. вместо require поставил echo
Выводит он как раз все записи правильно. а вот при подключении почему-то после первого прохода теряется.
Uchenik Отправлено: 25 Февраля, 2013 - 12:29:25 • Тема: Подскажите что не так • Форум: Работа с СУБД

Ответов: 9
Просмотров: 1438
Добрый день, вот написал скрипт. который должен пробежаться по таблице в БД, узнать какие модули включены и подключить их через require
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql = "SELECT `name`
  3.                    FROM " . $db['Modules'] . "
  4.                            WHERE registr='success'
  5.                            AND status='on'
  6.                            AND site='" . $_GET['site'] . "'
  7.                            OR site='All'";
  8.                 $res = mysqli_query($link,$sql);
  9.                 $count = mysqli_num_rows($res);
  10.                 if ($count>0)
  11.                  {
  12.                    while ($myr = mysqli_fetch_assoc($res))
  13.                     {require $myr['name'].'.inc.php';}
  14.                  }
  15.  

В результате подключается только тот скрипт, который стоит первый в таблице, а дальше скрипт начинает ругаться Undefined index: name
Uchenik Отправлено: 03 Февраля, 2013 - 13:50:00 • Тема: ЧПУ для чайника • Форум: Вопросы новичков

Ответов: 1
Просмотров: 81
Вот например у меня есть адрес
sitename.ru?lang=ru&site=video&page=camera
как мне сделать этот урл в формат sitename.ru/ru/video/camera
и как патом работать с этими урлами? ну как например узнать на какую страницу перешел юзер?
Uchenik Отправлено: 14 Сентября, 2012 - 14:00:15 • Тема: Подскажите, почему выскакивает ошибка? • Форум: SQL и Архитектура БД

Ответов: 5
Просмотров: 43
PHP:
скопировать код в буфер обмена
  1. if(mysql_connection($host,$user,$pass,$db) == true)
  2. {
  3.     $res=mysql_query("SELECT * FROM table");
  4.     if(mysql_num_rows($res) > 0)
  5.     {
  6.         while($myr=mysql_fetch_array($res))
  7.         {
  8.             c("listbox")->text .= $myr['Name']." ".$myr['Name2']." ".$myr['Name3']"\n";
  9.         }
  10.     }
  11.     mysql_close();
  12. }  


mysql_num_rows() expects parameter 1to be resource, boolean given
Uchenik Отправлено: 16 Мая, 2012 - 12:52:13 • Тема: Проблемы с кодировками • Форум: Работа с СУБД

Ответов: 8
Просмотров: 2920
Maxi забыл добавить:
Для того чтобы скрипт уж точно ничего лишнего не выдавал, нужно использовать UFT-8 без BOM в том же notepad++ =)
Uchenik Отправлено: 16 Мая, 2012 - 12:46:40 • Тема: Обработка и вывод информации из БД • Форум: Работа с СУБД

Ответов: 6
Просмотров: 1487
Да, я просто хочу научиться работать с массивами, поэтому и пытаюсь вытянуть всё одним запросом. Ну вот получил я ассоциативный массив, как мне теперь получить из него количество повторяющихся значений? Ну как например получить количество всех номеров Билайн в массиве?
Uchenik Отправлено: 16 Мая, 2012 - 12:11:16 • Тема: Обработка и вывод информации из БД • Форум: Работа с СУБД

Ответов: 6
Просмотров: 1487
А технически на сколько правильно закидывать базу данных таким количеством запросов?
1. Сколько всего записей в таблице
2. Сколько раз встречается оператор (3 оператора - 3 запроса)
3. Какие значения поля price существуют в БД
4. Сколько номеров конкретного оператора принадлежат к конкретной ценовой группе
5. Какие номеру существуют у конкретного оператора по конкретной цене.


и ещё штук 10 таких запросов.
Uchenik Отправлено: 16 Мая, 2012 - 12:00:56 • Тема: Обработка и вывод информации из БД • Форум: Работа с СУБД

Ответов: 6
Просмотров: 1487
Мне всё-таки интересно, ну допустим можно сделать так
PHP:
скопировать код в буфер обмена
  1. $sql="SELECT * FROM {table_name} WHERE `operator`='Beeline'";
  2. $res=mysql_query($sql);
  3. $count=mysql_num_rows($res);


а если я уже сделал вот так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql="SELECT * FROM {table_name}";
  3. $res=mysql_query($sql);
  4. $count=mysql_num_rows($res);
  5.  
  6.   if ($count>'0')
  7.      {
  8.        $myr=mysql_fetch_assoc($res);
  9.      }

Страниц (13): « 1 [2] 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB