Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] ecec gibt werte erst nach ausführung des Prog. zurück

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] ecec gibt werte erst nach ausführung des Prog. zurück

    einen Wunderschönen...

    ich habe ein kleines Problem mit der Werterückgabe von Exec. Die werterückgabe funktioniert -> mein prob ist dabei, dass ich ich werte erst nach dem kompletten durchlauf geliefert bekomme.

    Code:
    exec("tracert $_POST[befehl]", $RueckgabeProgramm2, $RueckgabeStatus2);
    						  foreach ($RueckgabeProgramm2 as $value2)
    {
    $valuex = str_replace("Routenverfolgung zu", "->", $value2);
    echo("<FONT style='font-family: Courier New; color: #E20074; font-size:12px'>".str_replace ("", "ü", $valuex)."</font>"); echo("
    ");
    }
    gibt es mit PHP die möglichkeit die ausgabe so zu realisieren, dass ich jede Zeile nacheinander angezeigt bekomme?

    zum 2. ich weiss dass ich unter UNIX einen Befehl auf Komandoebene mit Kill "befehl" beenden kann. Im falle dass die Kiste kein Netz hat -> somit ja irgendwann * zurück gibt, würde ich den aktiven tracert gern abbrechen, denn sonst würden unsere User die kompletten 30 Hops abwarten müssen. leider hab ich hier nur ne windowsumgebung mit IIS6

    für einen kleinen Denkanstoss / TIP oder Tut. wären ich sehr dankbar

  • #2
    Nicht sicher ob ich Dich richtig verstanden habe. Aber evtl. hilft Dir:
    http://de.php.net/manual/de/function.flush.php

    Kommentar


    • #3
      Vielleicht funktioniert es mit proc_open()?
      Habe damit aber keine Erfahrung.

      Kommentar


      • #4
        Hallo,
        ich habe dies nun mit nem UNIX-Rechner gemacht, dieser gibt mir Natürlich die werte direckt zurück -> nun möchte ich aber, im falle dass der rechner kein Netz hat den Traceroute abbrechen -> leider wird der Kill befehl erst dann ausgeführt wenn der Traceroute fertig ist -> habt ihr da ne Idee wie ich dem traceroute sagen kann, dass er dann abbrechen soll wenn das Array einen * zurückgibt -> oder geht das nich wenn in das Array geschreiben wird -> ich hab es damit versucht->

        Code:
        exec("traceroute $_POST[host]", $RueckgabeProgramm, $RueckgabeStatus);
        				        		foreach ($RueckgabeProgramm as $value)
        				            	{
        				            	$valuex = str_replace("*", "X", $value);	
        				            	if(stristr($valuex, 'X'))
        												{
        												exec("killall -q traceroute");
        												}
        							  			echo("<FONT style='font-family: Courier New; color: #000000; fontsize:12px'>valuex</font>");
        
        
        echo("
        ");	
        							    		}
        ich habe auch mal anstelle des Killall mal ne ganz normale Textausgabe gemacht, diese wird aber auch erst ausgegeben wenn traceroute fertig damit ist in array zu schreiben

        habt ihr da nen TIP -> Dankeschön

        Kommentar


        • #5
          übrigens: das übergeben von $_GET oder $_POST - variablen direkt an exec() ist eine grobe sicherheitslücke, es ist absolut fahrlässig und führt zu fristlosen kündigungen.
          http://us2.php.net/escapeshellcmd

          zusätzlicher tipp: guck dir das manual zu traceroute an, du kannst mit zusätzlichen parametern den traceroute-aufruf so konfigurieren, dass du nicht mit php rumwerkeln musst.

          Kommentar


          • #6
            na ein dickes dankeschön für die INFO -> habs auch umgesetzt -> habt ihr vieleicht noch ne Idee zu meinem eigendlichen Problem, dass ich das Array nicht abfragen kann solange es gefüllt wird ??? DANKE

            Kommentar

            Lädt...
            X