Rechercher : dans
Par :

PHP : problème de permission

little_programmeur, le 17 mai 2009 à 15:27:05 
 Signaler ce message aux modérateurs

Bonjour,
J'essaye de m'envoyer par mail un fichier qu'un utilisateur m'aurait envoyé au préalable. Cependant, lorsque j'envoie par formuliare un fichier et que je l'enregistre dans un dossier avec les permissions 733, je n'arrive pas a envoyer le message : j'ai le message d'erreur :
Warning: file_get_contents() [function.file-get-contents]: open_basedir restriction in effect. File(/uploads/images.jpeg) is not within the allowed path(s): (/www) in /www/tobias/nouv/musique/partitions.php on line 80

Warning: file_get_contents(/uploads/images.jpeg) [function.file-get-contents]: failed to open stream: Operation not permitted in /www/tobias/nouv/musique/partitions.php on line 80

Comment faire pour que le fichier enregistré sur le serveur ai la même permission que son dossier (733) ?

Voici mon code pour envoyer le message :
$msg = '<h1>Demande de partition</h1><p><strong>Adresse mail de l\'expéditeur : </strong>';
$msg .= stripslashes(htmlspecialchars($_POST['mail']));
$msg .= '<br /><strong>Titre de la partition : </strong>';
$msg .= stripslashes(htmlspecialchars($_POST['titre']));
$msg .= '<br /><strong>Compositeur : </strong>';
$msg .= stripslashes(htmlspecialchars($_POST['compositeur']));
$msg .= '<br /><strong>Instruments : </strong>';
$msg .= implode(', ', $_POST["instrument"]);
$msg .= '<br /><strong>Autres instruments : </strong>';
$msg .= stripslashes(htmlspecialchars($_POST['autre']));
$msg .= '<br /><strong>Notes : </strong>';
$msg .= nl2br(stripslashes(htmlspecialchars($_POST['notes'])));
echo $msg;
// Enregistrer le fichier
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
if ($_FILES['monfichier']['size'] <= 1000000)
{
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'pdf');
if (in_array($extension_upload, $extensions_autorisees))
{
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";

}
else
{
echo "<br />Cette extension de fichier n\'est pas acceptée. Vous devez prendre un format image (jpg, gif, png) ou un fichier pdf.";
}
}

}


// ENVOYER UN MAIL



$frontiere = '-----=' . md5(uniqid(mt_rand()));
$headers ='From: "'.stripslashes(htmlspecialchars($_POST['mail'])).'"'."\n";
$headers .='Reply-To: '.stripslashes(htmlspecialchars($_POST['mail'])).''."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';
$message = '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $msg."\n\n";
$message .= '--'.$frontiere.'--'."\n";

//-----------------------------------------------
//PIECE JOINTE
//-----------------------------------------------

$message .= 'Content-Type: image/jpeg; name="fichier.jpg"'."\n";
$message .= 'Content-Transfer-Encoding: base64'."\n";
$message .= 'Content-Disposition:attachement; filename="fichier.jpg"'."\n\n";
$fichier = '/uploads/' . $_FILES['monfichier']['name'] . '';

$message .= chunk_split(base64_encode(file_get_contents($fichier)))."\n";


if(mail('mail...', 'Demande partition', $message, $headers))
{
echo 'Le message a été envoyé';
}

Voyez vous une erreur ? Comment faire pour que le fichier enregistré sur le serveur ai la même permission que son dossier (733) ?


Merci d'avance.

Configuration: Windows Vista
Firefox 3.0.9

Meilleures réponses pour « PHP : problème de permission » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...