HP Jetdirect hemautomation enhet. (4 / 8 steg)
Steg 4: Php-kod.
[code]
< hr >
< center >
< H2 > Jet direkt kontroll sida < h3 >
< / center >
< hr >
< br >
<? php
/***********************************************************************************
* Nätverk något - php-skript.
* Original idén från Praxis Doktor Andy
* (http://www.doktor-andy.de/joomla/index.php?option=com_content & task = view & id = 40 & Itemid = 52)
* Detta skript skapades av Jason Hensler (www.colddarkness.com)
* Detta skript är släppt under GNU/GPL licens.
********************************************************************************/
error_reporting (E_ALL); tur felrapportering för felsökning av detta kan kommenteras ut
/*IF(isset($_POST['Submit'])) {
* echo "< pre >";
* print_r($_POST);
* Upprepa "< / pre >";
*}
*/
Generera användaren inmatningsformulär
? >
< form-id = "form1" name = "form1" metod = "post" action = "" >
< p > bitar att skicka till utskriftsservern: < br >
< label >< input type = "checkbox" namn = "bit8" value = "true" / >< / etikett >
< label >< input type = "checkbox" namn = "bit7" value = "true" / >< / etikett >
< label >< input type = "checkbox" namn = "bit6" value = "true" / >< / etikett >
< label >< input type = "checkbox" namn = "bit5" value = "true" / >< / etikett >
< label >< input type = "checkbox" namn = "bit4" value = "true" / >< / etikett >
< label >< input type = "checkbox" namn = "bit3" value = "true" / >< / etikett >
< label >< input type = "checkbox" namn = "bit2" value = "true" / >< / etikett >
< label >< input type = "checkbox" namn = "bit1" value = "true" / >< / etikett >
Återställ alla < label >< input type = "checkbox" namn = "resetall" value = "true" / >< etikett >
< br >
IP: < input namn = "ip" value = "192.168.1.98" >
< input type = "knappen" value = "förvald" onclick="document.form1.ip.value ="192.168.1.98"" >< br >
PORT: < input namn = "port" value = "9101" >< br >
< input type = "Skicka" namn = "Skicka" value = "Skicka" / >
< input type = "Återställ" / >
< / form >
< br >
< br >
< hr >
Meddelanden:
< hr >
< br >
<?
IF(isset($_POST['Submit'])) //check om användaren skickat formulär
{
om användare har submited data
Raw portnumret för skrivarservern
$service_port = $_POST ["port"];
Nätverksadressen till skrivarservern
Detta kan vara en IP-adress eller ett namn
$address = gethostbyname($_POST['ip']);
ECHO "";
ECHO "Skapa socket...";
$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP); att skapa socketen eller misslyckas
om ($socket === falska) {
ECHO "< br >< b > socket_create() misslyckades: Orsak:".
socket_strerror(socket_last_error()). "< /b > \n";
Die();
} annat {
ECHO "OK. < br >";
}
ECHO "ansluter till skrivarservern:". $address. "...";
$result = socket_connect ($socket, $address, $service_port); ansluta till skrivarservern
om ($result === falska) {
ECHO "< br >< b > socket_connect() misslyckades. \nReason: ($result)".
socket_strerror(socket_last_error($socket)). "< /b > \n";
Die();
} annat {
ECHO "OK. < br >";
}
$out = 0;
Kontrollera om vilka lådor har kontrollerats och deras lite mervärde till $out
lite num: 8 7 6 5 4 3 2 1
värde: 128 64 32 16 8 4 2 1
IF(isset($_POST['resetall']) {
$out = 0;
//}
annat {
IF(isset($_POST['bit8'])) {
$out + = 1;
}
IF(isset($_POST['bit7'])) {
$out += 2.
}
IF(isset($_POST['bit6'])) {
$out += 4.
}
IF(isset($_POST['bit5'])) {
$out += 8.
}
IF(isset($_POST['bit4'])) {
$out += 16.
}
IF(isset($_POST['bit3'])) {
$out += 32.
}
IF(isset($_POST['bit2'])) {
$out += 64;
}
IF(isset($_POST['bit1'])) {
$out += 128;
//}
}
IF(isset($_POST['resetall'])) {
$out = 0;
}
ECHO "Skicka till utskriftsservern... < br >";
eftersom php har inte byte typ varables och vill skicka ascii över sockets
Vi använder chr($out) för att skicka röding med matchande värdet av det värde vi vill skicka
socket_write ($socket, chr($out), strlen(chr($out)));
socket_close($socket); nära uttaget
ECHO "skickat! < br >";
}
? >
[/code]