Fonctions php qui ne passent pas chez OVH - serve dédié

Nouveau WRInaute
Bonjour,

JE teste un script d'upload de fichiers et certaines fonctions ne passent pas.

mkdir pour créer le dossier et unlink pour le supprimer ne passent pas chez OVH sur un server dédié, alors que chez free oui.

Est-ce que qqn saurait pourquoi?

MErci :)
 
WRInaute discret
Bonjour, avant de dénigrer une société en public, vous feriez bien de prendre un livre et d'apprendre a programmer en php.

La réponse à la question quand meme, chercher à changer le chmod en 0777 pour avoir les droits pour lire ecrire et executer tel ou tel dossier.

Les serveurs dédié chez OVH sont trés bon.

Cordialement.
 
WRInaute discret
Essai ceci

mkdir($dnssave, 0777);
chmod($dnssave, 0777);

Ceci peut paraitre bizarre mais il faut indiquer le chmod avec chmod car l'indication dans ton mkdir n'est pas prise en compte.

ok?
 
Nouveau WRInaute
Code:
Warning: unlink(../../images/galerie/costawear/20060703001607/images/images.zip): Permission denied in /home/costados/www/costaV3/backoffice/galerie/deZip.php on line 42

le code php:
Code:
  if ($ext == ".zip") {
        $archive = new PclZip($pathPreviewImage . $galerie);
        if (@$archive -> extract(PCLZIP_OPT_PATH,$pathPreviewImage) == TRUE) {
            unlink($pathPreviewImage . $galerie);
        }
 
Nouveau WRInaute
cyrilc26 a dit:
Essai ceci

mkdir($dnssave, 0777);
chmod($dnssave, 0777);

Ceci peut paraitre bizarre mais il faut indiquer le chmod avec chmod car l'indication dans ton mkdir n'est pas prise en compte.

ok?

JE vais essayer, mais est-ce que qqn sait pourquoi chez free cela passe sans problêmes?

Merci :oops:
 
Nouveau WRInaute
moktoipas a dit:
probablement pasque ce n'est pas le meme systeme d'exploitation.


Est-ce qu'on peut demander le changement d'OS chez OVH, je débute.

Si oui, quel serait le plus intéressant?

Merci ;)
 
Nouveau WRInaute
Merci pour cette réponse rapide ! :p

une partie du code pour créer le path du dossier images

Code:
$time = addslashes($_POST['time']);  echo 'time: '.$time.'<br /><br />';
$categorie = addslashes($_POST['categorie']);
$queryNomCategorie = " SELECT * FROM galerie_categorie WHERE galerie_categorie.id=$categorie";
$resultNomCategorie = mysql_query($queryNomCategorie, $link);
$rowNomCategorie = mysql_fetch_array($resultNomCategorie);
$dossierPreview =  '../../images/galerie/';
$pathPreviewCategorie = $dossierPreview.$rowNomCategorie["nom"];
$date = '/'.$time;
$pathPreviewTime = $pathPreviewCategorie.$date;
$dossierPreviewImage = '/images/';
$pathPreviewImage = $pathPreviewTime.$dossierPreviewImage;
echo $pathPreviewImage;
if (!is_dir($pathPreviewCategorie))
mkdir($pathPreviewCategorie,0777);
chmod($pathPreviewCategorie, 0777); 
if (!is_dir($pathPreviewTime))
mkdir($pathPreviewTime,0777);
chmod($pathPreviewCategorie, 0777); 
if (!is_dir($pathPreviewImage))
mkdir($pathPreviewImage,0777);
chmod($pathPreviewCategorie, 0777);
J'ai rajouté la fonction chmod($poath,0777) en plus de mkdir($path; 0777), ça marche

une partie du code qui dezippe le .zip des images et supprime à la fin le .zip
Code:
<?php
	$galerie = 'images.zip';
	$idGalerie = $_GET["idGalerie"];
$queryGalerie = "SELECT * FROM galerie_categorie , galerie, galerie_description WHERE galerie.id=$idGalerie AND galerie.id=galerie_description.id_galerie AND galerie_description.langue=1 AND galerie.id_categorie=galerie_categorie.id";
$resultGalerie= mysql_query($queryGalerie, $link);
$rowGalerie = mysql_fetch_array($resultGalerie);
$date = $rowGalerie["dateGalerie"];
$time = ereg_replace("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})","\\1\\2\\3\\4\\5\\6",$date);
$dossierPreview =  '../../images/galerie/';
$pathPreviewCategorie = $dossierPreview.$rowGalerie["nom"];
$dossier = '/'.$time;
$pathPreviewTime = $pathPreviewCategorie.$dossier;
$dossierPreviewImage = '/images/';
$pathPreviewImage = $pathPreviewTime.$dossierPreviewImage;
// GET DIRECTORY LISTING SORTED BY LAST MODIFIED
$dir = $upload_folder;
$filelist=array(); 
@include('pclzip.lib.php'); 
if (class_exists("PclZip")) {
$directory_zip = opendir($pathPreviewImage);

while ($file_name = readdir($directory_zip)) {
$ext = strtolower(substr($galerie ,-4)); 
	if ($ext == ".zip") {
		$archive = new PclZip($pathPreviewImage . $galerie);
		if (@$archive -> extract(PCLZIP_OPT_PATH,$pathPreviewImage) == TRUE) {
			unlink($pathPreviewImage.$galerie);
			chmod($pathPreviewImage , 0777);
		}
	}
}
closedir ($directory_zip);
}

$directory = opendir($pathPreviewImage);
while ($galerie = readdir($directory)) {
$ext = strtolower(substr($galerie,-4)); 
		if ($ext == ".jpg" OR $ext == "jpeg" OR $ext == ".gif" OR $ext == ".png" OR $ext == ".bmp" OR $ext == ".tif" OR $ext == "tiff" OR $ext == ".psd") {
		
		  if (($galerie !=".") && ($galerie != "..") && (strtoupper($galerie) != ".HTPASSWD") && (strtoupper($galerie) != ".HTACCESS"))
		  {
			  $fileinfo = fopen ($pathPreviewImage . $galerie,"rb");
			$stat = fstat($fileinfo);
			$date = $stat[9];
			$size = $stat[7];
			if ($size!="") {
				// means don't show folders
				$filelist[] = array("filename" => $galerie, "date" => $date, "size" => $size);
			}
			fclose($fileinfo);
		  }
		}
}
//ksort($filelist);
closedir ($directory); 



?>

Cette partie ne marche pas alors que sur free oui, un fichier de 25mo est dézippé en qq secondes.
 
WRInaute passionné
Quelle est le message d'erreur?
As tu toutes les librairies qu'il faut? Qu'elle est ta versin de PHP?

Pour tester enlève les @ devant tes include, on ne sait jamais.

Sur un dédié tu pourras tout faire, et bien plus que chez free, le truc c'est qu'il faut installer ce dont tu as besoin si ce n'est pas dans l'installation standard.
 
WRInaute discret
moktoipas a dit:
probablement pasque ce n'est pas le meme systeme d'exploitation.

:D ahh oui c'est certainnement l'éléphpant qui est allergique à certainnes races de pinguins... :roll:
Recherche plutôt du côté de ton php.ini (config php) ou httpd.conf (ou apache2.conf pour le serveur) quand t'as des problèmes de script !! :wink:


Sinon suis donc les indications de Bacteries pour ton affaire !
 
Nouveau WRInaute
La librairie pour dézipper le fichier vient de http://www.phpconcept.net/#10_03_2006 .

Le script devrait dézipper les fichiers puis supprimer le .zip, mais sur OVH, ni dezip ni delete.

J'ai essayé de remplacer les unlink($repertoire); par:
exec("rm -rf $repertoire"); ou exec("rmdir /s /q $repertoire");
pas de delete sur OVH

Que faudrait-il modifier ? :oops:

Merci :eek:
 
Nouveau WRInaute
Est-ce qqn pourait explquer comment accéder au php.ini sur un server dédié OVH, je débute :oops:

Merci :wink:
 
Nouveau WRInaute
Je pense avoir trouvé certains éléments de réponses, le server refuse de créer un dossier avec la fonction mkdir avec un chmod 0777. Puis quand on crée un dossier avec les fonction ftp mkdir, le server crée un dossier avec chmod de 0755, alors que l'on demandait de créer un chmod de 0777.

Quand on passe le dossier en chmod 0777 manuellement, le script de deZip marche.

QQn sait ce qu'il faudrait alors modifier pour obliger le server à passer ces fonctions avec un chmod 0777?

Merci !! :oops: :eek:
 
WRInaute discret
gto55 a dit:
QQn sait ce qu'il faudrait alors modifier pour obliger le server à passer ces fonctions avec un chmod 0777?
Un dossier créé l'est toujours (par défaut) en 755, comme tu le dis il te suffit de lui attribuer ensuite le bon chmod pour résoudre le problème.
Attention à ne pas attribuer trop facilement le chmod 777 !! je ne suis pas sûr que ce soit réellement utile dans ton cas, un simple 720 aurait certainnement suffit.
Et il n'est ni utile, ni judicieux de passer par défaut ses répertoires ou fichiers en chmod 777.

Pour ton php.ini tu le trouvera dans le repertoire d'apache. ;)

moktoipas a dit:
deux linux different n'ont pas les meme package d'installé, ceux ci n'ont pas forcement le meme comportement.
évitons les suppositions sans fondements... :roll:
Y'a un concours de nombre de trolls par sujet sur WRI en ce moment !?
 
Nouveau WRInaute
Merci pour ta réponse !!!

Xou a dit:
gto55 a dit:
QQn sait ce qu'il faudrait alors modifier pour obliger le server à passer ces fonctions avec un chmod 0777?
Un dossier créé l'est toujours (par défaut) en 755, comme tu le dis il te suffit de lui attribuer ensuite le bon chmod pour résoudre le problème.
Attention à ne pas attribuer trop facilement le chmod 777 !! je ne suis pas sûr que ce soit réellement utile dans ton cas, un simple 720 aurait certainnement suffit.
Et il n'est ni utile, ni judicieux de passer par défaut ses répertoires ou fichiers en chmod 777.

J'ai attribué un chmod 0777, pourtant ce n'est pas pris en compte par le ftp, il faut l'attribuer manuellement, est-ce qu'il y aurait une protection à modifier dans le php.ini?

Merci :oops: :wink:
 
WRInaute discret
php.ini c'est le fichier de configuration de php ! pas des répertoires et fichiers de ton serveur.

Explique dont comment tu t'y prends parce que je ne comprends rien à ce que tu racontes... car moi quand je modifie le chmod de mes fichiers via ssh ou via ftp je n'ai aucun problème. Et tu es chez quel hébergeur ? (sait-on jamais...)
 
Nouveau WRInaute
Ca marche :D

Je voulais faire le chmod directement dans la commande ftp_mkdir, ça ne marchait pas, j'ai donc converti le chmod du dossier après la fonction ftp_mk_dir.

Merci pour vos réponses :D :wink:
 
Discussions similaires
Haut