Sinds vandaag ben ik bezig met een scriptinstaller. Allemaal leuk en aardig op Windows, aangezien die geen bestandsrechten kent. Helaas pakte dit script wat minder goed uit op Linux (getest @ woelmuis.nl). Weet iemand hoe dit komt, en nog belangrijker, hoe ik dit kan oplossen?
PHP code:
Verwachte bestandsstructuur: (getallen staan voor rechten)
inhoud map/name/name.php:
Bij woelmuis krijg ik alleen de map "map", die behoorlijk vreemde rechten heeft, waardoor woelmuis zelf een beetje crashed....
Alvast bedankt voor de oplossing (Jaja, ik hoop wel heel erg op hulp
)
PS: Tips, suggesties, foutjes, je mag het ook posten
PHP code:
PHP:
<?php
###############################################################################
## Script Installer v1.0 beta ##
###############################################################################
###############################################################################
## LET OP! Dit script is tot nu toe alleen getest op Windows! Mogelijk werkt ##
## Linux niet. ##
###############################################################################
###############################################################################
## LET OP! Dit is de beta versie van Script Installer V1.0! Mogelijk werken ##
## sommige dingen niet, of zijn bepaalde dingen niet netjes gescript! ##
###############################################################################
$data = '
[|SIv1|]map[|SIv1|]map[|SIv1|]fakedata[|SIv1|][|SIv1|]777[|SIv1|]
[|SIv1|]map[|SIv1|]name[|SIv1|]fakedata[|SIv1|]map/[|SIv1|]777[|SIv1|]
[|SIv1|]file[|SIv1|]name.php[|SIv1|]data[|SIv1|]map/name/[|SIv1|]777[|SIv1|]
';
$error['missingpart'] = FALSE;
$error['missingdata'] = FALSE;
$error['chmodfailed'] = FALSE;
$error['createfailed'] = FALSE;
if(isset($data) && !empty($data)) {
$data = trim($data);
$datapart = explode("\n", $data);
} else {
$error['missingdata'] = TRUE;
}
unset($data);
$i = 0;
foreach($datapart as $part) {
list($empty, $data[$i]['type'], $data[$i]['name'], $data[$i]['data'], $data[$i]['map'], $data[$i]['chmod'], $empty) = explode('[|SIv1|]', $part);
$data[$i]['type'] = trim($data[$i]['type']);
$data[$i]['name'] = trim($data[$i]['name']);
$data[$i]['data'] = trim($data[$i]['data']);
$data[$i]['map'] = trim($data[$i]['map']);
$data[$i]['chmod'] = trim($data[$i]['chmod']);
$i++;
}
$countdata = count($datapart);
// Check data
$i = 0;
while($i < $countdata) {
if(empty($data[$i]['type']) || empty($data[$i]['name']) || empty($data[$i]['chmod'])) {
$error['missingpart'] = TRUE;
}
$i++;
}
// Create mapstructure
$i = 0;
while($i < $countdata) {
if($data[$i]['type'] == 'map') {
if(!mkdir($data[$i]['map'].$data[$i]['name'], 0777)) {
$error['createfailed'] = TRUE;
break;
}
}
$i++;
}
// Create files
$i = 0;
while($i < $countdata) {
if($data[$i]['type'] == 'file') {
if(!file_put_contents($data[$i]['map'].$data[$i]['name'], $data[$i]['data'])) {
$error['createfailed'] = TRUE;
break;
} else {
if(!chmod($data[$i]['map'].'/'.$data[$i]['name'], $data[$i]['chmod'])) {
$error['chmodfailed'] = TRUE;
break;
}
}
}
$i++;
}
// chmod mapstructure
$i = 0;
while($i < $countdata) {
if($data[$i]['type'] == 'map') {
if(!chmod($data[$i]['map'].$data[$i]['name'], $data[$i]['chmod'])) {
$error['chmodfailed'] = TRUE;
break;
}
}
$i++;
}
if($error['missingpart'] || $error['missingdata'] || $error['chmodfailed'] || $error['createfailed']) {
echo 'Het volgende ging mis:<br />';
if($error['missingpart']){
echo 'Het installerbestand is beschadigt (bestand/map structuur klopt niet)!<br />';
}
if($error['missingdata']){
echo 'Het installerbestand is beschadigt (bestand/map structuur ontbreekt)!<br />';
}
if($error['chmodfailed']){
echo 'Het installerscript kon geen rechten toewijzen!<br />';
}
if($error['createfailed']){
echo 'Het installerbestand kon een bestand of map niet aanmaken!<br />';
}
} else {
echo 'Het script is succesvol geinstalleerd door het installerbestand!';
}
?>
Verwachte bestandsstructuur: (getallen staan voor rechten)
Code:
- map (map + 0777)
- map/name (map + 0777)
- map/name/name.php (bestand + 0777)
inhoud map/name/name.php:
Code:
data
Bij woelmuis krijg ik alleen de map "map", die behoorlijk vreemde rechten heeft, waardoor woelmuis zelf een beetje crashed....
Alvast bedankt voor de oplossing (Jaja, ik hoop wel heel erg op hulp

PS: Tips, suggesties, foutjes, je mag het ook posten

Laatst bewerkt: