Вопросы по PHP |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 7193-й день
![]() |
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
Вопросы по PHP |
| -RC- |
Пост
#281
|
|
Репутация: 424 ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 |
У тебя нет формы, соответственно submit
в форме каждое поле должно иметь name которое ты потом будешь присваивать через Get или Post причем лучше так if (!empty($_POST['search'])) $search = htmlspecialchars($_POST['search']); или другую проверку входящих переменных и выводеть лучше через if isset, а то будут warning, что переменные не определены |
| YoGi |
Пост
#282
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 435 С нами с: 21-March 08 |
форма есть :
<html> <head> <title></title> </head> <body> <div id="header"></div> <div id="content"> <h1>search:</h1> <p>введите имя:</p> <form action="scripts/search.php" method ="POST"> <fieldset> <label for="search" > search :</label> <input type = "text" name="search" size="200"/></br> </fieldset> </br> <fieldset class="center"> <input type = "submit" value="отправить" /> <input type = "reset" value="очистить" /> </fieldset> </form> </div> <div id="footer"></div> </body> </html> простенькая форма разобраться с механизмом поиска, потом проверок добавлю. |
| -RC- |
Пост
#283
|
|
Репутация: 424 ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 |
header ("Location: show_error.php");
|
| YoGi |
Пост
#284
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 435 С нами с: 21-March 08 |
хочу сделать авторизацию, что бы администратор имел доступ ко всем страницам, а обычные пользователи нет.
создал три таблицы: users:user_id,user_login,user_pass groups: id,name user_groups:users_id,groups_id в ней данные из первой и второй таблицы. далее идет login.php <? session_start(); // подключение к БД if(isset($_POST['submit'])) {$query = mysql_query("SELECT user_id, user_pass FROM users WHERE user_login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1"); $data = mysql_fetch_assoc($query); if($data['user_pass'] === md5(md5($_POST['password']))) { header('Location:\cards\cards_pr\scripts\bridge.php'); exit(); } else { print "Вы ввели неправильный логин/пароль"; } } ?> <form method="POST"> Логин <input name="login" type="text"><br> Пароль <input name="password" type="password"><br> <input name="submit" type="submit" value="Войти"> </form> ?> после того как пользователь залогинился он переходит на bridge.php <? // подключение к БД session_start(); $query = mysql_query("SELECT groups_id FROM user_groups WHERE users_id= mysql_real_escape_string($_SESSION['user_id'])"); $auto_gr = mysql_fetch_assoc($query); if($auto_gr['groups_id'] ==1){ //header('Location:\show_error.php'); print("123"); exit(); }else{ //header('Location:\show_all.php'); print("123"); exit(); } ?> где по идее должна проходить сверка id пользователя с группой, и если он относится к группе администратор, то получает доступ к одной странице, если он в группе пользователи, то перенаправляется на другую. проблема в том, что ничего из этого не работает. Подскажите в чем ошибка? спс p.s может в запросе ошибка? Сообщение отредактировал YoGi - Dec 24 2012, 16:22 |
| -RC- |
Пост
#285
|
|
Репутация: 424 ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 |
а не лучше ли при авторизации слздавать $_SESSION['role'], куда прописывать роль, админ или юзер.
if( !isset($_SESSION['authorized']) || $_SESSION['role'] != 'admin') или же вместо 'admin' integer переменную дальше твой код типо такого Сообщение отредактировал -RC- - Dec 24 2012, 13:52 |
| YoGi |
Пост
#286
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 435 С нами с: 21-March 08 |
а не лучше ли при авторизации слздавать $_SESSION['role'], куда прописывать роль, админ или юзер. if( !isset($_SESSION['authorized']) || $_SESSION['role'] != 'admin') или же вместо 'admin' integer переменную дальше твой код типо такого чет не вкурю то есть в логине.пхп передаем логин в $_SESSION, и назначаем ему группу в bridge.php? |
| -RC- |
Пост
#287
|
|
Репутация: 424 ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 |
можно сразу в login.php вызывать функцию что-то типа:
$_SESSION['role'] = setRole ($id); а реализация setRole будет дергать из базы твои права. |
| elevenelven |
Пост
#288
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 218 С нами с: 2-June 07 |
Перед этой строчкой.
header('Location:\cards\cards_pr\scripts\bridge.php'); Мы же будем работать с ролями и дальше по проекту?! Так зачем тут bridge.php который как контрольный пункт в игре Хитмен? mysql_query("UPDATE users SET user_hash Что за user_hash? В описании таблицы `users` небыло никакого хеша. После вычитки из БД юзера ,авторизации и аутентификации, следует создать в сессии массив этого пользователя со всеми его данными. Можно сразу выбрать джойном его роль и группу. $data = mysql_fetch_assoc($query); if($data['user_pass'] === md5(md5($_POST['password']))){ $_SESSION['current-user'] = $data; } А в bridge.php в зависимости от роли генерировать перенаправление. А в перенаправленом файле позволять читать только тем, кто находиться в группе с правами чтения\выполнения. Сообщение отредактировал elevenelven - Dec 24 2012, 14:47 |
| -RC- |
Пост
#289
|
|
Репутация: 424 ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 |
и еще на UPDATE рекомендуется тоже ставить лимиты, для таких случаев.
+ я бы добавил дополнительную фильтрацию переменных через strip_tags или htmlspecialchars, + в том числе проверку на /[^(\w)|(\x7F-\xFF-)|(\s)]/ |
| elevenelven |
Пост
#290
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 218 С нами с: 2-June 07 |
Еще раз перечитал задачу. YoGi я не думаю что есть смысл применять тут груповую политику. Достаточно ролевой.
users:user_id,user_login,user_pass_md5_hash, role roles: id,name ------------------------------------------------------ <? session_start(); // подключение к БД if(isset($_POST['submit'])) {$query = mysql_query("SELECT * FROM users WHERE user_login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1"); $data = mysql_fetch_assoc($query); if($data['user_pass'] === md5(md5($_POST['password']))) { $_SESSION['current-user'] = $data; if($data['role'] == 0){//Обычный пользователь header('Location:/index.php'); die(); }elseif($data['role'] == 1){//Модератор header('Location:/control-panel.php'); die(); }elseif($data['role'] == 1){//Администратор header('Location:/admin-panel.php'); die(); } } else { print "Вы ввели неправильный логин/пароль"; } } ?> <form method="POST"> Логин <input name="login" type="text"><br> Пароль <input name="password" type="password"><br> <input name="submit" type="submit" value="Войти"> </form> ?> ------------------------------------------------------ Что касается самого вопроса, почему не работает, может у вас структура данных в БД немного запуталась. Сообщение отредактировал elevenelven - Dec 24 2012, 17:32 |
| YoGi |
Пост
#291
|
|
Репутация: 39 ![]() Активист ![]() Группа: Пользователи Сообщений: 435 С нами с: 21-March 08 |
ссасибо всем за помощь, вечером поробую, ролевая политика заинтересовала видимо действительно нет смісла исользовать груы , если всего два типа user/admin, хотел росто разобраться с груповой.
|
| -RC- |
Пост
#292
|
|
Репутация: 424 ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 |
если ставите session_start();
не забудьте тогда уже и присвоить переменные. ведь на следующих страничках необходимо будет проверять пользователя. |
| OldStyleBoY |
Пост
#293
|
|
Репутация: 133 ![]() Активист ![]() Группа: Пользователи Сообщений: 455 С нами с: 5-April 07 |
Подскажите, застрял
Есть определенная папка, в ней находятся папки, так вот мне нужно узнать все название папок и запихнуть их в select. <?php $dir = opendir("a"); while($name = readdir($dir)){ if($name == "." or $name == "..") continue; if(is_dir($name)) echo "<b>[$name]</b><br />"; else echo "$name<br />"; } closedir($dir); ?> Название папок у меня выводятся, но когда добавляю : echo "<select>$name<br />"; то появляется поле селект, но там не выводятся название попок Сообщение отредактировал OldStyleBoY - Aug 31 2013, 23:12 |
| Navern |
Пост
#294
|
|
Репутация: 552 ![]() Aut vincere , aut mori ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 2 861 С нами с: 10-October 06 |
Подскажите, застрял Есть определенная папка, в ней находятся папки, так вот мне нужно узнать все название папок и запихнуть их в select. <?php $dir = opendir("a"); while($name = readdir($dir)){ if($name == "." or $name == "..") continue; if(is_dir($name)) echo "<b>[$name]</b><br />"; else echo "$name<br />"; } closedir($dir); ?> Название папок у меня выводятся, но когда добавляю : echo "<select>$name<br />"; то появляется поле селект, но там не выводятся название попок Название папок нужно в опции вставлять,а не конкретно в селект <select> <option>$name</option> <option>$name</option> </select> |
| artishok |
Пост
#295
|
|
Репутация: 807 ![]() follow the music ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 5 125 С нами с: 31-December 06 |
<?php $dir = opendir("a"); $option = ''; while($name = readdir($dir)){ if($name == "." or $name == "..") continue; if(is_dir($name)) $option .= "<option>[$name]</option>"; else $option .= "<option>$name</option>"; } closedir($dir); echo "<select>$option</select>"; ?> Если надо чтобы название папки заметно отличалось от названия файла, можно задать background-color (только так). Или можно использовать сторонние плагины. |
| nerve |
Пост
#296
|
|
Репутация: 282 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 753 С нами с: 5-January 07 |
хочу вывести данные из майскл в виде таблицы.
сначала создаю таблицу с нужными заголовками, потом в цикле вывожу данные из базы. выглядит не очень. подскажите как лучше сделать. и еще вопрос: я воспользовался конструкцией do-while, однако рекомендуют использовать просто while. но с просто while не выводится первая строка из таблицы. как быть? » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « ![]() Сообщение отредактировал nerve - Jan 6 2014, 17:29 |
| kapals |
Пост
#297
|
|
Репутация: -9 ![]() Дух Группа: Пользователи Сообщений: 47 С нами с: 16-March 10 |
вынеси таблицу за пределы цикла
|
| nerve |
Пост
#298
|
|
Репутация: 282 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 753 С нами с: 5-January 07 |
решение:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « цикл с обращением к базе и выводом значений построчно надо делать внутри тегов таблицы. Сообщение отредактировал nerve - Jan 6 2014, 17:28 |
| Yes |
Пост
#299
|
|
Репутация: 30 ![]() Активист ![]() Группа: BANNED Сообщений: 288 С нами с: 18-June 09 |
Prestashop - Помощь за деньги
Помогите добавить небольшой функционал в раздел Заказы Prestashop. Тот, что AdminOrdersContoller.php, версия престы 1.5.6.2 Нужно в таблице заказов добавить такие поля: Цены приходная и расходная, стоимость доставки, прибыль с заказа, налог, название перевозчика. И отдельно вывести такие значения: Всего приход, всего расход, всего налог, всего прибыль, всего доставки, средняя прибыль с заказа, средняя корзина. Проверить, чтобы все новые поля фильтровались соответственно выбранным датам на странице заказов. Работы не много, но у меня знаний не хватает. Я электрик, а не программист Некоторые значения получаются математическими действиями со значениями, которые уже загружены из БД, другие надо подгрузить из другой ветки БД. Денег скажем $30-40 ну или как договоримся. Оплата - на карту или другим взаимно удобным способом. Можно лично в руки, если вы из Киева. Пишите в ПМ Сообщение отредактировал Yes - Feb 1 2014, 2:53 |
| kobzon |
Пост
#300
|
|
Репутация: 19 ![]() Дух Группа: Пользователи Сообщений: 102 С нами с: 7-November 09 |
Всім доброго дня!
Задумався над такою штукою... Треба написати скрипт(на пхп напевно), щоб робот заходив на мій сайт (вантажні перевезення) і продивлявся сторінки наприклад по 2 хв кожну, і потім змінював айпі, і знову так само. ЯКа ціль? Підвищити відвідуваність, і можливо підніметься трастовість. Що скажете? Яка ціна такого завдання? (Головне в бан не попасти від ПС)) |
| PRIHOD |
Пост
#1
|
|
Репутация: 205 ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 233 С нами с: 8-August 07 |
Приветствую!
Joomla Хочу, что бы в корзине, выводило сообщение о том, что доставка бесплатная, при условии, если цена выше 200грн имеем $pricesum - сумма к оплате пишу <?php if ($pricesum >= 200){ ?> <?php $freedelivery = 'Для этого товара доставка бесплатная'; ?> <?php }else{?> <?php $freedelivery = 'фиксированная стоимость'; ?> <?php } ?> и вывожу ее echo"<tr> <td colspan=\"2\" align=\"right\">".$freedelivery."</td>; но так не воркает. Подскажете? |
![]() ![]() |
![]() ![]() |
|
Упрощённая версия | Сейчас: 23rd November 2025 - 18:05 |
| Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |