IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Local / Online => Problème de comportement


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Par défaut [Mail] Local / Online => Problème de comportement
    Bonjour,

    J'ai un problème d'éxecution de script. Lorsque celui ci tourne en local, no problemo, tout s'affiche nickel mais quand je le charge en ligne (sur un hébergeur payant) rien ne s'affiche.

    Voici le gros du script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    while($rez = mysql_fetch_array($query)){
     
    	if ($j-1 < 0){
     
    	}else{
     
    		$t = 1;
     
    		while($t < 3){
    			$filename2 = 'images/' . $rez['materiel'] . '/' . $nom_repertoire[$j] . '/0' . $t . '.jpg';
    			$isfile2 = (int)is_file($filename2);
     
    			if($isfile2 != 0){
    				$arefilestotal[$j]++;
    			}
     
    			$t++;
    		}
     
    		if($arefilestotal[$j] != 0){
     
    			echo '<li><a  name="' . $nom_repertoire[$j-1] . '" href="#' . $nom_repertoire[$j-1] . '" onclick="showNHide(\'' . $nom_repertoire[$j] . '\');"><span style="color:#cc0000; position:relative; top:2px;">* </span><span>' . $rez['machine'] . '<span style="color:#cc0000"> (' . $arefilestotal[$j] . ')</span></span></a><br /><span style="display:none;" id="' . $nom_repertoire[$j] . '">';
     
     
    		}else{
     
    			echo '<li><a  name="' . $nom_repertoire[$j-1] . '" href="#' . $nom_repertoire[$j-1] . '" onclick="showNHide(\'' . $nom_repertoire[$j] . '\');"><span style="color:#cc0000; position:relative; top:2px;">* </span><span>' . $rez['machine'] . '</span></a><br /><span style="display:none;" id="' . $nom_repertoire[$j] . '">';
     
    		}
     
    	}
     
    		$i = 1;
     
    		while($i < 3){
    			$filename = 'images/' . $rez['materiel'] . '/' . $nom_repertoire[$j] . '/0' . $i . '.jpg';
    			$isfile = (int)is_file($filename);
     
    				if($isfile != 0){				
    					if ($j-1 < 0){
    					}else{
     
    						$refphoto = 'images/' . $rez['materiel'] . '/' . $nom_repertoire[$j] . '/0' . $i . 'g.jpg';
     
    						$fileinfo = getimagesize($refphoto);
     
    						if ($fileinfo[0] > $fileinfo[1]){
    							$sens = 0;
    						}else{
    							$sens = 1;
    						}
     
    						echo '<a onclick="window.open(\'matos.php?id=' . $i . '&nr=' . $nom_repertoire[$j] . '&cat=' . $rez['materiel'] . '&sens=' . $sens . '\', \'Photos\',\'width=' . $fileinfo[0] . ', height=' . $fileinfo[1] . ', toolbars=0\');" href="#' . $nom_repertoire[$j-1] . '"><img src="images/' . $rez['materiel'] . '/' . $nom_repertoire[$j] . '/0' . $i . '.jpg" alt="" /></a> ';
    					}
    				}
    		$i++;
    		}
     
    	if ($j-1 < 0){
    		echo '</span></li>';
    	}else{
    		echo '</span><hr style="margin:0px; margin-top:10px;"  /></li>';
    	}
     
    		$j++;
    }
    En gros, celui ci va chercher des noms de sous catégorie dans une BDD en fonction d'une catégorie globale donnée, et testes s'il y a des photos, et les affiche le cas échéant.

    Tout fonctionne très bien en local, aucun warning, aucun pain, mais en ligne la gestion des photos est comme... zappée ?

    Cela pourrait il provenir des droits sur le serv ?

    Merci de vos réponses.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut
    A ta place je me renseignerai sur le matos coté serveur, vérifie ce qu'ils utilisent et aussi quel est la configuration de leur Apache ou autre

    Ca sent la galére ça


    Bonne chance

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Par défaut
    Hmm, j'ai contacté la hotline via mail, j'attend une réponse.

    En attendant, si quelqu'un à une suggestion...

    Il semble que le parcours de fichiers est trop lent et que du coup, il ne trouve aucune photo

  4. #4
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    J'pense que la première chose à faire c'est un phpinfo() chez toi et sur le serveur, et de comparer ligne à ligne. Pour chaque difference, tu cherches ce que ca impacte et si ca peut jouer sur ton script.
    Avec un peu de bol, tu va trouver un truc foireux du genre magic_gpc, register_global, ou une sombre option un peu louche...

    --
    Rakken

  5. #5
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    Ah, tien, une autre idée.

    La gestion des chemins sur le serveur n'est pas necessairement la même que chez toi. Ca peut être des / a la place de \ (ou l'inverse) en tant que séparateur de chemin, ou il peut considerer que le répertoire racine "/" est au niveau de /home/ alors que chez toi c'est au niveau de "/www/"...

    Donc je retire ce que j'ai dit dans mon message précédent. Le premier truc a faire, c'est vérifier la construction/validité des chemins sur le serveur, et la seconde chose, c'est comparer les phpinfo()

    --
    Rakken

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Par défaut
    Hmm... J'ai un :

    max_input_time à -1 online et à 60 en local. Ca peut venir de là tu penses ?

    Merci déjà pour votre aide

  7. #7
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par MaN@eDeN
    Tout fonctionne très bien en local, aucun warning, aucun pain, mais en ligne la gestion des photos est comme... zappée ?
    Bonjour,

    Ton test d'existence de photo est basé sur l'extension .jpg
    Ne pourrait-il pas déjà y avoir un problème de casse, à savoir qu'il ne reconnait pas un .JPG
    Les serveurs windows sont insensibles à la casse, mais pas les serveurs UNIX/Linux.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Par défaut
    Citation Envoyé par jml94
    Bonjour,

    Ton test d'existence de photo est basé sur l'extension .jpg
    Ne pourrait-il pas déjà y avoir un problème de casse, à savoir qu'il ne reconnait pas un .JPG
    Les serveurs windows sont insensibles à la casse, mais pas les serveurs UNIX/Linux.
    Hmm... apparemment, les extensions sont bien en minuscules, je fais toujours attention là dessus justement à cause des serv Linux.

    Bon, je vais mettre des echo dans mes boucles voir si au moins le script y passe.

    Re-merci

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Par défaut
    Ouais bon, c'est systématique en fait, le is_file (ou file_exists ou autre) me renvoie 0 alors que ça marche en local...

    Hmm...

    Ok, le problème vient de là, mais comment le solutionner ?

    Autre chose : si j'enlève (int) donc : is_file($machin); au lieu de (int)is_file($truc) ben rien ne s'affiche ! Il devrait pas me mettre un false plutot ?

    EDIT : Oui, confirmation, c'est bien de là que provient le problème, j'ai testé tout le reste et tout passe, tout est bien formaté avant construction du chemin de l'image.

  10. #10
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    Caster le retour de ton "is_file" en int, j'en voit pas l'utilité, et j'imagine que ca peut effectivement être ca la source de ton bug.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // a la place de :
    $isfile2 = (int)is_file($filename2); 
    if($isfile2 != 0){
    	$arefilestotal[$j]++;
    }
     
    // met donc :
    $isfile2 = is_file($filename2); 
    if($isfile2 === true){
    	$arefilestotal[$j]++;
    }
    Avec ça, déjà, tu t'évites des casts inutiles et potentiellement source d'erreur et ça rend ton code plus propre.
    J'ai mis '===' pour faire une comparaison 'typée'. C'est a dire que si le retour de la fonction est un booleen a true, c'est ok, si c'est un int qui vaut 1, c'est ko (parce que pas booleen).

    Maintenant, si tu veux visualiser le contenu de $isfile2 (sans le cast qui ne sert a rien) un simple echo n'affiche rien, il faut utiliser 'var_dump', comme sur la page is_file du manuel.

    Je ne sais pas si ca va résoudre ton problème, mais au moins, t'auras des outils pour avancer ^^

    Accessoirement, mais clairement, ca n'est pas la source de ton bug, la notation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($j-1 < 0){
    }else{
     // le code
    }
    n'est pas très élégante. Faire un test sur la condition inverse rend le code globalement plus lisible, en fesant un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ($j-1 >= 0) {
    // le code
    }
    ou, si tu n'a pas envie de te prendre la tête a inverser tes conditions a la main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (!($j-1 < 0)) {
    // le code
    }
    --
    Rakken

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Par défaut
    Yep, merci bien Rakken, je vais matter ça et je vous tiens informés.

    Concernant "l'élégance" du code, t'as raison, il est inutile de s'embarasser de formules un peu cracras et je pense qu'au niveau de la relecture, c'est plus agréable

    Merci bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Message e-mail local vers Exchange Online
    Par bella1 dans le forum Exchange Server
    Réponses: 2
    Dernier message: 12/12/2014, 10h48
  2. Problème encodage lors du passage de site local à online
    Par sp2308 dans le forum Administration
    Réponses: 5
    Dernier message: 05/09/2014, 09h08
  3. Problème de décalage "seekbar" local/online
    Par BnA dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 10/10/2007, 09h47
  4. [Coldfusion] Problème de comportement des *.cfm
    Par DarkOcean dans le forum Coldfusion
    Réponses: 7
    Dernier message: 21/06/2006, 18h52
  5. [SAX] Problème SAX (comportement de characters)
    Par philmo dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 29/09/2005, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo