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 :

[Upload] Problème affichage fichier généré par script


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut [Upload] Problème affichage fichier généré par script
    Bonjour,
    Je n'ai pas trouvé la réponse à cette question sur le forum... Et pour cause, la voici
    J'ai développé un script qui génère des messages de bienvenue sur mon serveur distant.

    Ces messages sont diffusés grâce à un iframe dans une page suivant une sorte de playlist.

    Lorsque le fichier généré doit s'afficher, j'ai un message type objet non trouvé, alors que le fichier existe bien physiquement sur le serveur dans le répertoire spécifié.

    Pour être sûr que le fichier était introuvable, j'ai fait un htaccess vers un autre fichier en cas d'erreur 404... Mais j'ai toujours le message d'objet introuvable.

    Le plus bizarre est que lorsque je lance les fichiers séparément et directement, ils fonctionnent. Mais en plus, si je les télécharge en local et que je les upload ensuite sur le serveur, ils sont bien diffusables !!!

    Je deviens DINGUE !!!!!!
    Pitié ! AIDEZ-MOUAA!!!!!

    Comment faire pour qu'ils fonctionnent directement ces fichiers ?:!

    Merci
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    peux tu nous mettre le code qui appelle ton fichier afin de voir ce qui cloche car beaucoup de chose peuvent intervenir ?

    Merci

  3. #3
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Bien sûr, les voici !

    Le fichier servant à créer les messages de bienvenue génère les fichiers dans le dossier "Files" dans lequel tous les documents susceptibles d'être diffusés sont stockés (c'est aussi le dossier d'upload),
    bienvenue.php :
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    <?php
     
    if ((isset($_POST['nom']))&&(isset($_POST['societe']))){
     
    $civil=$_POST['civil'];
    $nom=$_POST['nom'];
    $societe=$_POST['societe'];
     
    ///////////////////////////// Upload du logo de la société
     
    $content_dir = './Files/Images/';
        $tmp_file = $_FILES['logo']['tmp_name'];
        if(!is_uploaded_file($tmp_file)){
            print ("<center>Pas de fichier image.<br></center>");}
        else { echo "<center>Fichier transféré !<br></center>";}
     
        $name_file = $_FILES['logo']['name'];
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file)){
            print("<center>Impossible de copier le fichier image.<br></center>");}
        else { echo "<center>Le fichier a été correctement chargé !<br></center>";
    	}
    $image="<img src=\"./images/$name_file\">";
    if ($tmp_file==""){$image="";}
     
    if (isset($_POST['prenom'])){
    	$prenom=$_POST['prenom'];}
    else {$prenom="";}
     
    $media="<html>
    <head><title>Welcome</title>
    <style type=\"text/CSS\">
    #top{
     	position:absolute;
    	z-index:1;
    	text-align:center;
    	align:center;
    }
    #div{
     	position:relative;
    	z-index:3;
    }
    #bottom{
    	z-index:2;
    	text-align:right;
    	margin-right:0px;
    	margin-top:-95px;
    }
    </style>
    </head>
    <body>
    
    <div id=\"top\" width=\"100%\"><img id=\"top\" src=\"Images/top.gif\"></div>
    <center>
    <table height=\"100%\" width=\"100%\">
    	<tr><td>
    	<div id=\"div\" style=\"text-align:center; margin-top:10px;\" width=\"200\" height=\"500\">
    		<font color=#FF0000; font size=26pt>
    			<marquee style=\"text-align:center;\" behavior=\"scroll\" direction=\"up\" scrollamount=\"3\" align=\"center\">Bienvenue $civil $prenom $nom !<br>$image<br>$societe
    			</marquee>
    		</font>
    	</div></td></tr>
    </table>	
    </center>
    <div id=\"bottom\"><img id=\"bottom\" src=\"images/bottom.gif\"></div>
    </body>";
     
    //////////////////////////// Création du fichier Welcome
     
    $filename="./Files/$nom.html";
    $fichier="$nom.html";
    $somecontent = $media;
     
        if (!$handle = fopen($filename, 'w')) {
             echo "Impossible d'ouvrir le fichier ($filename)";
             exit;
        }
     
        if (fwrite($handle, $somecontent) === FALSE) {
           echo "Impossible d'écrire dans le fichier ($filename)";
           exit;
        }
     
        echo "<center><b>Fichier de bienvenue $fichier créé ! </b><br></center>";
     
        fclose($handle);
     
     
    ///////////////////////////////////////////// Insertion dans la base de données
     
    $titre = "$nom";
    $id = "";
    $objet=$fichier;
    $description = "Message bienvenue $nom";
    $duree = "12";  
    $ordre1="";
    $ordre2="";
    $ordre3="";
    $heure="";
    $date="";
     
     
    $sql="INSERT INTO table VALUES ('$id', '$titre', '$objet', '$description', '$duree', '$ordre1', '$ordre2', '$ordre3', '$heure', '$date')";
    mysql_query($sql);
    }
    ?>
    	<table border="0" cellpadding="5">
    		<form name="bienvenue" action="" method="POST" enctype="multipart/form-data">
    			<tr>
    				<td>Civilité</td>
    				<td><select size="1" name="civil">
    						<option value="M.">M.
    						<option value="Mme">Mme
    						<option value="Mlle">Mlle
    					</select></td>
    			</tr>
    			<tr>
    				<td>Nom de l'invité(e)</td>
    				<td><input type="text" size="50" name="nom"></td>
    			</tr>
    			<tr>
    				<td>Prénom de l'invité(e) (optionnel)</td>
    				<td><input type="text" size="50" name="prenom"></td>
    			</tr>
    			<tr>
    				<td>Nom de la société</td>
    				<td><input type="text" size="50" name="societe"></td>
    			</tr>
    			<tr>
    				<td>Logo de la société (optionnel)</td>
    				<td><input type="file" name="logo" size="20"></input></td>
    			</tr>
    			<tr>
    				<td></td>
    				<td><input type="submit" name="submit" value="Valider">&nbsp &nbsp<input type="reset" name="annul" value="Effacer"></td>
    			</tr>
    		</form>	
    		</table>
    <br>
    <br>
    <a href="admin.php">Retour à la console d'administration</a>		
    </center>
    </body>
    </html>

    J'utilise ensuite un fichier pour la création d'une boucle de fichiers HTML contenant les documents à diffuser et qui se trouvent dans le dossier "Folder1":
    update_files.php
    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
    67
    68
    69
    <?php
    include("connexion.php");
     
    print("<html><head><META HTTP-EQUIV=REFRESH CONTENT=\"1;URL=../index.php\"/>");
     
    $dir="./";
     
    $diropen=opendir($dir);
     
    while($file =readdir($diropen)){
    		$extension= strtolower(substr( strrchr( $file, "." ), 1 ));
    	       if ($extension=="htm" or $extension=="html"){
    			unlink("$file");
    		}
    	}
     
    echo "Anciens fichiers supprimés<br><br>";
     
    $query="SELECT * FROM `table` WHERE `Ordre1`<>0 ORDER BY Ordre1";
    $result=mysql_query($query);
     
    $req="SELECT max(Ordre1) as maxi FROM `table` WHERE `Ordre1`<>0";
    $res=mysql_query($req);
    $cont=mysql_fetch_object($res);
     
    $req1="SELECT min(Ordre1) as mini FROM `table` WHERE `Ordre1`<>0";
    $res1=mysql_query($req1);
    $cont1=mysql_fetch_object($res1);
     
    $max=$cont->maxi;
    $min=$cont1->mini;
     
     
    while ($val=mysql_fetch_object($result)){
    $order=$val->Ordre1;
    $min>0;
    if ($order==$max){$order=$min;} else {$order=$order+1;};
     
    $objet=$val->Objet;
     
    $extension= strtolower(substr( strrchr( $objet, "." ), 1 ));
       if ($extension=="swf"){			
    $media = "<html><head><title>Affichage dynamique</title><META HTTP-EQUIV=REFRESH CONTENT=\"$val->Duree;URL=fichier$order.html\"/></head><body><object type=\"application/x-shockwave-flash\" data=\"http://localhost/affdyn/Files/$val->Objet>\" width=\"100%\" height=\"100%\"><param name=\"movie\" value=\"http://localhost/affdyn/Files/$val->Objet\"><param name=\"wmode\" value=\"transparent\"></object></body></html>";}
     
    	elseif (($extension=="htm")||($extension=="html")||($extension=="php")){
    $media="<META HTTP-EQUIV=REFRESH CONTENT=\"$val->Duree;URL=fichier$order.html\"/><iframe src=\"http://localhost/affdyn/Files/$val->Objet\" width=\"100%\" height=\"100%\" marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" frameborder=\"0\" scrolling=\"no\"/>";
    	}
     
     
    $filename = "../folder1/fichier$val->Ordre1.html";
    $somecontent = $media;
     
        if (!$handle = fopen($filename, 'w')) {
             echo "Impossible d'ouvrir le fichier ($filename)";
             exit;
        }
     
        if (fwrite($handle, $somecontent) === FALSE) {
           echo "Impossible d'écrire dans le fichier ($filename)";
           exit;
        }
     
        echo "($filename) créé ! <br>";
     
        fclose($handle);
     
    }
     
    ?>
    Ensuite pour les lire, j'utilise le fichier
    show_files.html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <html>
     
    <head><title>Affichage dynamique</title></head>
    <body>
    <iframe id="dyn" src="./fichier1.html" width=100% height=100% marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" scrollbars="no">
    </body>
    </html>
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  4. #4
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    En local ça marche très bien, de même qu'en upload....

    C'est la création et l'utilisation directe qui foirent quelque part...
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    le répertoire où tu tentes de stocker le dit fichier a-t-il les droits d'écritures ?

  6. #6
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Oui ! En tout cas c'est ce que me dit FileZilla...

    Cependant, j'ai noté que lors du transfert des fichiers php via FileZilla, il fallait que je rafraichisse les vues manuellement pour voir l'incidence des uploads, et même vérifier que les fichiers générés par le script.

    Or, sur le même serveur, mais dans un autre dossier, je n'ai pas ce problème, tout se fait instantanément...

    Des idées?
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  7. #7
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    J'ai finalement imposé un CHMOD777 au dossier et aux fichiers au moment de la création.

    Ce qui est bizarre, c'est que j'ai une erreur (vu que je suis pas propriétaire), mais que maintenant les fichiers fonctionnent...

    Donc j'ai le bon résultat mais avec l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: chmod(): No such file or directory in c:\program files\easyphp1-8\www\...\bienvenue.php on line 104
    Un éclaircissement ?

    Merci
    Gamin
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  8. #8
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Bon ben finalement, je ne vais pas chercher à comprendre... tant que ça marche
    Merci de votre aide !
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/04/2014, 11h36
  2. Réponses: 2
    Dernier message: 12/01/2010, 17h10
  3. [http] Accéder à un fichier généré par un serveur
    Par Seiya dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 27/02/2007, 18h10
  4. [Upload] Problème ouverture fichier joint
    Par vincedjs dans le forum Langage
    Réponses: 4
    Dernier message: 27/03/2006, 11h24
  5. Exploitation de fichiers générés par un journal
    Par Brice Yao dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/06/2005, 16h19

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