Je moet wel een variabele code meegeven...
open_terminal('doe iets');
Link gekopieerd
<?php
$code = "exec"; // hier de probeer manier
function open_terminal($code) {
if(function_exists('exec')) {
exec($code, $buffer);
$this->data = implode("n" , $buffer);
} elseif(function_exists('shell_exec')) {
$this->data = shell_exec($code);
} elseif(function_exists('system')) {
ob_start();
system($code);
$this->data = ob_get_contents();
ob_end_clean();
} elseif(function_exists('passthru')) {
ob_start();
passthru($code);
$this->data = ob_get_contents();
ob_end_clean();
} elseif(is_resource($handle = popen($code, "r"))) {
while(!feof($handle)) {
$this->data .= fread($handle, 1024);
}
pclose($f);
} else {
trigger_error('There is no way to execude this code from PHP', E_USER_ERROR);
}
}
open_terminal($code);
?>
dat heb ik nu..
Met nog maar 1 error =D
kijk, deze:
Fatal error: Using $this when not in object context in /usr/local/www/data-dist/server.php on line 6
Kijk anders maar even op: pascal.signet.nl/server.php
Link gekopieerd
beetje vreemd om exec uit te voeren als code... dat is namelijk een methode om iets uit te voeren...
Wat daar hoort te staan is een code om bijv. een gameserver op te starten.
Link gekopieerd
oooooooooooooooooooooooooooohh...
ik snapte het al niet :p
Maar,, ik zie ook,, dat $this niet is gedefineerd. wat moet $this zijn??
Link gekopieerd
<?php
$code = 'cd / \n vi server.txt \n i test :wq'; // hier de probeer manier
function open_terminal($code) {
if(function_exists('exec')) {
exec($code, $buffer);
$data = implode("n" , $buffer);
} elseif(function_exists('shell_exec')) {
$data = shell_exec($code);
} elseif(function_exists('system')) {
ob_start();
system($code);
$data = ob_get_contents();
ob_end_clean();
} elseif(function_exists('passthru')) {
ob_start();
passthru($code);
$data = ob_get_contents();
ob_end_clean();
} elseif(is_resource($handle = popen($code, "r"))) {
while(!feof($handle)) {
$data .= fread($handle, 1024);
}
pclose($f);
} else {
trigger_error('There is no way to execude this code from PHP', E_USER_ERROR);
}
echo $data;
}
open_terminal($code);
?>
Dat is wat ik nu heb, geen error of niks, alleen maar een lege/witte pagina. Ik zie ook geen server.txt
Link gekopieerd
Wat je nu hebt geeft ook geen output. En server.txt staat als het goed is gegaan nu ergens op de server.
Link gekopieerd
maar,, ik zie hem tog niet in de 'slash' directorie.. top dir dus.
Daar staat ie tog ze-ker-te-weten niet...:
pascal# cd /
pascal# ls -la
total 63
drwxr-xr-x 21 root wheel 512 May 1 11:58 .
drwxr-xr-x 21 root wheel 512 May 1 11:58 ..
-rw-r--r-- 2 root wheel 801 Nov 3 2005 .cshrc
-rw-r--r-- 2 root wheel 251 Nov 3 2005 .profile
drwxrwxr-x 2 root operator 512 Dec 30 17:32 .snap
-r--r--r-- 1 root wheel 6188 Nov 3 2005 COPYRIGHT
drwxr-xr-x 2 root wheel 512 Jan 10 13:20 CVS
drwxr-xr-x 2 root wheel 1024 Jan 7 20:18 bin
drwxr-xr-x 6 root wheel 512 Jan 10 16:47 boot
drwxr-xr-x 2 root wheel 512 Dec 30 17:32 cdrom
lrwxr-xr-x 1 root wheel 10 Dec 30 17:47 compat -> usr/compat
dr-xr-xr-x 4 root wheel 512 Jan 1 1970 dev
drwxr-xr-x 2 root wheel 512 Dec 30 17:32 dist
-rw------- 1 root wheel 4096 Dec 30 17:48 entropy
drwxr-xr-x 19 root wheel 2048 Apr 29 13:08 etc
lrwxrwxrwx 1 root wheel 8 Dec 30 17:07 home -> usr/home
drwxr-xr-x 3 root wheel 1024 Jan 12 18:14 lib
drwxr-xr-x 2 root wheel 512 Jan 2 21:29 libexec
drwxr-xr-x 2 root wheel 512 Nov 3 2005 mnt
dr-xr-xr-x 2 root wheel 512 Nov 3 2005 proc
drwxr-xr-x 2 root wheel 2560 Jan 2 21:29 rescue
drwxr-xr-x 2 root wheel 512 May 17 20:21 root
drwxr-xr-x 2 root wheel 2560 Jan 2 21:29 sbin
drwxr-xr-x 8 10408 50 2560 Jan 10 17:16 screen-4.0.2
lrwxr-xr-x 1 root wheel 11 Jan 10 16:46 sys -> usr/src/sys
drwxrwxrwt 9 root wheel 512 May 19 18:41 tmp
drwxr-xr-x 22 root wheel 512 May 4 21:46 usr
drwxr-xr-x 23 root wheel 512 Jan 24 23:23 var
Link gekopieerd
Ik zou de logfiles eens gaan bekijken. Misschien dat je daar een melding kan vinden.
Link gekopieerd
bijv.
staat ie soms in de user top dir of in de webserver top dir?
Link gekopieerd