Sorry dat ik weer een topic plaats, maar ik kom soms uit functies echt niet uit terwijl ik ze wel nodig heb, omdat anders mijn hele systeem voor niets isgeweest. Nu is het weer een probleem met unlink(), ik wil een file unlinken, bijvoorbeeld $code5 (zie script), maar hij geeft dan een warning.. deze:

Warning: unlink() [function.unlink]: SAFE MODE Restriction in effect. The script whose uid is 77854 is not allowed to access / owned by uid 0 in /storage/mijndomein/users/073214/public/sites/www.skoolofwar.com/webshop/code_check.php on line

En bovendien verwijdert hij het bestand niet eens.. wie kan me helpen? Hieronder het script:

<?
$code1 = 'codes/3482.php';
$code2 = 'codes/8263.php';
$code3 = 'codes/6344.php';
$code4 = 'codes/3438.php';
$code5 = 'codes/4857.php';

if(file_exists($code1)) { //Check of de code nog bestaat
     include('codes/3482.php'); //Als de code bestaat, include de variabelen van de code
} else {
}

if(file_exists($code2)) { //Check of de andere codes nog bestaan
     include('codes/8263.php'); //Als de andere codes bestaan, include de variabelen van de andere codes
} else {
}

if(file_exists($code3)) { //Check of de andere codes nog bestaan
     include('codes/6344.php'); //Als de andere codes bestaan, include de variabelen van de andere codes
} else {
}
if(file_exists($code4)) { //Check of de andere codes nog bestaan
     include('codes/3438.php'); //Als de andere codes bestaan, include de variabelen van de andere codes
} else {
}
if(file_exists($code5)) { //Check of de andere codes nog bestaan
     include('codes/4857.php'); //Als de andere codes bestaan, include de variabelen van de andere codes
} else {
}

$ip = $_SERVER['REMOTE_ADDR']; //Maak variabele voor ip-adres

if($_POST[code] == 3482) { //Kijk of de goede code is ingevoerd
     if($code3482 == 3482) { //Als de goede code is ingevoerd, bekijk of de code nog bestaat
echo "<center><b>Uw betaling is gelukt!</b></br><center><table width=200 height=250 bgcolor=000000 background='lines.jpg' border=0><tr><td><img src='logo.jpg'></td></tr><tr><td width=200 height=185><font face=tahoma size=1 color=black><b>Betaald met code:</b> 3482</br><b>IP Adres:</b> $ip</td></tr><tr><td width=200 height=30><center><font face=verdana size=2 color=black><b>Betaalmiddel</b></font></td></tr></table>"; //Echo het bonnetje
  //Het is mogelijk om hier de functies te zetten die men na het betalen mag gebruiken
unlink($code1); //Zorg dat de code niet meer gebruikt mag worden
} else {
}
} elseif($_POST[code] == 8263) {
 if($code8263 == 8263) { //Als de goede code is ingevoerd, bekijk of de code nog bestaat
echo "<center><b>Uw betaling is gelukt!</b></br><center><table width=200 height=250 bgcolor=000000 background='lines.jpg' border=0><tr><td><img src='logo.jpg'></td></tr><tr><td width=200 height=185><font face=tahoma size=1 color=black><b>Betaald met code:</b> 8263</br><b>IP Adres:</b> $ip</td></tr><tr><td width=200 height=20><center><font face=verdana size=2 color=black><b>Betaalmiddel</b></font></td></tr></table>"; //Echo het bonnetje
  //Het is mogelijk om hier de functies te zetten die men na het betalen mag gebruiken
unlink($code2); //Zorg dat de code niet meer gebruikt mag worden
} else {
}
} elseif($_POST[code] == 6344) {
 if($code6344 == 6344) { //Als de goede code is ingevoerd, bekijk of de code nog bestaat
echo "<center><b>Uw betaling is gelukt!</b></br><center><table width=200 height=250 bgcolor=000000 background='lines.jpg' border=0><tr><td><img src='logo.jpg'></td></tr><tr><td width=200 height=185><font face=tahoma size=1 color=black><b>Betaald met code:</b> 6344</br><b>IP Adres:</b> $ip</td></tr><tr><td width=200 height=20><center><font face=verdana size=2 color=black><b>Betaalmiddel</b></font></td></tr></table>"; //Echo het bonnetje
  //Het is mogelijk om hier de functies te zetten die men na het betalen mag gebruiken
unlink($code3); //Zorg dat de code niet meer gebruikt mag worden
} else {
}
} elseif($_POST[code] == 3438) {
 if($code3438 == 3438) { //Als de goede code is ingevoerd, bekijk of de code nog bestaat
echo "<center><b>Uw betaling is gelukt!</b></br><center><table width=200 height=250 bgcolor=000000 background='lines.jpg' border=0><tr><td><img src='logo.jpg'></td></tr><tr><td width=200 height=185><font face=tahoma size=1 color=black><b>Betaald met code:</b> 3438</br><b>IP Adres:</b> $ip</td></tr><tr><td width=200 height=20><center><font face=verdana size=2 color=black><b>Betaalmiddel</b></font></td></tr></table>"; //Echo het bonnetje
  //Het is mogelijk om hier de functies te zetten die men na het betalen mag gebruiken
unlink($code4); //Zorg dat de code niet meer gebruikt mag worden
} else {
}
} elseif($_POST[code] == 4857) {
 if($code4857 == 4857) { //Als de goede code is ingevoerd, bekijk of de code nog bestaat
echo "<center><b>Uw betaling is gelukt!</b></br><center><table width=200 height=250 bgcolor=000000 background='lines.jpg' border=0><tr><td><img src='logo.jpg'></td></tr><tr><td width=200 height=185><font face=tahoma size=1 color=black><b>Betaald met code:</b> 4857</br><b>IP Adres:</b> $ip</td></tr><tr><td width=200 height=20><center><font face=verdana size=2 color=black><b>Betaalmiddel</b></font></td></tr></table>"; //Echo het bonnetje
unlink($code5.php); //Zorg dat de code niet meer gebruikt mag worden
} else {
}
} else {
echo "<center><font face=verdana size=3 color=red>OOPS!</br><font size=2 color=black>Je hebt een verkeerde code ingevoerd!</center></font>"; //Als er een niet-bestaande code is ingevoerd geef foutmelding
}

?>
Wat doe je verkeerd? Dat zegt de foutmelding al:
Damiaan Reijnaers schreef op 05.01.2008 14:27
Warning: unlink() [function.unlink]: SAFE MODE Restriction in effect. The script whose uid is 77854 is not allowed to access / owned by uid 0 in /storage/mijndomein/users/073214/public/sites/www.skoolofwar.com/webshop/code_check.php on line

http://nl3.php.net/features.safe-mode
Mm... thanks voor de link, maar ik kom er nog steeds niet uit. Ik snap niets van die warning, 'k heb er ook nog nooit zo eentje gehad
Safe Mode is ingeschakeld. Dat betekent dat naast het feit of er voldoende rechten gegeven zijn op het bestand, ook gecontroleerd wordt of degene die wat met het bestand wil doen wel de eigenaar is (ze dezelfde UID hebben).

Als jij een bestand via FTP hebt aangemaakt kun je dat onmogelijk met PHP verwijderen als safe mode ingeschakeld is, aangezien het UID van PHP niet overeen zal komen met de UID van de eigenaar van het bestand (de ftp gebruiker).
Damiaan Reijnaers schreef op 05.01.2008 14:44
Mm... thanks voor de link, maar ik kom er nog steeds niet uit. Ik snap niets van die warning, 'k heb er ook nog nooit zo eentje gehad

Php is niet de eigenaar van dat bestand (want php heeft het bestand niet aangemaakt), en dus mag je hem niet verwijderen.
Om deze waarschuwing weg te halen moet je of safe mode uitzetten, of het bestand chmodden of php via .htaccess in cgi zetten (wat ingewikkeld is).
Zie ook bijvoorbeeld dit.
Php is niet de eigenaar van dat bestand

Apache of de webserver is geen eigenaar van het bestand.

Je script is behoorlijk raar. Ik vermoed dat je unlink() op een leeg bestand probeert uit te voeren, en iets wat in elk geval niet gevonden kan worden en tot het bestand / wordt gereduceerd. Het lijkt me een goed idee dat je die niet kan verwijderen.
Waarom zou je dat willen? Er lijkt me iets fundamenteel mis met je aanpak.
Dan kunnen mensen na het 'kopen' van een code, de code niet doorgeven omdat de code niet meer bestaat.,
Ik weet niet precies wat je wilt, maar is het niet veel slimmer om hier een database voor te gebruiken?
Superraar: als ik naar 777 chmod doet hij ht nog steeds niet

Reageren