PHP - soll ja leicht sein ;-)

Es soll sie ja geben ...

Moderator: Moderatoren

Antworten
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

PHP - soll ja leicht sein ;-)

Beitrag von brandelh »

Hallo,

ich möchte auf meinem lokalen (internes LAN) Web-Server eine Seite unterbringen,
mit der ich LAN-Rechner per Wake On Lan (WOL) starten kann.
Per Xbase++ ( :arrow: http://www.xbaseforum.de/viewtopic.php? ... wol#p90648 )
oder PowerBasic kann ich das, aber ich möchte es auf den Web-Server meines NAS legen, und das kann nur PHP.

Auf meinem lokalen Testserver bekomme ich so ein PHP Script einwandfrei zum laufen:
TEST.PHP

Code: Alles auswählen

<html>
   <head>
       <title>Beispiel</title>
   </head>
   <body>
       <p> hier sollten PHP Zeilen folgen </p>
       <?php echo "Hallo, ich bin ein PHP-Skript!"; ?>
       <?php phpinfo(); ?>
   </body>
</html>
Auch mein zweiter Test funktioniert ...
TESTPHP.PHP

Code: Alles auswählen

<?php
  echo "Mein zweiter Test";
  phpinfo();
?>
Sobald aber ein Fehler im Code ist z.B. die " um den Text vergessen, erscheint keine Anzeige ... überhaupt keine !

Wie kann ich denn eine Fehlermeldung erhalten ?

Nun habe ich auf folgender Website:
http://www.hackernotcracker.com/2006-04 ... cript.html
folgenden Code gefunden, der überhaupt nichts von sich gibt ...

Code: Alles auswählen

<?
    # http://www.hackernotcracker.com/2006-04/wol-wake-on-lan-tutorial-with-bonus-php-script.html
    # Wake on LAN - (c) HotKey@spr.at, upgraded by Murzik
    # Modified by Allan Barizo http://www.hackernotcracker.com
    flush();
    function WakeOnLan($addr, $mac,$socket_number) {
      $addr_byte = explode(':', $mac);
      $hw_addr = '';
      for ($a=0; $a <6; $a++) $hw_addr .= chr(hexdec($addr_byte[$a]));
      $msg = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);
      for ($a = 1; $a <= 16; $a++) $msg .= $hw_addr;
      // send it to the broadcast address using UDP
      // SQL_BROADCAST option isn't help!!
      $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
      if ($s == false) {
        echo "Error creating socket!\n";
        echo "Error code is '".socket_last_error($s)."' - " . socket_strerror(socket_last_error($s));
        return FALSE;
        }
      else {
        // setting a broadcast option to socket:
        $opt_ret = socket_set_option($s, 1, 6, TRUE);
        if($opt_ret <0) {
          echo "setsockopt() failed, error: " . strerror($opt_ret) . "\n";
          return FALSE;
          }
        if(socket_sendto($s, $msg, strlen($msg), 0, $addr, $socket_number)) {
          echo "Magic Packet sent successfully!";
          socket_close($s);
          return TRUE;
          }
        else {
          echo "Magic packet failed!";
          return FALSE;
          }

        }
      }
    // Port number where the computer is listening. Usually, any number between 1-50000 will do. Normally people choose 7 or 9.
    $socket_number = "9";
    // MAC Address of the listening computer's network device
    $mac_addy = "00:12:4G:SF:12:13";
    // IP address of the listening computer. Input the domain name if you are using a hostname (like when under Dynamic DNS/IP)
    $ip_addy = gethostbyname("myhomeserver.dynamicdns.org");

    WakeOnLan($ip_addy, $mac_addy,$socket_number);

    ?>
Muss man nicht <?PHP beginnen ?
Egal, ich hätte wegen der ungeänderten Variablen mit einer Fehlermeldung gerechnet, aber in weiß auf weiß hilft sie mir nicht ;-)

PS: falls jemand einen funktionierenden Code für WOL mit PHP hat, wäre ich daran natürlich auch interessiert ;-)
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Hier die Lösung ...

Beitrag von brandelh »

Hi,

ich stelle hier mal die Lösung ein, die ich im Synology Forum gepostet habe ...
ich möchte meinen aktuellen Windows WebServer, der hinter einer Fritzbox im LAN angeschlossen ist
für statische Seiten mit meiner neuen DS411slim ersetzen. Warum sollen beide laufen, die NAS ist viel sparsamer :D

Da auf diesem Rechner neben einigen CGI-EXE (Windows 32 Bit) aber auch ein Sateliten Videorecorder läuft,
müssen wir in der Lage sein, den Server über die Website auf dem NAS zu starten. Auch vom Android Handy unterwegs.
Ebenso muss ich das aus scripts heraus können.

Ich habe einige Stunden nach PHP und WOL gesucht, einiges probiert und mit diesem Program gelang es:

:arrow: http://wolviaphp.sourceforge.net

Ich muss für mich nur noch die aufrufende Web Seite vereinfachen und alles geht wie es soll.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: PHP - soll ja leicht sein ;-)

Beitrag von brandelh »

Hier stehen auch Hinweise für PHP Einsteiger, insbesondere wie man die Fehlermeldungen einschaltet ;-)

:arrow: http://www.synology-wiki.de/index.php/P ... en_mit_PHP
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: PHP - soll ja leicht sein ;-)

Beitrag von brandelh »

Hi,

diese Seite scheint auch gut für den PHP Einstieg zu sein, auch MySQL wird erklärt:

http://www.schattenbaum.net/php/index.php
Gruß
Hubert
Antworten