Téléchargement de photos

Petit nouveau ! | 1 Messages

07 janv. 2008, 17:32

bonjour cher tous,

j'ai un veritable problème qui me préocupe.
j'ai un code qui fonctionne très bien quand j'utilise easyphp dans ma machine mais quand je télécharge mes fichiers che z mon hébergeur, ça ne fonctionne pas. j'ai même déja enlevé toutes les autorisations mais je n'y arrive toujours pas. je me demande bien pourquoi ce code marche correctement chez moi mais pas chez mon hébergeur!
voici le code:
  $stock="PHOTO\\";
     $stock2="PHOTO2\\";

     if (!$_FILES['photo']['tmp_name'] or $_FILES['photo']['type']<>'image/pjpeg')
     {$photo="";}
     
      elseif (move_uploaded_file($_FILES['photo']['tmp_name'], $stock2.$_FILES['photo']['name'])) 
{
            
$photo='terrain'.$an.$mois.$jour.$heure.$second.$nombre.'.jpg';
        if(!copy($stock2.$_FILES['photo']['name'], $stock.$photo)) {
    echo "Copie impossible.";
merci de m'aider car j'en ai vraiment besoin
au fait, mon hebergeur est PRODUWEB, au cas ou...

Mammouth du PHP | 19672 Messages

07 janv. 2008, 17:39

Je serais tenté de penser que ce sont tes "\\" qui ne sont pas bien pris sous Linux, (système probable de ton hébergeur)

Pour résoudre ça et que ça fonctionne toujours chez toi, utilise une constante* :
/* On récupère le séparateur de répertoire qui va bien selon l'OS */
define("SR", DIRECTORY_SEPARATOR);

$stock="PHOTO". SR;
$stock2="PHOTO2". SR;
Teste ça et reviens si ça fonctionne toujours pas.

Note * : je préfère redéfinir une constante de 2 lettres plutôt qu'utiliser et devoir retaper toute la variable d'environnement complète à chaque fois
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

07 janv. 2008, 17:39

Bonjour,

As-tu un message d'erreur?
$stock2="PHOTO2\\";
Si ton hébergeur est sous linux, vérifies que le nom de ton répertoire soit bien écrit exactement comme ceci (majuscules/minuscules notamment).
De plus, sous Linux, il faut des slashes et non pas un double antislashes...
Modifié en dernier par @rthur le 08 janv. 2008, 11:24, modifié 1 fois.
Quand tout le reste a échoué, lisez le mode d'emploi...

ViPHP
AB
ViPHP | 5818 Messages

07 janv. 2008, 17:53

De plus, sous Linux, il faut des slashes et non pas un double antislashes...
J'avais jamais vu non plus cette syntaxe avec double antislashes :-k

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

07 janv. 2008, 20:01

J'avais jamais vu non plus cette syntaxe avec double antislashes :-k
C'est simplement car les chemin sous Windows se font avec des antislashes or comme l'antislashes est également le caractère d'échappement, on est obligé de le doubler ;)
Quand tout le reste a échoué, lisez le mode d'emploi...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

07 janv. 2008, 21:16

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Débuter en PHP".

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
AB
ViPHP | 5818 Messages

07 janv. 2008, 21:34

J'avais jamais vu non plus cette syntaxe avec double antislashes :-k
C'est simplement car les chemin sous Windows se font avec des antislashes or comme l'antislashes est également le caractère d'échappement, on est obligé de le doubler ;)
Oui, je voulais dire cette syntaxe pour un hébergeur distant (ceux que j'utilise sont sous linux) :wink: