Forum Eurower.com Index du Forum

Forum Eurower.com
Bienvenue sur le forum de Eurower
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Dossier des fichiers temporaire 'open_basedir'
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Forum Eurower.com Index du Forum -> Service WEB sur .NET
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
percherie



Inscrit le: 30 Nov 2002
Messages: 135
Localisation: Montpellier

MessagePosté le: Mer Avr 27, 2005 11:22    Sujet du message: Dossier des fichiers temporaire 'open_basedir' Répondre en citant

J'ai un forum SMF qui est hebergé sur le serveur et depuis quelques temp l'upload d'image ne fonctionnait plus.

J'ai cru que ça venait de l'utilisation du mode CLI pour le langage PHP mais il semble que ça ne vienne pas forcement de là.

Aprés avoir pris contact avec les developer ce serait plutot suite à une modification du code qui à besoin de l'existance d'un dossier en particulier

Voici la réponse obtenu

Citation:

Il semblerait que le nouveau code fonctionne... si ton hébergeur a ajouté le dossier des fichiers temporaires à 'open_basedir', ce qui n'est pas ton cas. Une autre solution qui s'offre à toi est de contacter ton hébergeur pour leur demander d'ajouter ce répertoire à 'open_basedir' de leur configuration de PHP.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur Yahoo Messenger
eurower
Site Admin


Inscrit le: 03 Jan 2002
Messages: 1458
Localisation: Lyon

MessagePosté le: Mer Avr 27, 2005 13:12    Sujet du message: Répondre en citant

En effet !
Le répertoire temporaire est accessible que pour les sessions automatiquement !

Normalement il faut alors créer un répertoire temporaire sur votre compte accessible par open_basedir et:
mode CLI: il faut que le serveur apache y ai accès en écriture
mode CGI: rien à faire, il à accès à tout votre compte

Maintenant, si cela pose souci, je peux toujours ajouter un répertoire temporaire global à open_basedir !
_________________
Modérateur des forums
Président de l'association

Hébergement eurower.net
Association loi 1901
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
percherie



Inscrit le: 30 Nov 2002
Messages: 135
Localisation: Montpellier

MessagePosté le: Mer Avr 27, 2005 14:53    Sujet du message: Répondre en citant

Ok, donc je crée un repertoire sur mon compte mais comment doit je faire pour qu'il sois reconnu comme tel?
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur Yahoo Messenger
eurower
Site Admin


Inscrit le: 03 Jan 2002
Messages: 1458
Localisation: Lyon

MessagePosté le: Mer Avr 27, 2005 15:25    Sujet du message: Répondre en citant

Bah dans le script lui dire de créer dans ce répertoire !

Tout dépend de votre script !

C un upload ? Création pur d'un fichier ? etc ...
_________________
Modérateur des forums
Président de l'association

Hébergement eurower.net
Association loi 1901
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
percherie



Inscrit le: 30 Nov 2002
Messages: 135
Localisation: Montpellier

MessagePosté le: Mer Avr 27, 2005 16:22    Sujet du message: Répondre en citant

Oula c pas un script que j'ai créer sinon j'aurrai pu le faire moi même. Je pense que le mieux c'est de faire en sorte qu'il soit accessible par defaut sans changer le script.

Par ailleur cette solution permettra à d'autre utilisateur d'utiliser ce forum et en cas de mise à jour ça permet d'eviter toute modification de code et d'eventuel trous de sécurité.

Bien sur si ça demande trops de modif sur le serveur j'aimerai avoir un lien pour avoir un peut de documentation sur cette fonction afin de modifier le code proprement
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur Yahoo Messenger
eurower
Site Admin


Inscrit le: 03 Jan 2002
Messages: 1458
Localisation: Lyon

MessagePosté le: Jeu Avr 28, 2005 01:48    Sujet du message: Répondre en citant

C'est possible d'avoir le bout de code qui tente d'écrire la chose qui coince ?
Histoire que je sache réellement ce que je dois faire Laughing
_________________
Modérateur des forums
Président de l'association

Hébergement eurower.net
Association loi 1901
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
percherie



Inscrit le: 30 Nov 2002
Messages: 135
Localisation: Montpellier

MessagePosté le: Jeu Avr 28, 2005 18:50    Sujet du message: Répondre en citant

Ok je vais faire mes petite recherche dans le code avec une modification qui fonctionne afin que tu puisse voir ce qu'il faut faire.

Je pense te le poster demain tranquillement, ça t'evitera d'avoir à lire 200Ko de code, je te mettrait le strict minimum
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur Yahoo Messenger
percherie



Inscrit le: 30 Nov 2002
Messages: 135
Localisation: Montpellier

MessagePosté le: Sam Avr 30, 2005 19:28    Sujet du message: Répondre en citant

Ok c'est fait, j'ai reperer la modification de code qui coince et je t'ajoute le detail de la fonction en question

ça concerne

Code:
         if (!is_uploaded_file($_FILES['attachment']['tmp_name'][$n]) || !file_exists($_FILES['attachment']['tmp_name'][$n]))
            fatal_lang_error('smf124');


Qui avant etait
Code:

         if (!is_uploaded_file($_FILES['attachment']['tmp_name'][$n]))
            fatal_lang_error('smf124');


Voici le detail en question

Code:
   // ...or attach a new file...
   if (isset($_FILES['attachment']['name']) && $_FILES['attachment']['name'][0] != '')
   {
      isAllowedTo('post_attachment');

      // If this isn't a new post, check the current attachments.
      if (isset($_REQUEST['msg']))
      {
         $request = db_query("
            SELECT COUNT(ID_ATTACH), SUM(size)
            FROM {$db_prefix}attachments
            WHERE ID_MSG = $_REQUEST[msg]", __FILE__, __LINE__);
         list ($quantity, $total_size) = mysql_fetch_row($request);
         mysql_free_result($request);
      }
      else
      {
         $quantity = 0;
         $total_size = 0;
      }

      $attachIDs = array();
      foreach ($_FILES['attachment']['tmp_name'] as $n => $dummy)
      {
         if ($_FILES['attachment']['name'][$n] == '')
            continue;

         if (!is_uploaded_file($_FILES['attachment']['tmp_name'][$n]) || !file_exists($_FILES['attachment']['tmp_name'][$n]))
            fatal_lang_error('smf124');

         // Remove special foreign characters from the filename.
         if (empty($modSettings['attachmentEncryptFilenames']))
            $_FILES['attachment']['name'][$n] = getAttachmentFilename($_FILES['attachment']['name'][$n], false, true);

         // Is the file too big?
         if (!empty($modSettings['attachmentSizeLimit']) && $_FILES['attachment']['size'][$n] > $modSettings['attachmentSizeLimit'] * 1024)
            fatal_lang_error('smf122', false, array($modSettings['attachmentSizeLimit']));

         // Have we reached the maximum number of files we are allowed?
         $quantity++;
         if (!empty($modSettings['attachmentNumPerPostLimit']) && $quantity > $modSettings['attachmentNumPerPostLimit'])
            fatal_lang_error('attachments_limit_per_post', false, array($modSettings['attachmentNumPerPostLimit']));

         // Check the total upload size for this post...
         $total_size += $_FILES['attachment']['size'][$n];
         if (!empty($modSettings['attachmentPostLimit']) && $total_size > $modSettings['attachmentPostLimit'] * 1024)
            fatal_lang_error('smf122', false, array($modSettings['attachmentPostLimit']));

         if (!empty($modSettings['attachmentCheckExtensions']))
         {
            if (!in_array(strtolower(substr(strrchr($_FILES['attachment']['name'][$n], '.'), 1)), explode(',', strtolower($modSettings['attachmentExtensions']))))
               fatal_error($_FILES['attachment']['name'][$n] . '.<br />' . $txt['smf123'] . ' ' . $modSettings['attachmentExtensions'] . '.', false);
         }

         if (!empty($modSettings['attachmentDirSizeLimit']))
         {
            // Make sure the directory isn't full.
            $dirSize = 0;
            $dir = @opendir($modSettings['attachmentUploadDir']) or fatal_lang_error('smf115b');
            while ($file = readdir($dir))
            {
               if (substr($file, 0, -1) == '.')
                  continue;

               $dirSize += filesize($modSettings['attachmentUploadDir'] . '/' . $file);
            }
            closedir($dir);

            // Too big!  Maybe you could zip it or something...
            if ($_FILES['attachment']['size'][$n] + $dirSize > $modSettings['attachmentDirSizeLimit'] * 1024)
               fatal_lang_error('smf126');
         }

         // Find the filename, strip the dir.
         $destName = basename($_FILES['attachment']['name'][$n]);

         // Check if the file already exists.... (for those who do not encrypt their filenames...)
         if (empty($modSettings['attachmentEncryptFilenames']))
         {
            // Make sure they aren't trying to upload a nasty file.
            $disabledFiles = array('con', 'com1', 'com2', 'com3', 'com4', 'prn', 'aux', 'lpt1', '.htaccess', 'index.php');
            if (in_array(strtolower($destName), $disabledFiles))
               fatal_error($destName . '.<br />' . $txt['smf130b'] . '.');

            // Check if there's another file with that name...
            $request = db_query("
               SELECT ID_ATTACH
               FROM {$db_prefix}attachments
               WHERE filename = '" . strtolower($_FILES['attachment']['name'][$n]) . "'
               LIMIT 1", __FILE__, __LINE__);
            if (mysql_num_rows($request) > 0)
               fatal_lang_error('smf125');
            mysql_free_result($request);
         }

         if (!is_writable($modSettings['attachmentUploadDir']))
            fatal_lang_error('attachments_no_write');

         db_query("
            INSERT INTO {$db_prefix}attachments
               (" . (!empty($_REQUEST['msg']) ? 'ID_MSG, ' : '') . "filename, size)
            VALUES (" . (!empty($_REQUEST['msg']) ? $_REQUEST['msg'] . ', ' : '') . "'" . $_FILES['attachment']['name'][$n] . "', " . $_FILES['attachment']['size'][$n] . ')', __FILE__, __LINE__);
         $attachID = db_insert_id();
         $attachIDs[] = $attachID;

         $destName = $modSettings['attachmentUploadDir'] . '/' . getAttachmentFilename($destName, $attachID, true);

         if (!move_uploaded_file($_FILES['attachment']['tmp_name'][$n], $destName))
            fatal_lang_error('smf124');

         // Attempt to chmod it.
         @chmod($destName, 0644);
      }
   }


Voilà j'espère que ce n'est pas trop ardu sinon je t'enverai le reste du code si c'est incomplet
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur Yahoo Messenger
percherie



Inscrit le: 30 Nov 2002
Messages: 135
Localisation: Montpellier

MessagePosté le: Dim Mai 08, 2005 12:16    Sujet du message: Répondre en citant

J'ai une solution plus precise au problème

Il suffit de definir l'adresse du dossier temporaire /temp (ou autre dossier) dans le fichier php.ini
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur Yahoo Messenger
eurower
Site Admin


Inscrit le: 03 Jan 2002
Messages: 1458
Localisation: Lyon

MessagePosté le: Dim Mai 08, 2005 12:56    Sujet du message: Répondre en citant

Est défini dans php.ini

upload_tmp_dir = /tmp/upload_tmp_dir

Oki, il existe plus !

Ya des dossiers qui manquent !

Bordel de m...., ya vraiment des scripts qui foutent vraiment n'importent quoi !

Je vais être plus dur ...
_________________
Modérateur des forums
Président de l'association

Hébergement eurower.net
Association loi 1901
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
percherie



Inscrit le: 30 Nov 2002
Messages: 135
Localisation: Montpellier

MessagePosté le: Dim Mai 08, 2005 18:00    Sujet du message: Répondre en citant

Non en fait c'est pour eviter des pertes de fichiers pendant l'envoie, ça verifie l'existence du dossier temporaire avant l'envoie d'aprés ce que j'ai compris et evite que les fichiers envoyer occupe de la place sur le server sans le que le forum sans rendent compte

En gros on empeche l'occupation de place inutile
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur Yahoo Messenger
Altdorf



Inscrit le: 26 Mai 2004
Messages: 547
Localisation: Doubs (25)

MessagePosté le: Dim Mai 08, 2005 18:54    Sujet du message: Répondre en citant

Vous avez fait des modifs sur le serveur cet aprèm? Parceque j'ai eu des messages d'erreur dans mon forum phpBB et plus paticulièrement dans l'album photo. J'étais pas chez moi et j'ai pas pu noter le message mais ça parlais de "TMP" et là je lis ce sujet sur Eurower donc j'en ai déduis que vous avez fait quelque chose. En tout cas mon forum remarche sans que j'ai eu le temps de faire quoi que ce soit.
_________________
http://www.lanparty.fr/
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
eurower
Site Admin


Inscrit le: 03 Jan 2002
Messages: 1458
Localisation: Lyon

MessagePosté le: Dim Mai 08, 2005 19:08    Sujet du message: Répondre en citant

Oui, enlever l'accès à /tmp car ya des scripts idiots qui supprime tout !

J'ai du le remettre !
_________________
Modérateur des forums
Président de l'association

Hébergement eurower.net
Association loi 1901
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Altdorf



Inscrit le: 26 Mai 2004
Messages: 547
Localisation: Doubs (25)

MessagePosté le: Dim Mai 08, 2005 19:13    Sujet du message: Répondre en citant

Des scripts de qui?
Et ça risque de le refaire?
_________________
http://www.lanparty.fr/
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
eurower
Site Admin


Inscrit le: 03 Jan 2002
Messages: 1458
Localisation: Lyon

MessagePosté le: Dim Mai 08, 2005 19:46    Sujet du message: Répondre en citant

Surement,

déjà je dois régler ce problème de limite de vhost !
_________________
Modérateur des forums
Président de l'association

Hébergement eurower.net
Association loi 1901
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Forum Eurower.com Index du Forum -> Service WEB sur .NET Toutes les heures sont au format GMT + 2 Heures
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com