PHP.SU

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

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

> Найдено сообщений: 71
twelveee Отправлено: 29 Июня, 2015 - 14:49:28 • Тема: While в while (Вывод городов и стран) • Форум: Вопросы новичков

Ответов: 2
Просмотров: 181
Alex1984 пишет:
Не совсем про города но смысл тот же

array1 = SELECT 'id', 'name' ,'categories', 'parent' FROM 'navigation' WHERE 'parent=0'
array2 = SELECT 'id', 'name' ,'categories', 'parent' FROM 'navigation' WHERE 'parent>0'

PHP:
скопировать код в буфер обмена
  1.  
  2.         $cat = array1;
  3.         $sub_cat = array2;
  4.  
  5.         $tmp_arr = array();
  6.  
  7.         array_push($tmp_arr, '<ul>');
  8.  
  9.         foreach($cat as $tmp)
  10.         {
  11.                 array_push($tmp_arr, '<li> <a href="/'.$tmp[2].'">'.$tmp[1].'</a>');
  12.                 array_push($tmp_arr, '<ul>');
  13.  
  14.                 foreach($sub_cat as $tmp1)
  15.                 {
  16.                     if($tmp[0] == $tmp1[3])
  17.                     {
  18.                         array_push($tmp_arr, '<li> <a href="' . $tmp[2] . '/' . $tmp1[2] . '">' . $tmp1[1] . '</a>');
  19.                     }
  20.                 }
  21.                 array_push($tmp_arr, '</ul>');
  22.                 array_push($tmp_arr, '</li>');
  23.  
  24.             }
  25.             array_push($tmp_arr, '</li>');
  26.  
  27.         $res = implode(' ', $tmp_arr);
  28.  


Огромное спасибо!
CODE (htmlphp):
скопировать код в буфер обмена
  1.  $cat = $db->query("SELECT * FROM ".PREFIX."_shop_cities WHERE type='0'");
  2.         $sub_cat = $db->query("SELECT * FROM ".PREFIX."_shop_cities WHERE type='1'");
  3.                         $sub_sub_cat = $db->query("SELECT * FROM ".PREFIX."_shop_cities WHERE type='2'");
  4.         $tmp_arr = array();
  5.  
  6.         foreach($cat as $tmp)
  7.         {
  8.                 array_push($tmp_arr, "<h3>".$tmp["name_ru"]."</h3><hr>");
  9.  
  10.                 foreach($sub_cat as $tmp1)
  11.                 {
  12.                     if($tmp["id"] == $tmp1["god"])
  13.                     {
  14.                         array_push($tmp_arr, '<b>' . $tmp1["name_ru"] . '</b><br>');
  15.                                                                 foreach($sub_sub_cat as $tmp2)
  16.                                                                                 {
  17.                                                                                         if($tmp1["id"] == $tmp2["god"])
  18.                                                                                                 {
  19.                                                                                                          array_push($tmp_arr, ' <a href="' . $tmp[2] . '/' . $tmp1[2] . '">' . $tmp2["name_ru"] . '</a><br>');
  20.                                                                                                 }
  21.                                                                                 }
  22.                     }
  23.                 }
  24.  
  25.  
  26.             }
  27.  
  28.         $res = implode(' ', $tmp_arr);


Потом просто $res в тег записывать, через шаблонизатор и готово!
twelveee Отправлено: 28 Июня, 2015 - 15:46:19 • Тема: While в while (Вывод городов и стран) • Форум: Вопросы новичков

Ответов: 2
Просмотров: 181
CODE (htmlphp):
скопировать код в буфер обмена
  1. $get_all = $db->query("SELECT * FROM ".PREFIX."_shop_cities WHERE type='0'");   # Берем страны
  2. while($row = $db->get_row($get_all)){
  3.         $get_regions = $db->query("SELECT * FROM ".PREFIX."_shop_cities WHERE god='$row[id]' AND type='1'"); # Регионы
  4.         while($row2 = $db->get_row($get_regions)){
  5.                 $get_cities = $db->query("SELECT * FROM ".PREFIX."_shop_cities WHERE god='$row2[id]' AND type='2'"); # города
  6.                 while($row3 = $db->get_row($get_cities)){
  7.                         $tpl->load_template("eshop/citylist.tpl");
  8.                         $tpl->set("{city_name}", "<li>".$row3["name_ru"]."</li>");
  9.                         $tpl->compile("cities");
  10.                         $tpl->clear();
  11.                 }
  12.                 $tpl->load_template("eshop/regionslist.tpl");
  13.                 $tpl->set("{region_name}", $row2["name_ru"]);
  14.                         $tpl->set("{cities}", $tpl->result["cities"]);
  15.                 $tpl->compile("regions");
  16.                 $tpl->clear();
  17.         }
  18.         $tpl->load_template("eshop/countrylist.tpl");
  19.         $tpl->set("{name_country}", $row["name_ru"]);
  20.         $tpl->set("{regions}", $tpl->result["regions"]);
  21.         $tpl->compile("citylist");
  22.         $tpl->clear();
  23. }


Выводит что то типа:
Россия
Московская область
Москва
Новосибирская Область
Москва
Новосибирск

А нужен вывод для каждой области отдельные города
twelveee Отправлено: 07 Июня, 2015 - 08:20:44 • Тема: Двойной $_POST • Форум: Программирование на PHP

Ответов: 10
Просмотров: 686
Решил проблему при помощи моего лога..
Проблема была в serialize от js
Была просто еще 1 форма, про которую я забыл..
И она сериализовала и эту форму тоже.

Просто поставил селектор другой, по id формы и готово!)
Спасибо за советы
twelveee Отправлено: 06 Июня, 2015 - 11:06:45 • Тема: Двойной $_POST • Форум: Программирование на PHP

Ответов: 10
Просмотров: 686
Ts.Saltan пишет:
twelveee пишет:
приложение для хрома.

Зачем? Есть же встроенный инспектор (вроде ctrl+shift+i), вкладка network, покажет передаваемые данные в читабельном виде

Мало что изменилось)
CODE (htmlphp):
скопировать код в буфер обмена
  1. domain:login_name=Twelvee&login_password=123456&login=submit&do=search&subaction=search&story=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA...&domain=new_domain&domain=322.kz&tld_kz=on&tld_com.kz=on&tld_ru=on&tld_su=on&tld_com=on&tld_net=on&tld_org=on&tld_info=on&tld_biz=on&tld_name=on&domain=322.com.kz&domain=322.su&vote_action=results&vote_id=1&vote_check=0&vote_action=vote&vote_id=1&skin_name=Default&action_skin_change=yes
twelveee Отправлено: 06 Июня, 2015 - 10:45:35 • Тема: Двойной $_POST • Форум: Программирование на PHP

Ответов: 10
Просмотров: 686
websniffer приложение для хрома.
Вот такой результат выдает:
CODE (htmlphp):
скопировать код в буфер обмена
  1. login_name=Twelvee&login_password=asdasdasd&login=submit&do=search&subaction=search&story=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA...&domain=new_domain&domain=322.kz&tld_kz=on&tld_com.kz=on&tld_ru=on&tld_su=on&tld_com=on&tld_net=on&tld_org=on&tld_info=on&tld_biz=on&tld_name=on&domain=322.com.kz&domain=322.su&vote_action=results&vote_id=1&vote_check=0&vote_action=vote&vote_id=1&skin_name=Default&action_skin_change=yes
  2.  
twelveee Отправлено: 06 Июня, 2015 - 10:21:38 • Тема: Двойной $_POST • Форум: Программирование на PHP

Ответов: 10
Просмотров: 686
Tyoma5891 пишет:
как-то странно у Вас аякс записан
Цитата:
{domain}
это должно быть вообще без скобок, и второй момент
CODE (javascript):
скопировать код в буфер обмена
  1. var domain = $('form').serialize();
я в форме html не увидел не одного упоминания со словом "form" что Вы сериализуете?

CODE (html):
скопировать код в буфер обмена
  1.         <form id="whoisfrom" action="" method="post" >
  2.         <div id="domain">
  3.             <fieldset>
  4.                 <legend>Зарегистрируй сейчас, пока свободно!</legend>
  5.                 <h2 style="margin-left:10px;"></h2>
  6.                 <div class="l1">   <center>
  7.                     <span style="font-size:12px;">www.</span>
  8.                     <input type="text" style="width:75%;height:30px;padding-left:7px;" name="domain" class="w_input" placeholder="Введите нужный домен" /> <input style="width: 115px; height: 100%;margin-top:-1px; " value="Проверить" onclick="DoWhois(); return false;" class="btn btn-default" type="submit">                    
  9.                     <!---->
  10.                    
  11.                     <p align="left" style="font-size:11px; margin-left:52%;">(например: <em>mycompany</em> или <em>моякомпания</em>)</p>
  12.                                         </center>
  13.                 </div>
  14.             </fieldset>
  15.                         <br>
  16.             <div id="log"><div id="log_res" align="center">{results}</div></div>
  17.         </div>


Мне нужна помощь. Уже очень долго не могу сделать этот скрипт. Возможен такой вариант:
Если пост уже есть, то он unset. Добавляется новый пост
twelveee Отправлено: 06 Июня, 2015 - 09:48:27 • Тема: Двойной $_POST • Форум: Программирование на PHP

Ответов: 10
Просмотров: 686
ajax:
function DoWhois() {
ShowLoading('');
var domain = $('form').serialize();
$.post(dle_root + "engine/whois/ajax/whois.php", {domain},
function(domain){
$('#dle-whois-results').html(domain);
HideLoading('');
}
);
}

Форма:
CODE (htmlphp):
скопировать код в буфер обмена
  1.         <div id="domain">
  2.             <fieldset>
  3.                 <legend>Зарегистрируй сейчас, пока свободно!</legend>
  4.                 <h2 style="margin-left:10px;"></h2>
  5.                 <div class="l1">   <center>
  6.                     <span style="font-size:12px;">www.</span>
  7.                     <input type="text" style="width:75%;height:30px;padding-left:7px;" name="domain" class="w_input" placeholder="Введите нужный домен" /> <input style="width: 115px; height: 100%;margin-top:-1px; " value="Проверить" onclick="DoWhois(); return false;" class="btn btn-default" type="submit">                    
  8.                     <!---->
  9.                    
  10.                     <p align="left" style="font-size:11px; margin-left:52%;">(например: <em>mycompany</em> или <em>моякомпания</em>)</p>
  11.                                         </center>
  12.                 </div>
  13.             </fieldset>
  14.                         <br>
  15.             <div id="log"><div id="log_res" align="center">{results}</div></div>
  16.         </div>
  17.  
  18. Тут дальше идут зоны (.ru, .kz, .su и т.д)
twelveee Отправлено: 06 Июня, 2015 - 09:04:33 • Тема: Двойной $_POST • Форум: Программирование на PHP

Ответов: 10
Просмотров: 686
Здравствуйте, вопрос такой:
Есть ajax отправляющий POST запрос с формы. Ничего необычного.
Вот файл, куда он отправляет:
PHP:
скопировать код в буфер обмена
  1. require_once(ENGINE_DIR."/whois/ajax/AjaxWhois.php");
  2. $whois = new AjaxWhois();
  3. $donect = array();
  4. parse_str($_POST["domain"], $donect);
  5. $domainName = (isset($donect["domain"])) ? $donect["domain"] : '';
  6. // Проверка не более 3-х символов в домене
  7. if (strlen($domainName)>2) {
  8.  
  9.         $whois->processAjaxWhois($donect);
  10. } else {
  11.         echo '<fieldset><legend>Внимание ошибка!</legend><h2 class="red">Вы указали слишком короткий домен. Домен должен составлять не менее 3-х символов</h2></fieldset>';
  12. }


Вот файл AjaxWhois, точнее функция, processAjaxWhois
PHP:
скопировать код в буфер обмена
  1. function processAjaxWhois($donect){
  2.                
  3.         $domainName = (isset($donect['domain'])) ? $donect['domain'] : '';
  4.  
  5.                        
  6. // Удаление url'лов http://www. or www. or http://
  7.                 if(strcmp("http://www.",substr($domainName,0,11))==0)
  8.                 {$domainName=substr($domainName,11,strlen($domainName)-11);}
  9.                 if (strcmp("https://www.",substr($domainName,0,12))==0)
  10.                 {$domainName=substr($domainName,12,strlen($domainName)-12);}
  11.                 if (strcmp("www.",substr($domainName,0,4))==0)
  12.                 {$domainName=substr($domainName,4,strlen($domainName)-4);}
  13.                 if (strcmp("http://",substr($domainName,0,7))==0)
  14.                 {$domainName=substr($domainName,7,strlen($domainName)-7);}
  15.                 if (strcmp("https://",substr($domainName,0,8))==0)
  16.                 {$domainName=substr($domainName,8,strlen($domainName)-8);}
  17.         function delete($str,$symbol='')
  18. {
  19.     return($strpos=mb_strpos($str,$symbol))!==false?mb_substr($str,0,$strpos,'utf8'):$str;
  20. }
  21. $domainName = delete($domainName, '.');
  22.                 // $domainName если есть, то удаляем
  23.                
  24.                 function pregtrim($url) {
  25.                  return preg_replace("/[^x20-xFF]/","",@strval($url));
  26.                 }
  27.  
  28.  
  29.         for ($i = 0; $i < sizeof($this->serverList); $i++) {
  30.                 $actTop = "tld_".$this->serverList[$i]['tld'];
  31.                         $check = str_replace(".", "_", $actTop);
  32.                 $this->serverList[$i]['check'] = isset($donect[$check]) ? true : false;
  33.         }
  34.         if (strlen($domainName)>2 AND !empty($this->serverList)) {
  35.                        
  36.             echo '<table class="tabel">';
  37.                         echo '<div class="namedom2" style="padding-left:5px;padding-right:5px;"><h3>Результаты проверки</h3><span style="display:none;" class="rid"><a href="#">Отметить</a> / <a href="#">Снять отмечаные</a></span></div>';
  38.             echo '<tr><th colspan="2"></th></tr>';
  39.                 $result=array();
  40.                 for ($i = 0; $i < sizeof($this->serverList); $i++) {
  41.                         if ($this->serverList[$i]['check']){
  42. $result[] =                             $this->showDomainResult($domainName.".".$this->serverList[$i]['tld'],
  43.                                                         $this->serverList[$i]['server'],
  44.                                                         $this->serverList[$i]['response']);
  45.                                                                                        
  46.                             }
  47.                     }
  48.                                                                                         if(count($result)==0){
  49.                                                                                                 echo "<b>Ошибка!</b> Вы не выбрали ни одну доменную зону для проверки.";
  50.                                                                                         }
  51.                     echo '</table>';
  52.         }
  53. }


Первый раз, когда я ввожу домен, все нормально. Выводит результат по нужному домену.
Второй раз, уже с выведенным результатом тоже все нормально.
Но 3й раз, какой бы домен я не вводил, показывается результат #2.
Проверил POST запрос
Там 2 раза передается $_POST["domain"];
Причем оба раза, разные.
Первый - тот который мне нужен, а второй домен из результата 2.
Можно как нибудь убрать этот второй домен?

Результаты после 2й проверки как бы стакаются, чего происходить не должно.
twelveee Отправлено: 09 Ноября, 2014 - 18:53:27 • Тема: Запись в постоянную переменную • Форум: Программирование на PHP

Ответов: 0
Просмотров: 139
Здравствуйте.
Задался таким вопросом. Точнее, столкнулся с проблемой..

Есть переменная, которая указана при определенном условии. НО!
Она мне нужна тогда, когда это условие не выполняется.

Вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['next'])){
  3. // Переделать структуру файла, if(){}else{}
  4. $tpl->load_template('mod_buy.tpl');
  5. $tpl->compile('content');
  6. $tpl->clear();
  7. foreach($_POST['count'] as $count=>$value){
  8. if($_POST['count'][$count]>0){
  9. $tpl->load_template('mod_buy2.tpl');
  10. $price = $_POST['price'][$count];
  11. $tpl->set('{buy_count}', $_POST['count'][$count]);
  12. $tpl->set('{buy_name}', $_POST['name'][$count]);
  13. $tpl->set('{buy_price}', $price);
  14. $tpl->set('{buy_price_full}', $price*$_POST['count'][$count]);
  15. $tpl->compile('content');
  16. $tpl->clear();
  17. }
  18. }
  19. $tpl->load_template('mod_buy3.tpl');
  20. $tpl->compile('content');
  21. $tpl->clear();
  22. }
  23. elseif(isset($_POST['submit'])){
  24. echo $zakaz;
  25. foreach ($_POST['count'] as $i){
  26.     if (is_numeric($i) and $i>0){    
  27. $buy_count = $_POST['count'][$i];
  28. $buy_name_mail = $_POST['count'][$i];
  29. $fullprice = $price*$_POST['count'][$i];       
  30. $email = $_POST['email'];
  31. $zakaz = <<<HTML
  32. Заказ:\n
  33. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\\n
  34. = Товар: $buy_name_mail\n
  35. = Кол-во: $buy_count\n
  36. = Общаяя цена за товар: $fullprice\n
  37. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  38. HTML;
  39. $message = <<<HTML
  40. Данные заказа \n
  41. --------------------------\n
  42. Контактный Email: $email\n
  43. Скайп: $skype\n
  44. Ссылка на профиль стим: $steam\n
  45. --------------------------\n
  46. $zakaz
  47. HTML;
  48. if(isset($_POST['email']) AND isset($_POST['steam']) AND isset($_POST['oplata'])){
  49. msgbox('Усшпешно!', 'Ожидайте, скоро Вам ответят по Email или Skype.');
  50. mail('test@gmail.com', 'Новый заказ', $message);
  51. }
  52. else{
  53. msgbox('Ошибка', 'Вы заполнили не все обязательные поля.');
  54. }
  55. }
  56. }
  57.  
  58. }
  59.  


Как уже можно понять, 2й foreach не работает. Потому что нет $_POST['count'] во 2й форме.

Нужна Ваша помощь. Необходим вывод этой переменной $zakaz во 2м условии..
twelveee Отправлено: 09 Ноября, 2014 - 12:37:31 • Тема: Проверка, есть ли в массиве число > 0 • Форум: Программирование на PHP

Ответов: 12
Просмотров: 2011
CODE (htmlphp):
скопировать код в буфер обмена
  1. foreach ($dataset as $i)
  2.     if (is_numeric($i) and $i>0)
  3.         return true;
  4. return false;


Работает! Спасибо) Тему клоз)
twelveee Отправлено: 08 Ноября, 2014 - 20:50:30 • Тема: Проверка, есть ли в массиве число > 0 • Форум: Программирование на PHP

Ответов: 12
Просмотров: 2011
В общем то в названии и указана проблема)
Нужно проверить, есть ли в массиве (расположенном в другом фале) число больше 0. Хоть одно.

Заранее спасибо)
twelveee Отправлено: 08 Ноября, 2014 - 13:16:06 • Тема: Цикл вывода названий из списка • Форум: Программирование на PHP

Ответов: 0
Просмотров: 159
В общем. Нужно сделать http://chinabox[dot]com[dot]ua/main
корзину.

Я сделал примерно такое же, но никак не могу понять.
Мне нужны названия товаров, которых выбрано более 0.


То есть, после нажатия кнопки "Продать", открывался некий mod_buy.tpl в котором выводится список и количество товаров.

Как это можно осуществить?

Была такая попытка:
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['submit'])){
  3. $tpl->global_clear();   // Переделать структуру файла, if(){}else{}
  4. $tpl->load_template('mod_buy.tpl');
  5. @int($_POST['count']);
  6. while($_POST['count']>0){
  7. $tpl->set('{buy_name}', $_POST['name']);
  8. }
  9. $tpl->compile('content');
  10. $tpl->clear();
  11. }
  12.  


Сам код написан под DLE (Datalife Engine)
(Добавление)
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     session_start();
  3.    
  4.     // Название товара
  5.     $_SESSION['item'] = $_POST['item'];
  6.     // Кол-во товара
  7.     $_SESSION['count'] = $_POST['count'];
  8.     // Цена товара
  9.     $_SESSION['price'] = 100;
  10.    
  11.     if(isset($_SESSION['item']) and is_numeric($_SESSION['count'])){
  12.         echo "Вы добавили товар в карзину!<br/>";
  13.         echo "Его кол-во ".$_SESSION['count']."<br/>";
  14.         echo "Вы должны заплатить: ".$_SESSION['count'] * $_SESSION['price']." рублей<hr/>";
  15.     }
  16. ?>


Но с While)
twelveee Отправлено: 20 Июля, 2014 - 08:30:02 • Тема: Редактирование конфиг-файла в php • Форум: Программирование на PHP

Ответов: 7
Просмотров: 933
Спасибо всем за ответы!
Решил проблему следующим образом:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.                         if(isset($_POST['submit'])){
  3. $template = '<?php
  4. $config_tcinema = Array(
  5.   "title"   => "%s",
  6.   "url"  => "%s",
  7.   "config_url"  => "%s"
  8. );
  9.  
  10. define("template", "%s");
  11. ?>';
  12.  file_put_contents($_SERVER['DOCUMENT_ROOT']."/configs/config.php", sprintf($template, $_POST['title'], "templates", $_SERVER["DOCUMENT_ROOT"]."/configs", $_POST['template']));
  13.                         }
  14.  
twelveee Отправлено: 17 Июля, 2014 - 19:10:14 • Тема: Редактирование конфиг-файла в php • Форум: Программирование на PHP

Ответов: 7
Просмотров: 933
Можно поподробнее про 2й вариант?
Насколько я понял,
PHP:
скопировать код в буфер обмена
  1. $config_tcinema['title'] = $_POST['title'];

нужно вставлять в скрипт редактирования, а var_export();
в самом конфиге. Так ли это?
и что нужно прописывать в var_export?
twelveee Отправлено: 17 Июля, 2014 - 15:04:25 • Тема: Редактирование конфиг-файла в php • Форум: Программирование на PHP

Ответов: 7
Просмотров: 933
Спасибо за ответ, но это не совсем то, что нужно. В файле config.php не только этот массив.
А обновлять сразу много массивов, не очень правильно.

file_put_contents просто перезаписывает файл.
Мне же нужна перезапись только переменной. Это осуществимо?
Как вариант можно сделать при помощи mysql, но задача стоит именно файлом.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB