Для таких как Вы в начале первого поста добавил курсивом примечание. Может стоит называть вещи своими именами? Именно, для локалки IP на скрине считались внешними, но дилетантам не понять, они сразу ищут повод для разбирательств ) Зато "не делетанты" : 1) Называют частные диапазоны адресов "внешными". 2) Получают содержание страницы другого сайта через http враппер 3) Пишут откровенный быдлокод (статика в двойных кавычках, перебор массивов конструкцией вида: for ($i=0 ; $i<count($array) ; $i++) {} , объявление кода short open tag и т. д.)
Ну, а если требуется вывести IP адрес именно сервера(внешний), где выполняется пхп скрипт? Сразу кто то из вас скажет, так есть же ещё одна суперглобальная переменная окружения! Код: $_SERVER['SERVER_ADDR'] Конечно! Так то оно так, но есть одна проблема, она покажет только локальный IP адрес сервера, обычно это 127.0.0.1 Может просто стоит правильно настраивать сервер? :) [IMG] [IMG] [IMG] --- добавлено: 21 янв 2015 в 15:49 --- P. S. С каких пор IP вида 192.168.*.* стал внешним? :^) [IMG]
[IMG]
Запилить то можно. Найти бы пакет, который отвечает за проверку статуса персонажа - онлайн/оффлайн
До первого DDoS'а :)
"Советы" от "про разработчиков" видны не вооруженным глазом. [IMG] [IMG] [IMG] [IMG]
Может проще было скинуть ссылку на саму статью и все? )
Не) восстановил тему просто ) Какую?
Еще один что ли ?
[IMG] [IMG] [IMG]
Странно, что у команды web-разработчиков нет своего сайта. Как говорится: "Сапожник без сапог".
Разработка CMS - от 8000 рублей Пример кода можно увидеть ?
В целом топ вроде бы не плох. По крайне мере получше тех поделок на джумле, которые тут рекламировали когда-то.
Laravel, что даёт быстроту и лёгкость Ну ну) Laravel - это кастрированный Symfony (Laravel собран на компонентах Symfony). К тому же он оказался медленнее и прожорливее, чем сам Symfony. salitypw, я не говорю что Laravel самый лучший фрейм, но относительно тех которые я использовал до него, для написания топа, он в разы лучше. А я не говорил, что он худший) Просто он медленный :)
Laravel, что даёт быстроту и лёгкость Ну ну) Laravel - это кастрированный Symfony (Laravel собран на компонентах Symfony). К тому же он оказался медленнее и прожорливее, чем сам Symfony.
Помогите доработать код Создание чата на php sql: DROP SCHEMA IF EXISTS `pm` ; CREATE SCHEMA IF NOT EXISTS `pm` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; USE `pm` ; -- ----------------------------------------------------- -- Table `pm`.`user` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `pm`.`user` ( `id_user` INT UNSIGNED NOT NULL AUTO_INCREMENT, `login` VARCHAR(45) NULL, `pass` VARCHAR(45) NULL, `name` VARCHAR(45) NULL, `lastname` VARCHAR(45) NULL, `middlename` VARCHAR(45) NULL, PRIMARY KEY (`id_user`), UNIQUE INDEX `id_user_UNIQUE` (`id_user` ASC)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `pm`.`message` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `pm`.`message` ( `id_message` INT UNSIGNED NOT NULL AUTO_INCREMENT, `from` INT UNSIGNED NOT NULL, `to` INT UNSIGNED NOT NULL, `msg` VARCHAR(255) NULL, `viewed` TINYINT UNSIGNED NOT NULL, `dt` DATETIME NULL, PRIMARY KEY (`id_message`), UNIQUE INDEX `id_message_UNIQUE` (`id_message` ASC)) ENGINE = InnoDB; php: Класс для работы с БД. <?php class Db { private static $dbserver = 'mysql'; private static $dbname = 'pm'; private static $dbuser = 'root'; private static $dbpass = ''; private static $host = 'localhost'; private static $instance = null; public static function getInstance() { if(self::$instance === null) { $dsn = self::$dbserver . ':dbname=' . self::$dbname . ';host=' . self::$host; try { self::$instance = new PDO($dsn, self::$dbuser, self::$dbpass); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); exit; } } return self::$instance; } } Php сообщение Прототип класса "Сообщение". <?php require_once __DIR__.'/Db.php'; class Message { public $id; public $msg; public $from; public $to; public $dt; public $viewed; public function __construct($id) { $sql = 'SELECT `id_message`, `msg`, `from`, `to`, `dt`, `viewed` FROM message WHERE `id_message`=:id'; $dbh = Db::getInstance(); $sth = $dbh->prepare($sql); $sth->execute(array(':id' => (int)$id)); $message = $sth->fetchAll(PDO::FETCH_NUM); list($this->id, $this->msg, $this->from, $this->to, $this->dt, $this->viewed) = array_shift($message); } public static function getMessagesByUserId($id_user, $only_new = true) { $sql = ' SELECT m.`id_message`, m.`msg`, m.`from`, m.`dt`, u.`firstname` as `friend` FROM message m left join user u ON u.`id_user`=m.`from` WHERE m.`to` = :user_id and m.`viewed`=:only_new' ; $dbh = Db::getInstance(); $sth = $dbh->prepare($sql); $sth->execute(array(':user_id' => (int)$id_user, ':only_new' => (int)!$only_new)); $messages = $sth->fetchAll(PDO::FETCH_ASSOC); return $messages; } public static function markAsViewed($id) { $sql = 'UPDATE `message` SET `viewed`=1 WHERE `id_message`=:id'; $dbh = Db::getInstance(); $sth = $dbh->prepare($sql); $sth->execute(array(':id' => (int)$id)); } } Php контроллер Прототип контроллера (index.php). <html> <head> <style> .pm { margin-bottom: 20px; } .from { font-weight: bold; float: left; padding-right: 7px; } .date { } .msg { font-style: italic; } .ops { } </style> </head> <body> <?php require_once __DIR__.'/Message.php'; if(!empty($_GET['op']) && !empty($_GET['id_msg'])) { switch ($_GET['op']) { case 'viewed': Message::markAsViewed((int)$_GET['id_msg']); break; } } $messages = Message::getMessagesByUserId(2); if(!$messages) { echo 'there no messages'; exit; } foreach($messages as $m) { echo ' <div class="pm"> <div class="from">'.$m['friend'].'</div> <div class="date">'.$m['dt'].'</div> <div class="msg">'.$m['msg'].'</div> <div class="ops"> operations: <a href="?op=viewed&id_msg='.$m['id_message'].'">viewed</a> </div> </div> '; } ?> </body> </html> Могу помочь на досуге. Скайп: salitypw
Прикрутить платежный шлюз
а) Создать функцию, возвращающую среднее арифметическое всех элементов массива, который передается в параметре. <?php function averageValue($array = array()) { return array_sum($array) / count($array); } б) Создать функцию, возвращающую значение максимального элемента массива, который передается в параметре. <?php function maxValue($array = array()) { return max($array); } в) Создать функцию, обменивающую местами значения двух передаваемых ей по ссылке аргументов. <?php function exchangeValues(&$value1, &$value2) { list($value2, $value1) = array($value1, $value2); } г) Объединить все функции в класс «Math», таким образом, сделав их методами данного класса. <?php class Math { /** * Average value. * * @access public * * @param array - Input array * * @return float|int */ public function averageValue($array = array()) { return array_sum($array) / count($array); } /** * Max value. * * @access public * * @param array - Input array * * @return float|int */ public function maxValue($array = array()) { return max($array); } /** * Exchange values. * * @access public * * @param mixed - Value1 * @param mixed - Value2 * * @return void */ public function exchangeValues(&$value1, &$value2) { list($value2, $value1) = array($value1, $value2); } }
:D:D:D
Имена участников (разделяйте запятой).