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

  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 é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
    Comme le dit la doc :
    Cette option spécifie la durée maximale pour recevoir les données d'entrée, via POST, GET et téléchargement de fichier.
    Donc non, ca m'étonnerai que ca vienne de là.

    --
    Rakken

  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
    Ouais, je viens de tester et nope, c'est pas ça.

    J'ai essayé de modifier le temps d'éxe du script mais c'est pas ça non plus, sinon je me pèterais un warning...

    Rhaaa, je vois vraiment pas, j'ai jamais eu le problème. En fait, vu la rapidité d'éxe du script, on dirait qu'il passe même pas dans mes boucles imbriquées.

    Alors qu'en local si... Je cale, plz help

    Merci encore

  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
    Un petit UP, personne n'a d'idée ?

    J'ai pris contact avec mon hébergeur, on va essayer de trouver la solution mais si vous avez des éléments de réponse, ou si ça vous ai déjà arrivé, ce serait sympa de faire partager votre expérience, merci

  10. #10
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    t'as éssayé un debugage en ligne ?
    J'entends par là jouer avec des echo et des exit pour voir le cheminement de tes variables et voir si le script suit bien les bonnes étapes ?

    @+
    cadou
    PS : je sais que c'est tres embetant de modifier - mettre en ligne puis tester mais je ne vois pas d'autre moyen pour savoir ou le script coince. Quand tu connaitras l'endroit ou cela commence a merder, tu auras résolu la moitié du probleme...

  11. #11
    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 cadoudal56
    PS : je sais que c'est tres embetant de modifier - mettre en ligne puis tester mais je ne vois pas d'autre moyen pour savoir ou le script coince. Quand tu connaitras l'endroit ou cela commence a merder, tu auras résolu la moitié du probleme...
    Entièrement d'accord.
    Je ne prends plus que des hébergements avec accès ssh. Ainsi tu travailles directement sur serveur et tu vois les changements en temps réel.

  12. #12
    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.

  13. #13
    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

  14. #14
    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.

  15. #15
    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

  16. #16
    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.

  17. #17
    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
    Grrrrrrrrrr !!!!!!!!!!

    Ca marche en local mais toujours pas online, même soucis...

    Merci bcp Rakken, si tu as une autre idée je suis preneur parce que là, je sais vraiment plus quoi y faire (qui a dit "ben testes le shotgun" ?)

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Par défaut
    deux petites suggestions :
    • d'une part, peux-tu réafficher ton code modifié tel que proposé par rakken (juste pour voir)
    • d'autre part, je suppose que ton hébergeur (surtout s'il est payant) te permet d'accéder à un log des erreurs. prends le, regarde-le, c'est souvent très instructif. tu verras peut-être beaucoup d'erreurs inattendues (ce fut le cas pour moi) et tu trouveras très vite celle qui t'ennuie.

  19. #19
    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
    Bonjour,

    Concernant le code, voici la partie modifiée :

    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
     
    while($i < 8){
    	$filename = 'images/' . $rez['materiel'] . '/' . $nom_repertoire[$j] . '/0' . $i . '.jpg';
    	$isfile = is_file($filename);			
     
    		if($isfile === true){				
    			if (!($j-1 < 0)){
     
    				$refphoto = 'images/' . $rez['materiel'] . '/' . $nom_repertoire[$j] . '/0' . $i . 'g.jpg';
     
    				$fileinfo = getimagesize($refphoto);
     
    				echo '<a onclick="window.open(\'photos.php?id=' . $i . '&nr=' . $nom_repertoire[$j] . '&cat=' . $rez['materiel'] . '\', \'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++;
    		}
    Mais toujours pareil, ça fonctionne impec en local mais pas online

    Sinon pour les logs, je peux trouver ça où ? J'ai regardé dans mon espace client et sur le FTP (je pensais ça à la racine) mais je n'ai rien trouvé. Pas de logs ?

    Merci de votre participation.

  20. #20
    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
    Je vais me répeter un peu, mais je pense que les chemins sur le serveur ne sont pas géré de la même manière qu'en local. Je parle notamment du "image/"
    Le serveur doit voir ca comme un '/home/nom_user/image' ou encore un truc du style '../image'.

    L'idée c'est de partir du plus simple au plus compliqué. Donc, commence par oublier ton code et part avec un fichier php de test, vierge.
    Mets un fichier au même endroit que ton script (dans le même répertoire) et lance un 'is_file' dessus, pour voir s'il te renvoie true ou false.
    Déjà, si c'est false, t'as un gros soucis. Mais avec un peu de bol, tu auras true.

    Ensuite, tu fait la même chose, en te 'déplacant' pour te raprocher de ton répertoire final de stockage des images. C'est a dire qu'au lieu d'écrire comme chemin 'image', tu écrit le chemin depuis le répertoire ou tu fait ton test (donc un truc probablement de la forme '../image/monfichier.jpg').

    Si ca, ca ne marche pas, tu réécrit ton test avec ton nom construit a partir des $_SERVER variables. Et là, t'es parti pour une tripotée de tests jusqu'a en trouver un qui passe.

    Le truc, c'est de réussir a trouver ton image une fois, quelque part. Et a partir de la, tu construit ton chemin, et une fois le chemin construit, tu integres a ton script. J'admets que c'est pas super agréable a faire, mais ca s'appele du debuggage, et on peut pas programmer sans en passer par là ;-)

    --
    Rakken

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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