PHP.SU

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

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

> Найдено сообщений: 301
new01 Отправлено: 11 Августа, 2013 - 23:21:51 • Тема: Не пойму в чем дело!? Помогите • Форум: Работа с СУБД

Ответов: 15
Просмотров: 3006
Саныч пишет:
new01 пишет:
А почему забывать MySQL? И переходить на MySQLi либо PDO?

http://ua1.php.net/manual/ru/faq...mysql.deprecated
http://ua1.php.net/manual/ru/mys...api.choosing.php
Изучайте. Вкратце, mysql устарело и уже объявлено нежелательным к использованию. В будущем исчезнет вобще. А так как вы только начинаете изучать, настоятельно советую начать с mysqli, зачем учить то, что уже не актуально.


Спасибо, очень пригодится, приму к сведению.
new01 Отправлено: 11 Августа, 2013 - 23:01:22 • Тема: Не пойму в чем дело!? Помогите • Форум: Работа с СУБД

Ответов: 15
Просмотров: 3006
Саныч пишет:
Это говорит о том, что вы не понимаете кода, который пишите.
Почитайте внимательно описание функции mysql_fetch_assoc, думаю поймете в чем была ваша проблема. Ну если вам это нужно конечно.
И да, начинайте забывать MySQL и изучать MySQLi либо PDO.


А почему забывать MySQL? И переходить на MySQLi либо PDO?
new01 Отправлено: 11 Августа, 2013 - 13:06:06 • Тема: Как скачать файл с удаленного сервера • Форум: Вопросы новичков

Ответов: 3
Просмотров: 273
Мелкий, спасибо. А без загрузки к себе на сервер никак нельзя? К примеру, обратиться на сервер и узнать размер файла?

Нашёл вот такой вариант через HEAD заголовки, заранее обратиться к серверу и вытащить оттуда размер. Вроде то.

PHP:
скопировать код в буфер обмена
  1.  
  2. $head = get_headers("$urlfile");
  3. echo $head[4]; // Результат "Content-Length: 7551751" в байтах
  4.  
new01 Отправлено: 11 Августа, 2013 - 12:50:12 • Тема: Как скачать файл с удаленного сервера • Форум: Вопросы новичков

Ответов: 3
Просмотров: 273
Задача такая: скачать mp3 файл по ссылке (ссылка прямо введет на mp3 файл) сам mp3 файл находится не на моем сервере. Использую ниже приведенный скрипт. Он работает, но с некоторыми ошибками:
1) Файл сразу начинает скачиваться, но его полный размер неизвестен.
2) Хотелось бы изменить имя сохраняемого файла на компьютер.

Заранее всем спасибо.
PHP:
скопировать код в буфер обмена
  1.  
  2. function file_force_download($file) {
  3.     if (ob_get_level()) {
  4.       ob_end_clean();
  5.     }
  6.     header('Content-Description: File Transfer');
  7.     header('Content-Type: application/octet-stream');
  8.     header('Content-Disposition: attachment; filename='.basename($file));
  9.     header('Content-Transfer-Encoding: binary');
  10.     header('Expires: 0');
  11.     header('Cache-Control: must-revalidate');
  12.     header('Pragma: public');
  13.     header('Content-Length: ' . filesize($file));
  14.     ob_clean();
  15.     flush();
  16.     readfile($file);
  17.    exit;
  18. }
  19.  
new01 Отправлено: 29 Марта, 2013 - 17:39:08 • Тема: Ajax - обрезанный ответ в Mozilla • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 1126
DeepVarvar, 100% попадание, спасибо Улыбка
new01 Отправлено: 29 Марта, 2013 - 17:00:16 • Тема: Ajax - обрезанный ответ в Mozilla • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 1126
Проблема такая: с сайта отправляется с помощью ajax запрос на сервер, сервер же возвращает ответ посредством XML (ответ сам-по-себе это HTML код), во всех браузерах всё нормально работает, но в Mozilla ответ всегда обрезанный, т.е. например ответ содержит 500 строк, но в браузере выводится только 300, причем всегда обрезает на том же самом месте. На каком этапе обрезается тоже непонятно.

Кто-нибудь знает, в чём может быть проблема?

Вот часть JS кода создания объекта для AJAX cоединения.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function createXmlHttpRequestObject(){
  3.         var xmlHttp;
  4.         try{
  5.                 xmlHttp=new XMLHttpRequest();
  6.                 xmlHttp.overrideMimeType('text/xml');
  7.         } catch(e) {
  8.                 var XmlHttpVersions=new Array ("MSXML2.XMLHTTP.6.0",
  9.                                                                                 "MSXML2.XMLHTTP.5.0",
  10.                                                                                 "MSXML2.XMLHTTP.4.0",
  11.                                                                                 "MSXML2.XMLHTTP.3.0",
  12.                                                                                 "MSXML2.XMLHTTP",
  13.                                                                                 "Microsoft.XMLHTTP");
  14.                 for(var i=0; i<XmlHttpVersions.length && !xmlHttp;i++){
  15.                         try{
  16.                                 xmlHttp=new ActiveXObject(XmlHttpVersions[i]);
  17.                         } catch(e){
  18.                                
  19.                         }
  20.                 }
  21.         }
  22.         if(!xmlHttp){
  23.                 alert("Ошибка создания объекта!");
  24.         } else {
  25.         return xmlHttp;
  26.         }
  27. }
  28.  
new01 Отправлено: 29 Августа, 2012 - 19:53:12 • Тема: Выборка по полю DATETIME • Форум: Вопросы новичков

Ответов: 6
Просмотров: 365
спасибо :=)
new01 Отправлено: 29 Августа, 2012 - 19:46:05 • Тема: Выборка по полю DATETIME • Форум: Вопросы новичков

Ответов: 6
Просмотров: 365
KingStar пишет:
попробуй

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(id) FROM Static WHERE Datetime BETWEEN STR_TO_DATE('2012-28-08 00:00:00', '%Y-%m-%d %H:%i:%s')
  2.   AND STR_TO_DATE('2012-29-08 00:00:00', '%Y-%m-%d %H:%i:%s');


Результат НОЛЬ строк.
new01 Отправлено: 29 Августа, 2012 - 19:25:30 • Тема: Выборка по полю DATETIME • Форум: Вопросы новичков

Ответов: 6
Просмотров: 365
KingStar пишет:
а по твоему формат 08/28/2012 00:00:00 от 2012-08-28 01:07:50 ничем не отличается???

Отличается, конечно по-моему. Да, извините. Но до этого использовал такой формат для того, чтоб ы осуществлять выборку такого типа:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(id) FROM Static WHERE Datetime>'08/28/2012 00:00:00'

И она работала только с форматом 08/28/2012. KingStar, спасибо, указал на мою ошибку.
(Добавление)
Нет, надо сказать, что я ошибся. Запрос
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(id) FROM Static WHERE Datetime BETWEEN '2012-28-08 00:00:00' AND '2012-29-08 00:00:00'

также возращает результат в НОЛЬ строк. Почему же он не находит эту строку?
Пояснение: этим запросам я ищу любые строки, у которых дата определенного дня, но время значения не имеет.
new01 Отправлено: 29 Августа, 2012 - 19:20:07 • Тема: Выборка по полю DATETIME • Форум: Вопросы новичков

Ответов: 6
Просмотров: 365
Не пойму почему не находит в таблице нужную строку. Вот запрос:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(id) FROM Static WHERE Datetime BETWEEN '08/28/2012 00:00:00' AND '08/29/2012 00:00:00'

Поле Datetime типа Datetime. Сама таблица содержит строки, где поле Datetime='2012-08-28 01:07:50'. Но результат вышеприведенного запроса 0 строк. Почему так происходит?
Заранее всем спасибо.
new01 Отправлено: 08 Августа, 2012 - 21:31:29 • Тема: Определние IP пользователя • Форум: Вопросы новичков

Ответов: 1
Просмотров: 184
Добрый вечер. Скрипт пользователя EuGen определения IP адреса пользователя.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. class Network_Simple
  4. {
  5.  
  6.     protected $sCurrentIP;    
  7.  
  8.     protected $rgLocalSubnets=array(
  9.  
  10.         array('net'=>'10.0.0.0',    'mask'=>8),
  11.  
  12.         array('net'=>'192.168.0.0', 'mask'=>16)
  13.  
  14.     );
  15.  
  16.  
  17.  
  18.     function __construct($sCurrentIp=null)
  19.  
  20.     {
  21.  
  22.         $this->sCurrentIp=$sCurrentIp?$sCurrentIp:$_SERVER['REMOTE_ADDR'];
  23.  
  24.     }
  25.  
  26.     /**
  27.  
  28.      * Useful for DHCP purposes. Returns first free IP in specified subnet
  29.  
  30.      * @param array $rgIPs List of busy IP
  31.  
  32.      * @param array $rgSubnet Subnet presentation. Must contain keys 'net' and 'mask'
  33.  
  34.      * @return mixed
  35.  
  36.      */
  37.  
  38.     public function leaseAddressDHCP($rgIPs, $rgSubnet)
  39.  
  40.     {
  41.  
  42.        $rgLongs=array_map(create_function('$ip', 'return sprintf("%u", ip2long($ip));'), $rgIPs);
  43.  
  44.        $rgSubnets=range(sprintf("%u", ip2long($rgSubnet['net']))+1, sprintf("%u", ip2long($rgSubnet['net']))+pow(2,32-$rgSubnet['mask'])-1);
  45.  
  46.        $rgResult=array_diff($rgSubnets, $rgLongs);
  47.  
  48.        if(!count($rgResult))
  49.  
  50.        {
  51.  
  52.           return null;
  53.  
  54.        }
  55.  
  56.        return long2ip(array_shift($rgResult));
  57.  
  58.     }
  59.  
  60.     /**
  61.  
  62.      * Returns full table of free IP addresses in $rgSubnet
  63.  
  64.      * @param array $rgIPs List of busy IP
  65.  
  66.      * @param array $rgSubnet Subnet presentation. Must contain keys 'net' and 'mask'
  67.  
  68.      * @return mixed
  69.  
  70.      */
  71.  
  72.     public function leaseTableDHCP($rgIPs, $rgSubnet)
  73.  
  74.     {
  75.  
  76.        $rgLongs=array_map(create_function('$ip', 'return sprintf("%u", ip2long($ip));'), $rgIPs);
  77.  
  78.        $rgSubnets=range(sprintf("%u", ip2long($rgSubnet['net']))+1, sprintf("%u", ip2long($rgSubnet['net']))+pow(2,32-$rgSubnet['mask'])-1);
  79.  
  80.        $rgResult=array_diff($rgSubnets, $rgLongs);
  81.  
  82.        $rgResult=array_map(create_function('$ip', 'return long2ip($ip);'), $rgResult);
  83.  
  84.        if(!count($rgResult))
  85.  
  86.        {
  87.  
  88.           return null;
  89.  
  90.        }
  91.  
  92.        return $rgResult;
  93.  
  94.     }
  95.  
  96.     /**
  97.  
  98.      * Returns MAC-address (Ethernet 2-level in OSI model address)
  99.  
  100.      * @param string $ip Address to search MAC for. If not set, IP-address from constructor'll be used
  101.  
  102.      * @return mixed
  103.  
  104.      */
  105.  
  106.     public function getMAC($ip=null)
  107.  
  108.     {
  109.  
  110.         if((!$ip && !$this->sCurrentIP) || !$this->_arp_allowed())
  111.  
  112.         {
  113.  
  114.             return null;
  115.  
  116.         }
  117.  
  118.         $ip=$ip?$ip:$this->sCurrentIP;
  119.  
  120.         $rgMatches=array();
  121.  
  122.         if(PHP_OS=='WINNT')
  123.  
  124.         {
  125.  
  126.            exec("arp -a", $rgResult);
  127.  
  128.            $sMacTemplate="/[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}\-[\d|A-F]{2}/i";
  129.  
  130.            foreach($rgResult as $key=>$value)
  131.  
  132.            {
  133.  
  134.               if (strpos($value, $ip)!==FALSE)
  135.  
  136.               {
  137.  
  138.                  preg_match($sMacTemplate, $value, $rgMatches);
  139.  
  140.                  break;
  141.  
  142.               }
  143.  
  144.            };
  145.  
  146.         }
  147.  
  148.         else
  149.  
  150.         {
  151.  
  152.            exec("arp -a | grep $ip", $rgResult);
  153.  
  154.            if(count($rgResult))
  155.  
  156.            {
  157.  
  158.                $sMacTemplate="/[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}\:[\d|A-F]{2}/i";
  159.  
  160.                preg_match($sMacTemplate, $rgResult[0], $rgMatches);
  161.  
  162.            }
  163.  
  164.         }
  165.  
  166.         return count($rgMatches)?$rgMatches[0]:null;
  167.  
  168.     }
  169.  
  170.     /**
  171.  
  172.      * Get client remote IP address
  173.  
  174.      * @param boolean $bReturnLocalIP If set to true, local subnet address'll be returned (if present)
  175.  
  176.      * @return string
  177.  
  178.      */
  179.  
  180.     public function getRemoteIP($bReturnLocalIP=false)
  181.  
  182.     {
  183.  
  184.         if($_SERVER['HTTP_X_FORWARDED_FOR'])
  185.  
  186.         {
  187.  
  188.             $rgIPs=preg_split('/\s+/s', $_SERVER['HTTP_X_FORWARDED_FOR'], -1, PREG_SPLIT_NO_EMPTY);
  189.  
  190.             foreach($rgIPs as $ip)
  191.  
  192.             {
  193.  
  194.                 if($bReturnLocalIP)
  195.  
  196.                 {
  197.  
  198.                     return $ip;
  199.  
  200.                 }
  201.  
  202.                 else
  203.  
  204.                 {
  205.  
  206.                     $bIsLocal=false;
  207.  
  208.                     foreach($this->rgLocalSubnets as $rgSubnet)
  209.  
  210.                     {
  211.  
  212.                         if($this->isInSubnet($rgSubnet, $ip))
  213.  
  214.                         {
  215.  
  216.                             $bIsLocal=true;
  217.  
  218.                         }
  219.  
  220.                     }
  221.  
  222.                     if(!$bIsLocal)
  223.  
  224.                     {
  225.  
  226.                         return $ip;
  227.  
  228.                     }
  229.  
  230.                 }
  231.  
  232.             }
  233.  
  234.         }
  235.  
  236.         return $_SERVER['REMOTE_ADDR'];
  237.  
  238.     }
  239.  
  240.     /**
  241.  
  242.      *
  243.  
  244.      * @param array $rgSubnet Subnet presentation. Must contain keys 'net' and 'mask'
  245.  
  246.      * @param string $ip IP address to compare with subnet
  247.  
  248.      * @return boolean
  249.  
  250.      */
  251.  
  252.     public function isInSubnet($rgSubnet, $ip=null)
  253.  
  254.     {
  255.  
  256.         if((!$ip && !$this->sCurrentIP)|| !is_array($rgSubnet))
  257.  
  258.         {
  259.  
  260.             return false;
  261.  
  262.         }
  263.  
  264.         $ip=$ip?$ip:$this->sCurrentIP;
  265.  
  266.         if(!is_int($rgSubnet['mask']))
  267.  
  268.         {
  269.  
  270.             $rgSubnet['mask']=(int)log(($this->ip2Long('255.255.255.255')-$this->ip2Long($rgSubnet['mask'])),2);
  271.  
  272.         }
  273.  
  274.         $binIP    = sprintf("%032b",$this->ip2Long($ip));
  275.  
  276.         $binNet   = sprintf("%032b",$this->ip2Long($rgSubnet['net']));
  277.  
  278.         return (substr_compare($binIP,$binNet,0,$rgSubnet['mask']) === 0);
  279.  
  280.     }
  281.  
  282.     /**
  283.  
  284.      *
  285.  
  286.      * @param string $ip Address to convert. If not set, IP-address from constructor'll be used
  287.  
  288.      * @return mixed
  289.  
  290.      */
  291.  
  292.     public function ip2Long($ip=null)
  293.  
  294.     {
  295.  
  296.         //lazy:
  297.  
  298.         if(!$ip && !$this->sCurrentIP)
  299.  
  300.         {
  301.  
  302.             return null;
  303.  
  304.         }
  305.  
  306.         $ip=$ip?$ip:$this->sCurrentIP;
  307.  
  308.         return sprintf("%u", ip2long($ip));
  309.  
  310.     }
  311.  
  312.     //arp may be unreachable due to system security; we still rely on 'which' command
  313.  
  314.     protected function _arp_allowed()
  315.  
  316.     {
  317.  
  318.         if(PHP_OS=='WINNT')
  319.  
  320.         {
  321.  
  322.             return true;
  323.  
  324.         }
  325.  
  326.         $rgResult=array();
  327.  
  328.         exec("which arp 2>&1", $rgResult);
  329.  
  330.         if(!count($rgResult))
  331.  
  332.         {
  333.  
  334.             return false;
  335.  
  336.         }
  337.  
  338.         return !preg_match('/no arp/i',$rgResult[0]);
  339.  
  340.     }
  341.  
  342.    
  343.  
  344. }
  345.  

Пример использования скрипта.
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $rgSubnet=array('net'=>'86.45.68.22', 'mask'=>30);
  4.  
  5. $rNet=new Network_Simple();
  6.  
  7. $sIP=$rNet->getRemoteIP();
  8.  
  9. if($rNet->isInSubnet($rgSubnet, $sIP)){
  10.      echo $sIP." был определен как принадлежащий подсети";
  11. }
  12. if($rNet->isInSubnet($rgSubnet)){
  13.      echo $_SERVER['REMOTE_ADDR']." был определен как принадлежащий подсети";
  14. }
  15.  
  16. $sMAC=$rNet->getMAC();
  17.  
  18. //операции с MAC-адресом
  19. ?>
  20.  


Вопросы:
1) Зачем вводится массив $rgSubnet. Переменные $rgSubnet['net'] и $rgSubnet['mask'] надо как-то подстраивать для себя?
2) Условия
PHP:
скопировать код в буфер обмена
  1. if($rNet->isInSubnet($rgSubnet, $sIP))
и
PHP:
скопировать код в буфер обмена
  1. if($rNet->isInSubnet($rgSubnet))
определяют используется ли прокси сервер?

Заранее спасибо.
new01 Отправлено: 03 Августа, 2012 - 14:04:52 • Тема: Партнерская программа • Форум: Вопросы новичков

Ответов: 8
Просмотров: 812
Мелкий пишет:
Все домены - для удобства
Так или иначе, это для управления нагрузкой обычно используется. Тема интересная, но у меня нет соответствующего опыта.

Понятно. Спасибо :=)
new01 Отправлено: 03 Августа, 2012 - 13:43:41 • Тема: Партнерская программа • Форум: Вопросы новичков

Ответов: 8
Просмотров: 812
Мелкий пишет:
Это нормальная практика - фронт-контроллер. А без ЧПУ его делать просто неудобно.

Мелкий, спасибо. Заметил, что многие партнерки используют для этих целей домены третьего уровня, т.е. ява скрипт берется с домена типо такого ""http://p6545.domainad.com/adout.js?p=61774&t=1". Это просто для удобства? или зачем-то ещё?
new01 Отправлено: 03 Августа, 2012 - 11:48:46 • Тема: Партнерская программа • Форум: Вопросы новичков

Ответов: 8
Просмотров: 812
Мелкий пишет:
Запросите браузером урл по src в коде и копайте.

new01 пишет:
когда вызывается php скрипт

Честно, первым же делом так и сделал, но только сейчас сообразил, что выводим блок с объявлениями через "document.write(...".

Мелкий пишет:

О ЧПУ слышали? Теми же средствами adout.js в вашем примере не существует в действительности.


Да. Действительно, я вначале подумал сразу же про ЧПУ, но как-то не высказался по этому поводу. Как вы считаете это нормальная практика в этом случае использовать ЧПУ?

Stierus пишет:
new01, если я не знаю, что такое партнерка, можешь описать, что ты делать собрался?

Да, могу.

OrmaJever пишет:
Забавно, с таким успехом я делаю социальную сеть по типу фейсбука, но вот немогу понять как у них там всё реализировано, может подскажите?
Вобщем если вы не понимаете принципа работы и даже не можите его понять по сайтам примерам, то чем помочь? Как вы собрались это писать?
В какойто степени это про вас http://www.yaplakal.com/forum2/topic462530.html


мм. Понятно.
new01 Отправлено: 02 Августа, 2012 - 23:33:20 • Тема: Партнерская программа • Форум: Вопросы новичков

Ответов: 8
Просмотров: 812
Добрый день. Делаю партнерскую сайт партнерской программы. Думал, как это правильно реализовать и ничего дельного не надумал. Посмотрел примеры результат ноль. Помогите с логикой реализации самой партнерки, т .е. вебмастер зарегистрировался, добавил свою площадку (эти функции уже сделаны) и ему даётся какой-то код блока с объявлениями или баннера, который он размещает у себя на сайте.

Вопрос:
Смотрел как сделано у других. У них вебмастеру дается javascript (пример: «<script type="text/javascript" src="http://domainad[dot]com /adout.js?p=61774&t=1">
</script>»), который вызывает ява сценарий с сайта партнёрки. Так вот, честно, не могу понять, что там да как выдаёт саму рекламу, когда вызывается php скрипт, который определит урл, откуда вызывают рекламы, ip адес и т.п., а потом уже выдаст рекламу на основании предудыщих данных. Подскажите, пожалуйста, принцип действия вызова рекламных материалов на сайт вебмастера.

Заранее спасибо.

Страниц (21): « 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