Вопросы по PHP |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6829-й день
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
Вопросы по PHP |
Glavar |
Dec 12 2010, 20:35
Пост
#1
|
Репутация: 10 Активист Группа: Пользователи Сообщений: 379 С нами с: 11-May 08 |
Доброго время суток!
1. Скажите как мне обрезать первых 7 знаков, а остальные занести в базу? 2. У меня есть максимальное число голосов припустим 50, как мне присвоить ему 1 место 15 глосов - 5 место 43 голоса - 2 место 28 голосов - 3 место 24 - 4 место и т.д. и что бы место записывалось и обновлялось автоматически в базе данных? Тема для обговорення мови програмування PHP, всі сторонні коментарі будуть видалятися, а їх автори отримувати % Сообщение отредактировал BoyKot - Feb 3 2011, 13:22 |
-RC- |
Nov 29 2012, 21:18
Пост
#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 |
Nov 29 2012, 21:29
Пост
#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- |
Dec 11 2012, 22:34
Пост
#283
|
Репутация: 424 bifurcated person Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 |
header ("Location: show_error.php");
|
YoGi |
Dec 24 2012, 12:36
Пост
#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- |
Dec 24 2012, 13:35
Пост
#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 |
Dec 24 2012, 14:28
Пост
#286
|
Репутация: 39 Активист Группа: Пользователи Сообщений: 435 С нами с: 21-March 08 |
а не лучше ли при авторизации слздавать $_SESSION['role'], куда прописывать роль, админ или юзер. if( !isset($_SESSION['authorized']) || $_SESSION['role'] != 'admin') или же вместо 'admin' integer переменную дальше твой код типо такого чет не вкурю то есть в логине.пхп передаем логин в $_SESSION, и назначаем ему группу в bridge.php? |
-RC- |
Dec 24 2012, 14:39
Пост
#287
|
Репутация: 424 bifurcated person Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 |
можно сразу в login.php вызывать функцию что-то типа:
$_SESSION['role'] = setRole ($id); а реализация setRole будет дергать из базы твои права. |
elevenelven |
Dec 24 2012, 14:46
Пост
#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- |
Dec 24 2012, 16:20
Пост
#289
|
Репутация: 424 bifurcated person Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 |
и еще на UPDATE рекомендуется тоже ставить лимиты, для таких случаев.
+ я бы добавил дополнительную фильтрацию переменных через strip_tags или htmlspecialchars, + в том числе проверку на /[^(\w)|(\x7F-\xFF-)|(\s)]/ |
elevenelven |
Dec 24 2012, 16:56
Пост
#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 |
Dec 24 2012, 17:03
Пост
#291
|
Репутация: 39 Активист Группа: Пользователи Сообщений: 435 С нами с: 21-March 08 |
ссасибо всем за помощь, вечером поробую, ролевая политика заинтересовала видимо действительно нет смісла исользовать груы , если всего два типа user/admin, хотел росто разобраться с груповой.
|
-RC- |
Dec 24 2012, 17:20
Пост
#292
|
Репутация: 424 bifurcated person Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 |
если ставите session_start();
не забудьте тогда уже и присвоить переменные. ведь на следующих страничках необходимо будет проверять пользователя. |
OldStyleBoY |
Aug 31 2013, 23:10
Пост
#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 |
Sep 1 2013, 0:05
Пост
#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 |
Sep 1 2013, 10:02
Пост
#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 |
Jan 1 2014, 17:18
Пост
#296
|
Репутация: 282 Постоялец Группа: Пользователи Сообщений: 1 753 С нами с: 5-January 07 |
хочу вывести данные из майскл в виде таблицы.
сначала создаю таблицу с нужными заголовками, потом в цикле вывожу данные из базы. выглядит не очень. подскажите как лучше сделать. и еще вопрос: я воспользовался конструкцией do-while, однако рекомендуют использовать просто while. но с просто while не выводится первая строка из таблицы. как быть? » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Сообщение отредактировал nerve - Jan 6 2014, 17:29 |
kapals |
Jan 1 2014, 22:08
Пост
#297
|
Репутация: -9 Дух Группа: Пользователи Сообщений: 47 С нами с: 16-March 10 |
вынеси таблицу за пределы цикла
|
nerve |
Jan 6 2014, 16:05
Пост
#298
|
Репутация: 282 Постоялец Группа: Пользователи Сообщений: 1 753 С нами с: 5-January 07 |
решение:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « цикл с обращением к базе и выводом значений построчно надо делать внутри тегов таблицы. Сообщение отредактировал nerve - Jan 6 2014, 17:28 |
Yes |
Feb 1 2014, 2:48
Пост
#299
|
Репутация: 30 Активист Группа: BANNED Сообщений: 288 С нами с: 18-June 09 |
Prestashop - Помощь за деньги
Помогите добавить небольшой функционал в раздел Заказы Prestashop. Тот, что AdminOrdersContoller.php, версия престы 1.5.6.2 Нужно в таблице заказов добавить такие поля: Цены приходная и расходная, стоимость доставки, прибыль с заказа, налог, название перевозчика. И отдельно вывести такие значения: Всего приход, всего расход, всего налог, всего прибыль, всего доставки, средняя прибыль с заказа, средняя корзина. Проверить, чтобы все новые поля фильтровались соответственно выбранным датам на странице заказов. Работы не много, но у меня знаний не хватает. Я электрик, а не программист Некоторые значения получаются математическими действиями со значениями, которые уже загружены из БД, другие надо подгрузить из другой ветки БД. Денег скажем $30-40 ну или как договоримся. Оплата - на карту или другим взаимно удобным способом. Можно лично в руки, если вы из Киева. Пишите в ПМ Сообщение отредактировал Yes - Feb 1 2014, 2:53 |
kobzon |
Jul 21 2014, 13:32
Пост
#300
|
Репутация: 19 Дух Группа: Пользователи Сообщений: 102 С нами с: 7-November 09 |
Всім доброго дня!
Задумався над такою штукою... Треба написати скрипт(на пхп напевно), щоб робот заходив на мій сайт (вантажні перевезення) і продивлявся сторінки наприклад по 2 хв кожну, і потім змінював айпі, і знову так само. ЯКа ціль? Підвищити відвідуваність, і можливо підніметься трастовість. Що скажете? Яка ціна такого завдання? (Головне в бан не попасти від ПС)) |
Упрощённая версия | Сейчас: 25th November 2024 - 5:52 |
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |