[RESOLU] l image ne se rafraîchit pas ???

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] l image ne se rafraîchit pas ???

Re: l image ne se rafraîchit pas ???

par coqenpatte » 17 sept. 2013, 19:49

Alors voila la solution :

c'était simplement le cache serveur qui mettais le bazar (et encore je suis poli !!!)

donc dans le .htaccess, voila ce que j ai ajouter :
Header set Cache-Control "max-age=2"
J'ai vu que le problème était assez répandu chez ovh. De plus quand on leur demande de l'aide, leur seule réponse c est "c'est votre code", merci pour le coup de main !!! lol

Encore merci pour ton aide (j'espère atteindre un jour la qualité de ton code !) et ta patience Moogli.

allez hop, résolu !

Re: l image ne se rafraîchit pas ???

par moogli » 16 sept. 2013, 10:18

salut,

oui bien reçu ton mp.

tu doit avoir un pb de cache serveur ou quelque chose comme cela, car, au vu du code, si les valeurs du formulaire arrivent bien au script cela s'affiche correctement.
d'ailleurs c'est bien le cas quand tu finis par rafraîchir.

je viens de tester ce code
<html>
<head>
    <title>IMPRESSION</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <META http-equiv="Cache-Control" content="no-cache">
    <META http-equiv="Pragma" content="no-cache">
    <META http-equiv="Expires" content="0">
    <style type="text/css">

        body, table {
            text-align: center;

        }
    </style>
</head>

<body > <!-- onload="window.print();" -->
<?php
// by passe du formulaire pour tester
function chiffre(){
    return rand(10000,99999999);
}
$_POST['verre1'] = chiffre();
$_POST['verre2'] = chiffre();
$_POST['verre3'] = chiffre();
$_POST['verre4'] = chiffre();
$_POST['verre5'] = chiffre();
$_POST['verre6'] = chiffre();
if (!empty($_POST)) {
    ?>
    <table width="284" height="380" border="0" align="center" cellpadding="2" cellspacing="0">
        <tr>
            <td colspan=2 width="97" class="set1">&nbsp;</td>
        </tr>
        <?php
        foreach ($_POST as $index => $value) {
            if (strpos($index,'verre') !== false) {
                echo '
            <tr>
        <td colspan=2><img src="affichecodebarre.php?code='.$value.'"
        </td>
    </tr>';
            }
        }
        ?>
    </table>
<?php
} else {
    echo 'Formulaire invalide !';
}
?>
</body>
</html>
le fichier qui affiche l'image
<?php
include 'pi_barcode.php';

$bc = new pi_barcode();
$bc->setCode($_GET['code']);
$bc->setType('C128');
$bc->setSize(30, 250, 30);
$bc->setText('AUTO');
$bc->hideCodeType();
$bc->setColors('#123456', '#F9F9F9');
$bc->setFiletype('PNG');
$bc->showBarcodeImage();
il est fonctionnel.

tu peux ajouter var_dump($_POST) en début du script de validation pour voir ce qui est effectivement transmis au script.

tu peux tester mon script (en enlevant la partie "by pass formulaire" et en sauvegardant le tiens :) ) voir si tu n'aurais un problème avec les fichiers sur le disque (qui d'ailleurs sont inutile car, a priori, tu ne souhaite pas la persistance des images).

@+

Re: l image ne se rafraîchit pas ???

par coqenpatte » 15 sept. 2013, 17:12

Aucune erreur ne s'affiche !

je ne pense qu'il y ai d'erreurs, car si je raffraichit la page le bon code a barre s'affiche.

As tu recu le mp que je t'ai envoyer ? ca te permettrais de voir le comportement de la page ?

essais de taper un mot dans les cases et de générer le code barre, ca marche la première fois mais apres il faut systematiquement rafraichir.

Re: l image ne se rafraîchit pas ???

par moogli » 15 sept. 2013, 13:33

Si forcément vue que tu as changé.

Mais sans message d'erreur je ne peux pas t'aider plus.
Il faut impérativement etrer sur que tu affiche les erreurs
Pour cela en début de script
<?php
Ini_set('display_error',1);
error_reporting(E_ALL);
?>
Et vois s'il y a une erreur qui s'affiche.

A tu bien le fichier pi_barcode.php dans le même répertoire que ce script ?

@+

Re: l image ne se rafraîchit pas ???

par coqenpatte » 15 sept. 2013, 11:59

Merci ton code est propre !!!

Mais le problème est le même. Ca ne peux pas venir du serveur ?

Encore une fois, cela marchait très bien avant.

Re: l image ne se rafraîchit pas ???

par moogli » 13 sept. 2013, 21:04

pour la factorisation du code je commencerais pas cela
<?php
include 'pi_barcode.php';
/**
 * Génération du code barre
 * @param $numero
 * @param $code
 * @return string
 */
function genImg($numero, $code) {
    $bc = new pi_barcode();
    $bc->setCode($code);
    $bc->setType('C128');
    $bc->setSize(30, 250, 30);
    $bc->setText('AUTO');
    $bc->hideCodeType();
    $bc->setColors('#123456', '#F9F9F9');
    $bc->setFiletype('PNG');
    $bc->writeBarcodeFile('barcode' . $numero . '.png');
    return '<img src="barcode' . $numero . '.png" />';
}
?>
<html>
<head>
    <title>IMPRESSION</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <META http-equiv="Cache-Control" content="no-cache">
    <META http-equiv="Pragma" content="no-cache">
    <META http-equiv="Expires" content="0">
    <style type="text/css">

        body, table {
            text-align: center;

        }
    </style>
</head>

<body onload="window.print();">
<?php
if (!empty($_POST)) {
    ?>
    <table width="284" height="380" border="0" align="center" cellpadding="2" cellspacing="0">
        <tr>
            <td colspan=2 width="97" class="set1">&nbsp;</td>
        </tr>
        <?php
        foreach ($_POST as $index => $value) {
            $nb = preg_match('/^verre(\d)$/', $index, $matches);
            if ($nb > 0) {
                echo '
            <tr>
        <td colspan=2>' . genImg($matches[1], $value) . '
        </td>
    </tr>';
            }
        }
        ?>
    </table>
<?php
} else {
    echo 'Formulaire invalide !';
}
?>
</body>
</html>
Même si je préfère un fichier php qui génère qui affiche l'image plutôt que d'utiliser des fichier temporaire inutile ;)

@+

Re: l image ne se rafraîchit pas ???

par moogli » 13 sept. 2013, 09:59

salut,

ta question n'est pas clair.
qu'est ce que tu entends par
Le souci c est que maintenant mon code barre n est pas actualisé,
?

il n'y a pas de raison que ton code rafraîchisse quoi que ce soit (ni meta ni JS pour rafraîchir la page).

tu n'a pas besoin d'inclure autant de fois le fichier pi_barcode.php une seule fois suffit.

ensuite il faut activer l'affichage des erreurs (display error à on) et être certain que le niveau de rapport d'erreur est bien E_ALL (afin d'avoir toutes les erreurs d'affichée.

Personnelement j'aurais fait un fichier qui générère l'image en fonction de la valeur qui lui est passée en paramètre.
du coup l'image serait ainsi <img src="lefichierquigenerelimage.php?verre=lavaleurissue du formulaire" />
l'avantage de cette solution c'est que tu évite les 10 copier coller de ton code et en cas de soucis tu ne débug qu'une page.

regarde dans le code source html généré s'il n'y a pas des erreurs.

tu peux aussi nous indiquer le lien de ta page pour que l'on vois un peu mieux ce que tu veux.

@+

l image ne se rafraîchit pas ???

par coqenpatte » 12 sept. 2013, 22:37

Bonsoir a tous,

Je génère plusieurs code barre à l'aide d'un formulaire, ce code fonctionnait parfaitement chez un héberger gratuit (hostinger) mais suite a un panne j ai tout transferé chez ovh.

Le souci c est que maintenant mon code barre n est pas actualisé, je suis obligé de faire F5. J' ai essayé différent code pour forcer le rafraichissement de la page ou des images mais ca ne marche pas.

voici le code :
<html>

<head>
   <title>IMPRESSION</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<META http-equiv="Cache-Control" content="no-cache"> 
<META http-equiv="Pragma" content="no-cache"> 
<META http-equiv="Expires" content="0">


<style type="text/css">

body, table
{
text-align: center;

}
</style>

</head>
<?php
$verre1 = $_POST['verre1'];
$verre2 = $_POST['verre2'];
$verre3 = $_POST['verre3'];
$verre4 = $_POST['verre4'];
$verre5 = $_POST['verre5'];
$verre6 = $_POST['verre6'];
?>

<body>

<table width="284" height="380" border="0" align="center" cellpadding ="2" cellspacing ="0">
<tr>    
     	<td colspan=2 width="97" class="set1"></td>
    	</tr>
          
<tr>    
     	<td colspan=2>
  	
<?php
include('pi_barcode.php');

$bc = new pi_barcode();

$bc->setCode($verre1);

$bc->setType('C128');

$bc->setSize(30, 250, 30);

$bc->setText('AUTO');

$bc->hideCodeType();

$bc->setColors('#123456', '#F9F9F9');

$bc->setFiletype('PNG');

$bc->writeBarcodeFile('barcode10.png');

echo '<img src="barcode10.png" alt="" />';

?>
</td></tr>
  
<tr>    
     	<td colspan=2>
  	
<?php
include('pi_barcode.php');

$bc = new pi_barcode();

$bc->setCode($verre2);

$bc->setType('C128');

$bc->setSize(30, 250, 30);

$bc->setText('AUTO');

$bc->hideCodeType();

$bc->setColors('#123456', '#F9F9F9');

$bc->setFiletype('PNG');

$bc->writeBarcodeFile('barcode11.png');

echo '<img src="barcode11.png" alt="" />';

?>
</td></tr>

<tr>    
     	<td colspan=2>
  	
<?php
include('pi_barcode.php');

$bc = new pi_barcode();

$bc->setCode($verre3);

$bc->setType('C128');

$bc->setSize(30, 250, 30);

$bc->setText('AUTO');

$bc->hideCodeType();

$bc->setColors('#123456', '#F9F9F9');

$bc->setFiletype('PNG');

$bc->writeBarcodeFile('barcode12.png');

echo '<img src="barcode12.png" alt="" />';

?>
</td></tr>
     

<tr>    
     	<td colspan=2>
  	
<?php
include('pi_barcode.php');

$bc = new pi_barcode();

$bc->setCode($verre4);

$bc->setType('C128');

$bc->setSize(30, 250, 30);

$bc->setText('AUTO');

$bc->hideCodeType();

$bc->setColors('#123456', '#F9F9F9');

$bc->setFiletype('PNG');

$bc->writeBarcodeFile('barcode13.png');

echo '<img src="barcode13.png" alt="" />';

?>
</td></tr>

<tr>    
     	<td colspan=2>
  	
<?php
include('pi_barcode.php');

$bc = new pi_barcode();

$bc->setCode($verre5);

$bc->setType('C128');

$bc->setSize(30, 250, 30);

$bc->setText('AUTO');

$bc->hideCodeType();

$bc->setColors('#123456', '#F9F9F9');

$bc->setFiletype('PNG');

$bc->writeBarcodeFile('barcode14.png');

echo '<img src="barcode14.png" alt="" />';

?>
</td></tr>
    
<tr>    
     	<td colspan=2>
  	
<?php
include('pi_barcode.php');

$bc = new pi_barcode();

$bc->setCode($verre6);

$bc->setType('C128');

$bc->setSize(30, 250, 30);

$bc->setText('AUTO');

$bc->hideCodeType();

$bc->setColors('#123456', '#F9F9F9');

$bc->setFiletype('PNG');

$bc->writeBarcodeFile('barcode15.png');

echo '<img src="barcode15.png" alt="" />';

?>
</td></tr>  

</table>

</body>
<script language="javascript">
<!--
window.print()
//-->
</script>
 </html>
Pourquoi ca ne marche plus ? Merci pour votre aide.

philippe