Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [PHP] Outputten van *NIX input op website. (https://forum.scholieren.com/showthread.php?t=12731)

Koen 03-01-2002 16:01

[PHP] Outputten van *NIX input op website.
 
Hoi,

Ik zit al een tijdje met 't volgende, en ik kom er zelf niet uit.

Ik wil eigen 2 dingen:
  • 1. Een gebruiker voert een input in op mijn site, bestaande uit een Linux commando. Bijvb: 'uname -a'. Dan wil ik dat dit geparsed wordt, en de output op 't de site vertoond wordt.
  • 2. Zelfde als 1, maar dan met een bestaande input, die gewoon geladen en geparsed wordt zodra ik op de site kom.

Volgens mij moet dit wel mogelijk / te realiseren zijn, ik ken wel CGI scripts die 't kunnen (Webmin). Maar hoe ik dit in PHP moet maken, ik heb geen flauw idee waar te beginnen, ik ben compleet PHP n00b.

TIA,

Koen

F10®!@n 03-01-2002 16:06

zoiets: http://www.php.net/manual/en/function.system.php ?

kan wel behoorlijk gevaarlijk zijn volgens mij....

Koen 03-01-2002 16:17

Citaat:

F10®!@n schreef:
zoiets: http://www.php.net/manual/en/function.system.php ?

kan wel behoorlijk gevaarlijk zijn volgens mij....


Ik wil 't ook alleen voor mezelf gebruiken hoor http://forum.scholieren.com/wink.gif Maar tnx iig, ik ga ff kijken http://forum.scholieren.com/smile.gif


Chimera 04-01-2002 12:18

Citaat:

Koen schreef:
Ik wil 't ook alleen voor mezelf gebruiken hoor http://forum.scholieren.com/wink.gif Maar tnx iig, ik ga ff kijken http://forum.scholieren.com/smile.gif

Nja. Zorg dan dat niemand die URL heeft, en dat het goed beveiligd is, want hij kan dan bijvoorbeeld heel simpel je PW te pakken krijgen.

Doe het dus liever met vaste commando's, die de gebruiker NIET zelf in kan geven.

Als het bestaande OUTPUT is, kun je die met file() in een keer in een array inlezen. Erg simpel.

ALs je bijvoorbeeld de output van hostname wil lezen kun je dat op 2 manieren doen:

Via exec() hostname uitvoeren, de output naar een file pipen ("hostname > blaat.txt"), en deze dan inlezen.

De uitvoer van hostname via popen() direct uitlezen. popen() levert je een filepointer op, en die kun je met bijv fgets() regel voor regel uitlezen.

Kan wel kijken of ik even een voorbeeld kan maken.


Chimera 04-01-2002 12:26

Okay. Voorbeeld, ff snel inmekaar gezet. Dit opent ipconfig (ja, win2k dus), en stuurt de output direct naar de browser:

Code:

<?
$fp = popen("ipconfig", "r") or die ("Could not execute!");
while($line = fgets($fp, 8192)) {
        echo $line . "<br>";
}
?>

Hoop dat je er wat aan hebt http://forum.scholieren.com/biggrin.gif

F10®!@n 04-01-2002 12:31

Citaat:

Chimera schreef:
Okay. Voorbeeld, ff snel inmekaar gezet. Dit opent ipconfig (ja, win2k dus), en stuurt de output direct naar de browser:

Code:

<?
$fp = popen("ipconfig", "r") or die ("Could not execute!");
while($line = fgets($fp, 8192)) {
        echo $line . "<br>";
}
?>

Hoop dat je er wat aan hebt http://forum.scholieren.com/biggrin.gif


Hoe kom je op dat 8192?

Koen 04-01-2002 12:45

Ik heb 't voorlopig even op de simpele manier van Florian gedaan, en dat werkt prima http://forum.scholieren.com/smile.gif
http://superwrak.2y.net/

Chimera 04-01-2002 13:19

Citaat:

F10®!@n schreef:

Hoe kom je op dat 8192?

8kB. Hoeveelheid data die 'ie maximaal inleest voordat 'ie het als regel teruggeeft. Neem aan dat je geen regels met meer dan 8000 tekens hebt? http://forum.scholieren.com/biggrin.gif

Gewoon een redelijk grote waarde gekozen. 8kB geheugen is niks http://forum.scholieren.com/wink.gif


Chimera 04-01-2002 13:20

Citaat:

Koen schreef:
Ik heb 't voorlopig even op de simpele manier van Florian gedaan, en dat werkt prima http://forum.scholieren.com/smile.gif

Ah, okay. Ik wist niet dat je die output rechtstreeks wou sturen.

Maar als je iets in tabellen ofzo wil zetten, of berekeningen uit wil voeren met de data, dan moet je het dus op een andere manier doen http://forum.scholieren.com/biggrin.gif


Koen 04-01-2002 13:22

Citaat:

Chimera schreef:
Ah, okay. Ik wist niet dat je die output rechtstreeks wou sturen.

Maar als je iets in tabellen ofzo wil zetten, of berekeningen uit wil voeren met de data, dan moet je het dus op een andere manier doen http://forum.scholieren.com/biggrin.gif


Ah I see, dat is dan 't volgende stapje, daar ga ik dan dit weekend wel mee bezig, dan weet ik je te vinden http://forum.scholieren.com/tongue.gif

beuk 05-01-2002 11:16

Wat doen jullie moeilijk, of snap ik het niet? (heb niet alles gelezen).

Als je een commanda tussen `` zet wordt het gewoon op de shell uitgevoerd. Dus b.v.

Code:

$uptime = `uptime`;
print $uptime;


F10®!@n 05-01-2002 11:37

Citaat:

beuk schreef:
Wat doen jullie moeilijk, of snap ik het niet? (heb niet alles gelezen).

Als je een commanda tussen `` zet wordt het gewoon op de shell uitgevoerd. Dus b.v.

Code:

$uptime = `uptime`;
print $uptime;


Hiermee krijg je dus gewoon 'uptime' op het scherm.

Koen 05-01-2002 12:53

Citaat:

F10®!@n schreef:

Hiermee krijg je dus gewoon 'uptime' op het scherm.


Nee hoor, dit werkt inderdaad ook. Zo heb ik 't vroeger geloof ik ook wel eens gedaan, maar nu gaat 't met system() ook prima.

Thnx iig beuk http://forum.scholieren.com/smile.gif

F10®!@n 05-01-2002 13:17

ah... ik zie het...

verkeerde ' gebruikt http://forum.scholieren.com/redface.gif

Koen 05-01-2002 13:26

Citaat:

F10®!@n schreef:
ah... ik zie het...

verkeerde ' gebruikt http://forum.scholieren.com/redface.gif


Hoevaak ik die fout al niet gemaakt heb, dat wil je écht niet weten http://forum.scholieren.com/smile.gif


Alle tijden zijn GMT +1. Het is nu 16:33.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.