PHP.SU

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

Страниц (7): « 1 2 3 [4] 5 6 7 »

> Найдено сообщений: 94
Wooorker Отправлено: 28 Апреля, 2014 - 15:27:04 • Тема: Передача данных в MySQL из ajax • Форум: Вопросы новичков

Ответов: 17
Просмотров: 747
3d_killer пишет:
а потом надо запрос выполнить у вас тут приведен просто текст запроса, а
я не вижу


Это всё есть. И <script> всё оформлено. Если б не было оформлено, то в родительское окно из модального данные не передавались бы.
Не работает как только дохожу до строчки
PHP:
скопировать код в буфер обмена
  1. echo '$.post("saveCKEd.php", {pDesc: data, p_id: '.$numStr.'});';

тут сразу и то, что работало, перестаёт работать. Закомментируешь её - опять работает, только в базу не пишет Улыбка

to Zuldek:

именно на этой строчке я не могу никак отловить ошибку. Поэтому прошу помощи.
Wooorker Отправлено: 28 Апреля, 2014 - 15:20:04 • Тема: Сравнение двух последних значений из таблицы MySQL • Форум: Вопросы новичков

Ответов: 1
Просмотров: 115
Надо выполнять запрос на обновление. Выглядеть он будет примерно так:

UPDATE tableName as a
LEFT JOIN (SELECT viruchka FROM tableName) as b ON a.data = (b.data -1)
SET field_procents = a.viruchka/b.viruchka

Это не рабочий код, это направление в котором нужно двигаться для решения задачи.
Wooorker Отправлено: 28 Апреля, 2014 - 15:03:07 • Тема: Передача данных в MySQL из ajax • Форум: Вопросы новичков

Ответов: 17
Просмотров: 747
День добрый, коллеги!

Попытаюсь вкратце изложить проблему.
Есть таблица, в которой выводится товар. Одно из полей таблицы - описание товара. Его редактирование вывел в модальное окно (чтобы подключить туда редактор CKEditor).
В данный момент работает всё: данные из поля в модальное окно передаются, после редактирования из окна в родительское передаются изменённые данные. Только в mysql не могу эти изменённые данные записать.
В скрипте, который выводит модальное окно прописано:
PHP:
скопировать код в буфер обмена
  1. echo "<script src='//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'></script>";


далее

PHP:
скопировать код в буфер обмена
  1. echo "function setForm() {\n";
  2. echo "var data = CKEDITOR.instances.MyTextarea.getData();";
  3. echo '$.post("saveCKEd.php", {pDesc: data, p_id: '.$numStr.'});';


и код из saveCKEd.php

PHP:
скопировать код в буфер обмена
  1.     if (isset($POST['pDesc']){
  2.         $pDesc = mysql_real_escape_string($_POST['pDesc']);
  3.         $prId  = mysql_real_escape_string($_POST['p_id']);


и далее

PHP:
скопировать код в буфер обмена
  1.    $query = "UPDATE $product_table SET product_desc =".$pDesc." WHERE product_id =".$prId;


с ajax столкнулся впервые, но все найденные примеры говорят, что надо именно таким образом передавать данные из js в mysql. Очевидно, что до выполнения saveCKEd.php дело не доходит. Подскажите: где ошибка?
Wooorker Отправлено: 13 Марта, 2014 - 13:26:50 • Тема: Оцените уровень безопасности • Форум: Вопросы новичков

Ответов: 7
Просмотров: 253
lastdays пишет:
А что вам подсказать то? стандартный подход.
Авторизация -> запись сессии -> переход на след страницу и проверка существовании сессии.

Так и не понял. Предыдущие комментарии говорят, что всё плохо, а как хорошо - неизвестно.
Вы говорите, что у меня стандартный подход. Т. е. всё-таки всё хорошо?
Я в курсе, что можно добавить время существования сессии, писать куки, проверять ip отправителя запроса. Если мой подход правильный, то мне только остаётся добавить все эти полезности и больше не париться по поводу безопасности?
Wooorker Отправлено: 13 Марта, 2014 - 13:01:38 • Тема: Оцените уровень безопасности • Форум: Вопросы новичков

Ответов: 7
Просмотров: 253
Таки никто не подскажет?
Wooorker Отправлено: 12 Марта, 2014 - 20:05:59 • Тема: Оцените уровень безопасности • Форум: Вопросы новичков

Ответов: 7
Просмотров: 253
esterio пишет:

lastdays пишет:
Лично я для фильтра использую регулярки

filter_var


Wooorker
Нет код плох, ничево собственно умного не делает.
П.С. извиняюсь за прямоту


Т. е. эту защиту легко обойти? Тогда подскажите, хотя бы что ещё добавить при проверке каждой страницей сайта, что она открыта авторизованным пользователем? Что на каждой странице хэш пароля пользователя проверять чтоли?
Wooorker Отправлено: 12 Марта, 2014 - 07:55:20 • Тема: Как правильно сделать выборку из двух таблиц? • Форум: Вопросы новичков

Ответов: 5
Просмотров: 207
Если подробнее, то это будет скажем так (вывожу всего одно поле из первой таблицы и 2 из второй, хотя можно и другие поля по аналогии вывести):
SELECT u.upload_name, p.message, p.date
FROM user_uploads as u
LEFT JOIN user_post as p
ON u.upload_id=p.upload_id;
поскольку здесь LEFT JOIN, то будут взяты все значения из таблицы user_uploads и только те значения из user_post, где совпадают значения upload_id. Если нужно наоборот, то можно написать RIGHT JOIN, либо поменять местами наименования таблиц
Wooorker Отправлено: 12 Марта, 2014 - 07:46:15 • Тема: Оцените уровень безопасности • Форум: Вопросы новичков

Ответов: 7
Просмотров: 253
Добрый день, господа!
Подскажите, пожалуйста, насколько безопасен такой метод защиты от "нежелательного" открытия страницы "нежелательными" людьми:
1. есть index.php где в начале уничтожаем сессию, далее два поля логин и пароль и субмит
2. есть file.php куда попадем по субмиту, в нем проверяем наличие $Post['название субмита']
далее ищем в бд mysql mysql_real_escape_string(логин, пароль), проверяем хэш md5 с солью; если всё совпадает -
PHP:
скопировать код в буфер обмена
  1.              session_start();
  2.               $_SESSION['своя переменная']='значение своей переменной';
  3.  

и инклюдом подключаем горизонтальное меню на css с чистым окном под ним
3. когда в меню выбираем нужную ссылку, то топаем в нужный php файл, в каждом из которых в начале идёт проверка
PHP:
скопировать код в буфер обмена
  1.     session_start();
  2.     if (!isset($_SESSION['своя переменная'])) exit();
  3.     session_start();
  4.     if ($_SESSION['своя переменная']!=='значение своей перменной') exit();
  5.     include 'menu.php';

а далее под менюшкой выводим всё что нам надо.
4. При нажатии в меню выход, переходим на index.php, где, как я писал выше, происходит очистка сессии.
Wooorker Отправлено: 07 Марта, 2014 - 09:00:37 • Тема: Как правильно join сделать? • Форум: Вопросы новичков

Ответов: 0
Просмотров: 89
Добрый день, господа!
С джумлой немного пришлось помучиться.
Есть такой запрос:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT DISTINCT p.product_sku, p.product_desc, p.product_name, p.product_full_image, pr.product_price, cx.category_id AS cx_cat_id, prt.category_id AS prt_cat_id
  2.     FROM jos_vm_product AS p
  3.     LEFT JOIN $priceTable AS prt ON p.`product_sku` = prt.`product_sku`
  4.     LEFT JOIN `jos_vm_product_category_xref` AS cx ON p.`product_id` = cx.`product_id`
  5.     LEFT JOIN `jos_vm_product_mf_xref` AS mx ON p.`product_id` = mx.`product_id`
  6.     LEFT JOIN `jos_vm_product_price` AS pr ON p.`product_id` = pr.`product_id`
  7.     WHERE p.product_publish = 'Y' AND mx.manufacturer_id = '17'
  8.     ORDER BY p.product_id
  9.    

но надо вместо id категорий cx_cat_id и prt_cat_id вывести соответствующие этим id значения, которые уже записаны в другой таблице .
Пытаюсь вот так сделать
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT DISTINCT p.product_sku, p.product_desc, p.product_name, p.product_full_image, pr.product_price, ccx.categ_1 AS cx_cat_id, cprt.categ_1 AS prt_cat_id
  2.     FROM jos_vm_product AS p
  3.     LEFT JOIN $priceTable AS prt ON p.`product_sku` = prt.`product_sku`
  4.     LEFT JOIN `jos_vm_product_category_xref` AS cx ON p.`product_id` = cx.`product_id`
  5.     LEFT JOIN $allCateg AS ccx ON cx.category_id = ccx.categ_id
  6.     LEFT JOIN $allCateg AS cprt ON prt.category_id = cprt.categ_id
  7.     LEFT JOIN `jos_vm_product_mf_xref` AS mx ON p.`product_id` = mx.`product_id`
  8.     LEFT JOIN `jos_vm_product_price` AS pr ON p.`product_id` = pr.`product_id`
  9.     WHERE p.product_publish = 'Y' AND mx.manufacturer_id = '17'
  10.     ORDER BY p.product_id
  11.    

ничего не выводит в полях cx_cat_id и prt_cat_id, т. е. пустые значения в них.
Как по-другому сделать не соображу.
(Добавление)
Приношу извинения, запрос правильный был. Просто в исходной таблице $allCateg соответствующие каждому id пустые были.

Сразу же ещё спрошу. Если кто знаком как в joomla организована иерархия категорий, тот знает, что все категории и подкатегории к каждому товару находятся в одной таблице и в 2 колонка: это parent_id и child_id. Т. к. подкатегорий может быть много (хотя больше 4 не встречал), то это дело каким то образом можно вытянуть sql запросом, чтобы для конкретного товара получить полный перечень категорий и подкатегорий в одну строку.
Пробывал по-разному, ничего не получилось, решил написать громоздкий код, он хоть и работает, но всё же интересно, как нормальные люди решают данную проблему Улыбка

PHP:
скопировать код в буфер обмена
  1.    $query_cat = "SELECT * FROM $category_xref
  2.        LEFT JOIN $category ON $category_xref.category_child_id = $category.category_id
  3.        WHERE $category.category_publish='Y'
  4.        ORDER BY category_parent_id";
  5.     $res_cat = mysql_query($query_cat) or die(mysql_error());
  6.     while ($row_cat=mysql_fetch_array($res_cat)) {
  7.             $cat_parent_id=$row_cat['category_parent_id'];
  8.             $cat_child_id=$row_cat['category_child_id'];
  9.  
  10.             $query2 = "SELECT category_name FROM $category WHERE category_id=".$row_cat['category_child_id'];
  11.             $res_cat1 = mysql_query($query2) or die(mysql_error());
  12.             $name_cat=mysql_fetch_array($res_cat1);
  13.             $cat_name=$name_cat['category_name'];
  14.             if ($cat_parent_id==0) {
  15.                     //проверяем, нет ли у данной категории товара на верхнем уровне
  16.                     $query_cat6="SELECT distinct c.category_id
  17.                        FROM jos_vm_category c
  18.                        INNER JOIN jos_vm_product_category_xref pc ON c.category_id = pc.category_id
  19.                        WHERE pc.category_id = ".$cat_child_id;
  20.                     $res_cat6 = mysql_query($query_cat6) or die(mysql_error());
  21.                     if (mysql_num_rows($res_cat6)==0) {
  22.                         //echo "Количество строк в запросе = ".mysql_num_rows($res_cat6)."<br>";
  23.                     }
  24.                     else {
  25.                         //если нет, то публикуем её
  26.                         mysql_query("INSERT INTO $allCateg
  27.                        SET categ_id = $cat_child_id,
  28.                        categ_1='".$cat_name."'")
  29.                         or die('SQL ERROR:'.mysql_error());
  30.                    }
  31.                     //если не нужно выводить в перечень категории первого уровня, то закоменнтировть следующую строку
  32.                     //echo htmlspecialchars($cat_name)."/".$cat_child_id."<br>";
  33.                     //fputs ( $file, "<category id=\"".$cat_child_id."\">".htmlspecialchars($cat_name)."</category>\n");
  34.             }
  35.             else {
  36.                     //echo htmlspecialchars($cat_name);//."/".$cat_parent_id;
  37.                    
  38.                     $query3 = "SELECT category_name FROM $category WHERE category_id=".$cat_parent_id;
  39.                     $res_cat3 = mysql_query($query3) or die(mysql_error());
  40.                     $name_cat3=mysql_fetch_array($res_cat3);
  41.                     $cat_name3=$name_cat3['category_name'];
  42.                        
  43.                     $query_cat4 = "SELECT * FROM $category_xref WHERE category_child_id=".$cat_parent_id;
  44.                     $res_cat4 = mysql_query($query_cat4) or die(mysql_error());
  45.                     while ($row_cat4=mysql_fetch_array($res_cat4)) {
  46.                         $cat_parent_id4=$row_cat4['category_parent_id'];
  47.                         $cat_child_id4=$row_cat4['category_child_id'];
  48.                        
  49.                         if($cat_parent_id4==0){
  50.                             //echo htmlspecialchars($cat_name3)."/".htmlspecialchars($cat_name)."/".$cat_child_id."<br>";
  51.                             mysql_query("INSERT INTO $allCateg
  52.                            SET categ_id = $cat_child_id,
  53.                            categ_1='".$cat_name3."',
  54.                            categ_2='".$cat_name."'")
  55.                             or die('SQL ERROR:'.mysql_error());
  56.  
  57.                             //mysql_query("INSERT INTO $allCateg ( `categ_id`, `categ_1`, `categ_2`, `categ_3`, `categ_4`)
  58.                             //VALUES ($cat_child_id, htmlspecialchars($cat_name3),htmlspecialchars($cat_name),'','')") or die('SQL ERROR:'.mysql_error());
  59.                         }
  60.                         else{
  61.                             $query5 = "SELECT category_name FROM $category WHERE category_id=".$cat_parent_id4;
  62.                             $res_cat5 = mysql_query($query5) or die(mysql_error());
  63.                             $name_cat5=mysql_fetch_array($res_cat5);
  64.                             $cat_name5=$name_cat5['category_name'];
  65.                             //echo htmlspecialchars($cat_name5)."/".htmlspecialchars($cat_name3)."/".htmlspecialchars($cat_name)."/".$cat_child_id."<br>";
  66.  
  67.                             $query_cat6 = "SELECT * FROM $category_xref WHERE category_child_id=".$cat_parent_id4;
  68.                             $res_cat6 = mysql_query($query_cat6) or die(mysql_error());
  69.                             while ($row_cat6=mysql_fetch_array($res_cat6)) {
  70.                                 $cat_parent_id6=$row_cat6['category_parent_id'];
  71.                                 $cat_child_id6=$row_cat6['category_child_id'];
  72.                                
  73.                                 if($cat_parent_id6==0){
  74.                                     //echo htmlspecialchars($cat_name5)."/".htmlspecialchars($cat_name3)."/".htmlspecialchars($cat_name)."/".$cat_child_id."<br>";
  75.                                     mysql_query("INSERT INTO $allCateg
  76.                                    SET categ_id = $cat_child_id,
  77.                                    categ_1='".$cat_name5."',
  78.                                    categ_2='".$cat_name3."',
  79.                                    categ_3='".$cat_name."'")
  80.                                     or die('SQL ERROR:'.mysql_error());
  81.  
  82.                                     //mysql_query("INSERT INTO $allCateg ( `categ_id`, `categ_1`, `categ_2`, `categ_3`, `categ_4`)
  83.                                     //VALUES ($cat_child_id, htmlspecialchars($cat_name5),htmlspecialchars($cat_name3), htmlspecialchars($cat_name),'')") or die('SQL ERROR:'.mysql_error());
  84.                                 }
  85.                                 else{
  86.                                     $query7 = "SELECT category_name FROM $category WHERE category_id=".$cat_parent_id6;
  87.                                     $res_cat7 = mysql_query($query7) or die(mysql_error());
  88.                                     $name_cat7=mysql_fetch_array($res_cat7);
  89.                                     $cat_name7=$name_cat5['category_name'];
  90.                                     //echo htmlspecialchars($cat_name7)."/".htmlspecialchars($cat_name5)."/".htmlspecialchars($cat_name3)."/".htmlspecialchars($cat_name)."/".$cat_child_id."<br>";
  91.                                     mysql_query("INSERT INTO $allCateg
  92.                                    SET categ_id = $cat_child_id,
  93.                                    categ_1='".$cat_name7."',
  94.                                    categ_2='".$cat_name5."',
  95.                                    categ_3='".$cat_name3."',
  96.                                    categ_4='".$cat_name."'")
  97.                                     or die('SQL ERROR:'.mysql_error());
  98.  
  99.                                 }
  100.  
  101.                             }
  102.                         }
  103.                     }
  104.                 }
  105.     }
Wooorker Отправлено: 26 Декабря, 2013 - 08:52:19 • Тема: Как реализовать меню • Форум: Вопросы новичков

Ответов: 7
Просмотров: 283
DelphinPRO пишет:

Так вы добавьте внешний блок вокруг кнопок и его фиксируйте и заливайте цветом.

если я помещаю внутрь <div id=#hBlock>
у которого css выглядит как
CODE (html):
скопировать код в буфер обмена
  1. #hBlock
  2. {       color:red}

то ничего не меняется.
Я пробывал и копировать настройки css с блока меню
CODE (html):
скопировать код в буфер обмена
  1. #hBlock
  2. {       background:red;
  3.         margin: 0;
  4.         padding: 0;
  5.         z-index: 30;
  6.         position: fixed;
  7.         top: 0}

- тоже ничего не изменилось
DelphinPRO пишет:

padding-top, равный высоте меню, для блока с текстом.

Да, padding-top мне помог Улыбка
Wooorker Отправлено: 26 Декабря, 2013 - 06:48:18 • Тема: Как реализовать меню • Форум: Вопросы новичков

Ответов: 7
Просмотров: 283
Помогите, пожалуйста, ещё с этим меню. Надо чтобы при прокрутке страницы оно (подключенное через include) не "уходило" вверх, а оставалось на экране.
В css добавил
{
position: fixed;
top: 0}
Но выглядит не очень красиво. Т. к. кнопки меню стоят на месте, а текст под ними движется.
Вот бы добавить "под" строку меню фон, чтобы как у людей всё выглядело.
Добавление, например background:red; не сильно помогает, т. к. фон заполняется только "вокруг" кнопочек, а не во всю полосу верхнего меню, как хотелось бы.
То, как меню сейчас выглядит можно посмотреть http://adm-stud[dot]w[dot]pw/sdayka/index.php
Логин и пароль 'user3'

p.s.
Кстати, то, что я добавил в css проблему не сильно решило. Оказывается, что часть текста страницы, теперь находится "под" меню Недовольство, огорчение
Wooorker Отправлено: 25 Декабря, 2013 - 13:14:04 • Тема: Как реализовать меню • Форум: Вопросы новичков

Ответов: 7
Просмотров: 283
IllusionMH пишет:
Wooorker, в простом случае через include.
PHP:
скопировать код в буфер обмена
  1. include 'header.php';
  2. //content here
  3. include 'footer.php';

Все что должно повторятся на каждой странице - помещается в соответствующие файлы.


Понял, спасибо!
Wooorker Отправлено: 25 Декабря, 2013 - 13:00:58 • Тема: Как реализовать меню • Форум: Вопросы новичков

Ответов: 7
Просмотров: 283
IllusionMH пишет:
Wooorker, сделать стандартную шапку с меню для всех страниц и выводить его на каждой странице.
Или что значит "меню оставалось, а содержимое менялось"? Аяксом перегружать большую часть страницы - не профит.

Это надо include использовать? или как? прошу простейший пример.
Wooorker Отправлено: 25 Декабря, 2013 - 12:37:17 • Тема: Как реализовать меню • Форум: Вопросы новичков

Ответов: 7
Просмотров: 283
Хочу реализовать на странице вот такое меню: http://javascript-array[dot]com/scri[dot][dot][dot]_drop_down_menu/
Но никак не соображу, как сделать так чтобы при переходе по ссылке само меню сверху оставалось, а всё что под ним менялось.
На ум приходит только что создать table. Но где именно в этом конкретном примере это сделать?
Wooorker Отправлено: 25 Декабря, 2013 - 11:33:31 • Тема: Где ошибка в запросе к mySQL? • Форум: Вопросы новичков

Ответов: 9
Просмотров: 298
kotyara1979 пишет:

У вас нет ее инициализации.

должно быть перед использованием переменных сессии.


Вот как оказывается. Спасибо. Я думал достаточно один раз инициализировать сессию и потом можно считывать $_SESSION несколько раз, так же как и $_POST. Я добавил ещё раз session_start() перед вторым использованием переменных сессии и всё заработало.

Страниц (7): « 1 2 3 [4] 5 6 7 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB