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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Rafraîchissement de page [EasyPHP]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Par défaut Rafraîchissement de page
    Bonjour,

    J'ai easyPhp 1.8 en local sous Windows XP et j'ai un problème de rafraichissement de pages en php.

    J'ai un formulaire et je veux vérifier les champs saisis lors de l'appui sur le bouton Validation.

    Pour cela je veux réafficher la page avec les messages d'erreurs

    Malheureusement lorsque la page se réaffiche toutes les saisies ont disparues comme si c'était son premier affichage.

    Voic un bout de code simplifié qui reproduit le phénomène
    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
    /*
      Teste de validation et de redirection
    */
     
    // mes includes simplifiés
    function validation_apresacte($valeur) {
    	$erreurs = array();
    	if ($valeur != "ok")
    	{
    		$erreurs[0] = "'$valeur' n'est pas la valeur attendue!";
    	}
    	return $erreurs;
    }
    function initialise_apresacte() {
    	$bdd = array();
    	$bdd[] = "valeur de la base";
    	return $bdd;
    }
     
    // mon code d'entête retors
    $valide = false;
    $apreacte = array();
    if (true){ // session  ok
     
    	if (isset($avalider))
    	{
    		$apreacte = validation_apresacte($persiste);// ou un tableau de valeur.
            $valide = (count($apreacte) == 0)? true : false;		
    		if ($valide)
    		{
    			//tout est ok, page suivante
    			header("Location:page_suivante.php"); // redirection  apres validation
    			exit();
    		}	 
     
    		// y'a des erreurs, là, pas de redirection, on continue dans cette page, avec apresacte bien rempli de message d'erreur
    	}
    	else
    	{
    		// Initialisation des données pour les affichages
    		$apreacte = initialise_apresacte();
    	}
     
    }
    else {
    	header("Location:identification.php?erreur=intru"); // redirection en cas d'echec
    }
     
    ?>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Document sans titre</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body>
    <p>rentrer "ok" pour bonne valeur et autre pour mauvaise</p>
    <form>
    	<input name="persiste" type="text" size="70" maxlength="70" value="<?php echo $apreacte[0]; ?>">
    	<br>
        <input type="submit" name="Submit" value="Validation">
    	<input name="Annulation" type="reset" value="Annulation">
    	<input type="hidden" name="avalider" value="1">
    </form>
    </body>
    </html>
    J'ai installé ce code sur un serveur distant et le problème n'apparaît pas.

    Je l'ai testé sur un autre ordinateur avec easyphp 1.8 puis 1.7 et c'est toujours le même bug.

    Comme ca ne marche qu'à distance, je soupçonne la configuration d'Apache sous easyPhp, mais j'ignore comment régler ce problème !

    Si quelqu'un connait une solution ...
    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2004
    Messages : 99
    Par défaut
    Très probablement un register global à off sur EasyPHp (depuis la 1.7 par défaut), et à on sur ton serveur distant.
    Utilise les tableaux $_POST et $_GET pour accéder à tes variables
    Essaie de remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
       if (isset($avalider))
       {
          $apreacte = validation_apresacte($persiste);// ou un tableau de valeur.
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
       if (isset($_GET['avalider']))
       {
          $apreacte = validation_apresacte($_GET['persiste']);// ou un tableau de valeur.
    ($_GET car tu n'as pas précisé la méthode de ton form)

  3. #3
    Membre habitué
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Par défaut
    C'est exactement ça le register_globals du php.ini était à Off

    Merci beaucoup !

    J'utilise principalement $_POST pour lire mes variables (sauf dans cet exemple )

    Merci encore

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/05/2012, 10h46
  2. [Tableaux] Redirection et rafraîchissement de page
    Par Snowwolf dans le forum Langage
    Réponses: 5
    Dernier message: 14/03/2008, 11h13
  3. Rafraîchissement des pages d'un CMS
    Par CUCARACHA dans le forum ASP.NET
    Réponses: 2
    Dernier message: 01/10/2007, 11h35
  4. Rafraîchissement de page après déconnexion
    Par cesoir dans le forum Langage
    Réponses: 8
    Dernier message: 29/03/2007, 09h56
  5. [Tableaux] Rafraîchissement de page
    Par megapacman dans le forum Langage
    Réponses: 15
    Dernier message: 18/07/2006, 13h23

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