Heey, binnen het CMS waar ik nu mee bezig ben heb ik ook de functie om foto's up te loaden naar de server. Echter, wanneer ik een foto upload komt deze keurig netjes op de server maar mijn server zegt dat niemand de eigenaar is van de foto. Ik geef CHMOD waardes mee bij het uploaden van de foto maar deze worden niet toegepast omdat er dus geen eigenaar is.

Hoe kan ik dit veranderen? Ik weet niet zeker of er een eigenaar nodig is maar ik wil in ieder geval dat de foto de CHMOD waarde meekrijgt, op dit moment moet ik namelijk handmatig via de site van mn webhost alle foto's van eigenaar en CHMOD gaan veranderen, anders kunnen mensen ze niet eens zien op de site...

Hierbij het uploadscript:

<?php
// sessiecontrole starten en controleren of hij is gevuld.
session_start();
if(isset($_SESSION['blaat'])){

require('../../databaseconnectie/database.php');

if($_GET['show'] == "add" || $_POST['show'] == "add") {

if($_POST['titel'] && $_POST['msg']) {

global $_FILES;

$filename = $_FILES['userfile']['name'];

$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "png";
$allow[3] = "jpeg";
// $allow[3] = "exe"; enz.

if ($_POST["newname"]) {
$uploadname = $_POST['newname'];
}
else {
$uploadname = $_FILES['userfile']['name'];
}

$extentie = substr($filename, -3);

for ($i = 0; $i < count($allow); $i++) {
if ($extentie == $allow[$i]) {
$extentie_check = "ok";
$i = count($allow) + 5; // om loop te beindigen
}
}

if($extentie_check == "ok") {

$naam = $_POST['titel'] . ".";

$naam2 = "$naam$extentie";

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
move_uploaded_file($_FILES['userfile']['tmp_name'], "pictures/" . $naam2);
chmod ( "pictures/" . $naam2 , 644 );

$msg = nl2br($_POST['msg']);


$sql = "INSERT INTO images (ima_id, ima_titel, ima_image, ima_comment) VALUES ('',
'" . $_POST['titel'] . "',
'" . $naam2 ."',
'" . $msg ."')";
$res = mysql_query($sql);

if ($res) {
header("Location: ../index.php?show=7&media=1&err=1");
}
else {
header("Location: ../index.php?show=7&media=1&err=2");
}
}

} else {
//verkeerde extensie
header("Location: ../index.php?show=7&media=1&err=3");
}


} else {
// niet alles ingevuld
header("Location: ../index.php?show=7&media=1&err=4");

}


} else {
//niet via formulier ingekomen
}


//sessie afsluiten

}else{
header("Location: ../inloggen/inlogscherm.php");
}


?>
Heb ook ooit eens zoiets meegemaakt. Kwam omdat het een gratis host was, dan kan je zo'n dingen wel meemaken.
Ik heb geen gratis host... maar is er dan echt niets dat ik hieraan kan doen? Lijkt me sterk toch?
Als het goed is krijgt zo'n bestandje automatisch 644 rechten.
Dus als dat niet werkt dan zijn de rechten van de map zelf waarschijnlijk niet goed ingesteld.

Edit: En een bestand heeft áltijd een eigenaar.
Ja dat dacht ik eerst ook, daarom heb ik de map op CHMOD 777 gezet, niet echt veilig volgens mij, maar ik moest wat om het script te testen...daarom snap ik er ook niets van :S
En heb je gecontroleerd of dat nu ook echt op 777 staat?
ja, ook gecontroleerd, maar ik zie nu wel dat de bovenstaande map (waar de map images dus in zit) op 755 stond...

EDIT:
ook bovenstaande mappen veranderd naar 777 maar nog steeds blijft het probleem. De webserver blijft de eigenaar van het bestand en de CHMOD blijft automatisch op 204 staan.
Frank schreef op 25.05.2008 14:18
ja, ook gecontroleerd, maar ik zie nu wel dat de bovenstaande map (waar de map images dus in zit) op 755 stond...

Moet genoeg zijn.
Dan snap ik er helemaal niets meer van. Ik zal m'n host maar weer aanschrijven en vragen of zij deze standaard instellingen zo hebben gezet en of ik dat nog kan veranderen...

Bedankt in ieder geval :)
Als je een bestand upload wat zijn dan de rechten en wie zijn owner en group?
Als ik upload krijgt het bestand automatisch CHMOD 204 (--w----r-T), de webserver is de eigenaar en ik kan nergens vinden welke groep dat is. De online filemanager van m'n host geeft dat niet aan en mijn FileZilla geeft aan dat "nobody" de eignaar/groep is.

Reageren