Double problématique php sous wampserver2.0g

Eléphanteau du PHP | 14 Messages

02 déc. 2011, 17:20

Bonjour,
Je rencontre une double problématique avec wampserver 2.0g
Configuration:
--------------
Windows XP home SP2
Wampserver 2.0g (Apache 2.2.11 , Php 5.2.9 , Mysql 5.0.51)
Antivirus Avast 6.0.1367
ZoneAlarm 10.1.065.000
IE 7
Firefox 8.0.1

1) Affichage d'images locales
----------------------------
j'ai créé un bout de code Test-Image-Locale.htm qui contient:

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Document sans nom</title> </head> <body> <table width="474" border="1"> <tr> <td> <div align="center"> <img src="C:/wamp/www/AlbumPhoto/Photo-Test.JPG" border="0"> </td> </tr> </table> </body> </html>
Cela fonctionne très bien et mon image s'affiche parfaitement.

J'ai donc décidé de faire de même avec une page Test-Image-Locale.php.
Code de la page php:

Code : Tout sélectionner

<?php // Variables de session session_start(); $AffichagePhoto="C:/wamp/www/AlbumPhoto/Photo-Test.JPG"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <SCRIPT Language = "JavaScript" SRC="SourceJavascript/AfficherUneBulle.js"></SCRIPT> <LINK type="text/css" REL="stylesheet" href="SourcesCss/Feuille-De-Style.css"> <title>Diaporama </title> </head> <body > <table cellpadding="0" cellspacing="0"> <tr> <td align="center" > <?php echo "<img src=\"$AffichagePhoto\" border=\"0\" >"; ?> </td> </tr> </table> </body> </html>
Et là....surprise l'image ne s'affiche pas.
Code généré par la page php

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <SCRIPT Language = "JavaScript" SRC="SourceJavascript/AfficherUneBulle.js"></SCRIPT> <LINK type="text/css" REL="stylesheet" href="SourcesCss/Feuille-De-Style.css"> <title>Diaporama </title> </head> <body > <table cellpadding="0" cellspacing="0"> <tr> <td align="center" > <img src="C:/wamp/www/AlbumPhoto/Photo-Test.JPG" border="0" > </td> </tr> </table> </body> </html>
2) Déconnexion de wamp
------------------------
Depuis plusieurs jours, quand je lance Wampserver j'obtiens bien "la demie-lune" blanche dans la barre des taches mais j'ai "Serveur Offline".
Je dois relancer pour être on line.
Le problème est que quand je fait exit pour quitter cela redemarre systématiquement mon PC.
La je ne comprends pas car j'ai fait des analyses virales et elles sont négatives.
Avez vous déjà rencontré ce problème?
Merci de votre collaboration.

Voici le déroulement des actions que j'ai réalisé:
----------------------------------------------
A défaut d'être un peu long, je fais le point de situation sur ce que j'ai fait depuis.
1) Recharger une image Ghost du système d'exploitation
------------------------------------------------------
Avec cette configuration je n'avais aucun problème apparent de wampserver 2.0g.

2) Désinstallation Wampserver 2.0g
----------------------------------
+ nettoyage manuel du registre avec "regedit"

3) Nettoyage complet (ou plutôt décapage en profondeur)
-------------------------------------------------------
- malwarebytes' anti malware (mode sans échec)
- scan complet avec Avast (mode sans echec)
- ATF-Cleaner
- CCleaner
- Regcleaner
- Glary Utilities
- Index.dat Analyzer
- Advanced SystemCare V5
- MRU-Blaster
- SUPERAntispyware
- Wise disk Cleaner
- Wise Registry Cleaner

4) Redemarrage du PC

5) Installation de wampserver 2.2a
----------------------------------
Problème de plantage en cliquant sur "Put Online"

6) Desinstallation de Wampserver 2.2a
7) Renettoyage complet du PC
8) Redemarrage du PC
9) Réinstallation Wampserver 2.0g
10) Test de bon fonctionnement
------------------------------
Toutes mes autres applis php,Mysql fonctionnent normalement.

11) Transfert de www et mysql/data sur une autre partition système
-------------------------------------------------------------------
Modification des fichiers:
c:/wamp/bin/apache/Apache2.2.11/conf/httpd.conf
c:/wamp/bin/apache/apache2.2.11/conf/extra/httpd-vhosts.conf (que je n'utilise pas)
c:/wamp/scripts/config.inc.php
Modification index.php dans le nouveau répertoire
Tests OK
Redemarrage du PC
c:/wamp/bin/mysql/mysql5.1.32/my.ini
Redemarrage du PC
Test des applications déjà existantes OK

J'espère ne pas avoir été trop long, mais il me paraît important de préciser clairement la situation à l'instant t.

Merci de votre aide.

ViPHP
xTG
ViPHP | 7331 Messages

02 déc. 2011, 17:27

Eh bah...
$AffichagePhoto="AlbumPhoto/Photo-Test.JPG";
Sera mieux (si ton script est un dossier au dessus, sinon tu vires le répertoire dans la variable).

Quand au online/offline cela n'a rien à voir avec si le serveur web est lancé ou non.
Enfin si mais... C'est pour indiquer que le serveur web est accessible de l'extérieur (réseau intranet, internet).

Eléphanteau du PHP | 14 Messages

02 déc. 2011, 18:01

Bonjour,
Je pense que le code posté vous induit en erreur car l'exemple fait apparaître wamp/wwww et vous pensez à une histoire de chemin Relatif/absolu.
Pour dissiper le doute j'ai fait une modification de code.
En html: ce qui marche

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Document sans nom</title> </head> <body> <table width="474" border="1"> <tr> <td> <div align="center"> <img src="c:/Photo-Test.JPG" border="0"> </td> </tr> </table> </body> </html>
et en php: ce qui ne marche pas

Code : Tout sélectionner

<?php // Variables de session session_start(); $AffichagePhoto="c:/Photo-Test.JPG"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <SCRIPT Language = "JavaScript" SRC="SourceJavascript/AfficherUneBulle.js"></SCRIPT> <LINK type="text/css" REL="stylesheet" href="SourcesCss/Feuille-De-Style.css"> <title>Diaporama </title> </head> <body > <table cellpadding="0" cellspacing="0"> <tr> <td align="center" > <?php echo "<img src=\"$AffichagePhoto\" border=\"0\" >"; ?> </td> </tr> </table> </body> </html>

ViPHP
xTG
ViPHP | 7331 Messages

02 déc. 2011, 18:59

Et à tout hasard... Ton script PHP tu le lances à partir de quelle URL ?
Tu utilises bien l'url de ton serveur web ?

Eléphanteau du PHP | 14 Messages

02 déc. 2011, 20:32


ViPHP
xTG
ViPHP | 7331 Messages

02 déc. 2011, 20:45

<?php
// Variables de session
session_start();
$AffichagePhoto="test.jpg";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT Language = "JavaScript" SRC="SourceJavascript/AfficherUneBulle.js"></SCRIPT>
<LINK type="text/css" REL="stylesheet" href="SourcesCss/Feuille-De-Style.css">
<title>Diaporama </title>
</head>
<body >
<table cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" >
   <?php
      echo "<img src=\"$AffichagePhoto\" border=\"0\" >";
   ?>   
   </td>
  </tr>
</table>
</body>
</html>
Ce code fonctionne parfaitement, testé à l'instant.
Si tu regardes le code source généré, vois-tu uniquement du HTML ou bien aussi les balises PHP ?
Sinon as-tu vraiment une image à la racine de ton disque dur C ?

Eléphanteau du PHP | 14 Messages

02 déc. 2011, 20:53

La photo Photo-Test.JPG est bienà la racine c:/
Voici le html généré (affiche source du navigateur) correspondant:

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <SCRIPT Language = "JavaScript" SRC="SourceJavascript/AfficherUneBulle.js"></SCRIPT> <LINK type="text/css" REL="stylesheet" href="SourcesCss/Feuille-De-Style.css"> <title>Diaporama </title> </head> <body > <table cellpadding="0" cellspacing="0"> <tr> <td align="center" > <img src="c:/Photo-Test.JPG" border="0" > </td> </tr> </table> </body> </html>

Eléphanteau du PHP | 14 Messages

02 déc. 2011, 21:02

Je suis quand même impressionné de voir que cela marche chez toi.
Je retourne le code dans tous les sens...... mais je suis dépassé....................

Eléphanteau du PHP | 14 Messages

02 déc. 2011, 21:22

Re salut xtg,
J'ai copié ton code et fait des tests,................Ca marche.
Je ne sais plus quoi faire.

ViPHP
xTG
ViPHP | 7331 Messages

02 déc. 2011, 22:44

C'est tout simplement parce que le serveur web n'a pas accès au disque C...
Selon moi les url absolues sont à bannir quand on travaille sur le système de fichier.
A la rigueur si ce sont pour des includes on peut s'en démarquer grâce à la configuration de l'include_path.

Eléphanteau du PHP | 14 Messages

03 déc. 2011, 07:00

Bonjour,
La différence entre le code xtg et le mien est la suivante:
Code xtg:

Code : Tout sélectionner

$AffichagePhoto="Photo-Test.jpg";
Mon code

Code : Tout sélectionner

$AffichagePhoto="c:/Photo-Test.jpg";
C'est donc bien le c:/ qui n'est pas pris en compte.
Hors je développe en local et je veux accéder à des photos qui sont sur mon disque dur.
Là où il y a problème c'est que ce n'est qu'à l'affichage (img src=.....) que ca ne marche pas car dans un autre traitement je génère des miniatures à partir de mes photos et ca marche.
Dans toutes les fonctions de manipulation de photos il trouve bien les photos sauf que dès qu'il s'agit de img src=..... il ne connait plus le chemin.
Curieux non ?

Eléphanteau du PHP | 14 Messages

03 déc. 2011, 07:19

Complément d'information:
J'utilise un module pour la création de miniature:

Code : Tout sélectionner

<?php //-------------------------------------------------------------------------------------------------- // Fonction pour la création de miniature // - Chemin de l'image d'origine // - Nom de la photo d'origine // - Chemin de destination de la miniature // - Prefixe affecté au nom de la photo d'origine // - Coefficient fixant la largeur ou la hauteur maxi de la minature //--------------------------------------------------------------------------------------------------- function CreationMiniatureAlbum($Chemin_Source,$Photo_Source,$Chemin_Destination,$Prefixe,$Coefficient) { // Identifiant d'image obtenu à partir de l'image d'origine $source = imagecreatefromjpeg($Chemin_Source.$Photo_Source); $largeur_source = imagesx($source); // largeur de l'image d'origine $hauteur_source = imagesy($source); // hauteur de l'image d'origine // Détermination du format de l'image d'origine if($largeur_source>$hauteur_source) { // Image source au format paysage $largeur_destination=$Coefficient; $hauteur_destination=round(($Coefficient*$hauteur_source)/$largeur_source); } else { // Image source au format portrait $hauteur_destination=$Coefficient; $largeur_destination=round(($Coefficient*$largeur_source)/$hauteur_source); } // Crée une nouvelle image en couleurs vraies. Retourne un identifiant représentant une image noire $destination = imagecreatetruecolor($largeur_destination, $hauteur_destination); // Fond de l'image en noir //$background = imagecolorallocate($destination, 0, 0, 0); //imagefill($destination,0,0,$background); // Coordonnées pour centrer l'image verticalement et/ou horizontalement $CentreX= (int)(($Coefficient-$largeur_destination)/2); $CentreY= (int)(($Coefficient-$hauteur_destination)/2); // Copie une zone rectangulaire de l'image source vers l'image destination. // Durant la copie, la zone est rééchantillonnée de manière à conserver la clarté de l'image durant une réduction. imagecopyresampled($destination, $source, $CentreX, $CentreY, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source); // Enregistrement de la miniature sur le disque imagejpeg($destination, $Chemin_Destination.$Prefixe.$Photo_Source); imagedestroy($destination); // destruction de l'image en mémoire pour libérer de la mémoire imagedestroy($source); } ?>
Quand j'appelle ce module avec:

Code : Tout sélectionner

$Chemin_Source="L:/PHOTOS-ET-VIDEOS/PHOTOS/Albums01/"; $Photo_Source="IMAGE.JPG"; $Chemin_Destination="D:/MINIATURES/"; $PrefixeMini="Mini-"; $LarMinPhoto=200; CreationMiniatureAlbum($Chemin_Source,$Photo_Source,$Chemin_Destination,$PrefixeMin,$LarMinPhoto);
La miniature d'une largeur de 200 est bien créée dans le répertoire D:/MINIATURES.

Cela montre bien qu'il n'y a qu'à l'affichage via img src=..... que les chemins ne sont pas reconnus.

Eléphanteau du PHP | 14 Messages

03 déc. 2011, 07:22

Enfin je précise que sur le PC de mon bureau sous:
Windows XP SP3
et le même environnement Wampserver2.0g tout fonctionne correctement
Si c'était un problème de php ou apache pourquoi sur un PC ca marche et pas sur un autre ?
Il y a une subtilité quelque part qui est entrain de me prendre le choux depuis des jours.

Eléphanteau du PHP | 14 Messages

03 déc. 2011, 08:29

Bonjour,
J'ai trouvé la solution grâce à mes insomnies.
Il n'y avait aucune raison que cela marche sur un pc et pas un autre, d'autant que l'environnement Apache, php est le même.
Je me suis donc intéressé à la problématique de sécurité des navigateur et en la matière pour IE7.

Voilà la manip à faire:
- Lancer IE7
- Outils ---> Option Internet
- Onglet sécurité
- Clic sur "Sites de confiance"
- Clic sur le bouton"Sites"
- Décocher "Exiger un serveur sécurisé https......"
- Ajouter l'URL "http://localhost".
- Tout fermer
- Relancer le navigateur

Eléphanteau du PHP | 14 Messages

03 déc. 2011, 08:31

Un grand merci à tous pour vous être penché sur mon problème.
Sans vous je n'aurais peut-être jamais eu l'idée de changer de direction de recherche.