PHPвопросы по PHP
#82
Отправлено 19.02.2006, 01:01:49
в php для этого есть целый класс.вопрос:
как реализовать ping на php?
ну или хотя бы проверить жив ли хост или нет.
<?php class Net_Ping { var $icmp_socket; var $request; var $request_len; var $reply; var $errstr; var $time; var $timer_start_time; function Net_Ping() { $this->icmp_socket = socket_create(AF_INET, SOCK_RAW, 1); socket_set_block($this->icmp_socket); } function ip_checksum($data) { for($i=0;$i<strlen($data);$i += 2) { if($data[$i+1]) $bits = unpack('n*',$data[$i].$data[$i+1]); else $bits = unpack('C*',$data[$i]); $sum += $bits[1]; } while ($sum>>16) $sum = ($sum & 0xffff) + ($sum >> 16); $checksum = pack('n1',~$sum); return $checksum; } function start_time() { $this->timer_start_time = microtime(); } function get_time($acc=2) { // format start time $start_time = explode (" ", $this->timer_start_time); $start_time = $start_time[1] + $start_time[0]; // get and format end time $end_time = explode (" ", microtime()); $end_time = $end_time[1] + $end_time[0]; return number_format ($end_time - $start_time, $acc); } function Build_Packet() { $data = "abcdefghijklmnopqrstuvwabcdefghi"; // the actual test data $type = "\x08"; // 8 echo message; 0 echo reply message $code = "\x00"; // always 0 for this program $chksm = "\x00\x00"; // generate checksum for icmp request $id = "\x00\x00"; // we will have to work with this later $sqn = "\x00\x00"; // we will have to work with this later // now we need to change the checksum to the real checksum $chksm = $this->ip_checksum($type.$code.$chksm.$id.$sqn.$data); // now lets build the actual icmp packet $this->request = $type.$code.$chksm.$id.$sqn.$data; $this->request_len = strlen($this->request); } function Ping($dst_addr,$timeout=5,$percision=3) { // lets catch dumb people if ((int)$timeout <= 0) $timeout=5; if ((int)$percision <= 0) $percision=3; // set the timeout socket_set_option($this->icmp_socket, SOL_SOCKET, // socket level SO_RCVTIMEO, // timeout option array( "sec"=>$timeout, // Timeout in seconds "usec"=>0 // I assume timeout in microseconds ) ); if ($dst_addr) { if (@socket_connect($this->icmp_socket, $dst_addr, NULL)) { } else { $this->errstr = "Cannot connect to $dst_addr"; return FALSE; } $this->Build_Packet(); $this->start_time(); socket_write($this->icmp_socket, $this->request, $this->request_len); if (@socket_recv($this->icmp_socket, &$this->reply, 256, 0)) { $this->time = $this->get_time($percision); return $this->time; } else { $this->errstr = "Timed out"; return FALSE; } } else { $this->errstr = "Destination address not specified"; return FALSE; } } } $ping = new Net_Ping; $ping->ping("www.google.ca"); if ($ping->time) echo "Time: ".$ping->time; else echo $ping->errstr; ?>
а для проверки живости можешь просто попробовать коннект на нужный порт, будет проще
#83
Отправлено 19.02.2006, 04:24:02
Способ 1Мне надо сравнить если переменная $page=пуста. т.е. ничему не равна, то надо привоить этой переменной 0. А ничерта не выходит.
когда делаешь эхо, то ничего не выводит.
switch(true){ case (isset($page) <> true): $page = 0; break; case (empty($page) == true): $page = 0; break; case (is_null($page) == true): $page = 0; break; } var_dump($page);
Способ 2
if (!$page) { $page = 0; } var_dump($page);
Сообщение отредактировал T. Anre: 19.02.2006, 04:53:09
#86
Отправлено 20.02.2006, 10:58:32
Взято из "Краткое пособие по языку SQL", Автор неизвестен.
Оператор INSERT. может вставить в таблицу одну строку, если используется в форме INSERT INTO ... VALUES, а может вставить в таблицу целый набор строк, выбранных подзапросом SELECT из другой таблицы. INSERT INTO kadry VALUES (4,0,"Грицько",num,"10/25/1939",NULL) INSERT INTO customer VALUES (ps_customer.*) # ps_customer - переменная типа RECORD - аналог структуры в # языке Си. Этот оператор вставляет значения элементов записи # ps_customer в соответствующие поля таблицы customer INSERT INTO kadry (tabnom, fio, nomerceh, dolvnostx) SELECT 0 , fio, 4, dolvnostx FROM kadryold WHERE nomerceh=3 AND fio IS NOT NULL # последний оператор вставляет сразу несколько строк Если мы хотим, чтобы при вставлении строки в столбец типа SERI- AL автоматически заносилось очередное значение счетчика, нужно вставлять в этот столбец константу 0. Если не во все столбцы вставляемой строки вносится значение (как это сделано в третьем операторе), то незаполненные столбцы заполняются значением NULL. В операторах DELETE, UPDATE, SELECT может присутствовать WHERE предложение, в котором можно задать условия на строки, которые требуется обработать (соответственно уничтожить, изменить или выбрать). Рассмотрим примеры использования WHERE предложения. Оператор UPDATE. меняет значения столбцов, в строках, удовлетворяющим WHERE ус- ловию. UPDATE kadry SET fio="Зыкова" WHERE fio="Гирусова" UPDATE ceh SET kod_ceha[1,4]=nameceh[5,8] WHERE nomerceh BETWEEN 3 AND 5 OR nameceh IN ("токарный","литейный") В таблице ceh в цехах номер 3,4,5 а так же в токарном и литей- ном первые четыре символа в коде цеха будут заменены на подст- року поля nameceh из той же строки.
#87
Отправлено 20.02.2006, 17:04:33
Спасибо. Так оно и оказалось... А столько геморроя я хапнул из-за этого на выходных Ну да ладно. Хоть теперь узнал, и в предь надо запомнить. Теперь все отлично работает$page == null или empty($page)
а вообще лучше бы весь код глянуть.
мне почему то кажется что возможно из за register_globals
#93
Отправлено 25.02.2006, 14:10:34
Можешь сделать так:Знающие люди, помогите!
Вопрос: как загнать в базу данных значение поля checkbox. Мне надо вставлять либо 1 либо 0. Подскажите, а....
$cheсk=($_POST[имя_checkbox]!="")?(1):(0);потом значение $check записывай в БД.
Сообщение отредактировал Sokrat-aka: 25.02.2006, 14:11:06
#95
Отправлено 25.02.2006, 20:45:34
http://pear.php.net/...14&catname=Mailищется скрипт, для отправления файлов на мыло...
кто нибудь помогите плиз...
#96
Отправлено 25.02.2006, 23:28:08
#97
Отправлено 26.02.2006, 12:11:52
Спасибо! Премного благодарен :0)Можешь сделать так:
Знающие люди, помогите!
Вопрос: как загнать в базу данных значение поля checkbox. Мне надо вставлять либо 1 либо 0. Подскажите, а....$cheсk=($_POST[имя_checkbox]!="")?(1):(0);потом значение $check записывай в БД.
#99
Отправлено 27.02.2006, 15:22:56
что-то у меня не получается так.Можешь сделать так:
Знающие люди, помогите!
Вопрос: как загнать в базу данных значение поля checkbox. Мне надо вставлять либо 1 либо 0. Подскажите, а....$cheсk=($_POST[имя_checkbox]!="")?(1):(0);потом значение $check записывай в БД.
#100
Отправлено 27.02.2006, 19:01:19
что-то у меня не получается так.
Можешь сделать так:
Знающие люди, помогите!
Вопрос: как загнать в базу данных значение поля checkbox. Мне надо вставлять либо 1 либо 0. Подскажите, а....$cheсk=($_POST[имя_checkbox]!="")?(1):(0);потом значение $check записывай в БД.
может пхп старенький у меня с таким видом логики тоже не выдавалось пока не обновил
что выдает то, в смысле что за ошибка ?
а вообще попробуй так:
IF ($имя_входящего_чекбокса != ""){
$chek = 0;
} else {$chek = 1;}
Количество пользователей, читающих эту тему: 0
пользователей: 0, неизвестных прохожих: 0, скрытых пользователей: 0