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 :

conseil si condition ou fonction ? pour refresh requete


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2015
    Messages : 93
    Par défaut conseil si condition ou fonction ? pour refresh requete
    bonjour,
    je teste actuellement le rafraichissement d'une page ou plus précisément une requête avec du code php
    voir code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $page = $_SERVER['PHP_SELF'];
    $sec = 5;
    header("Refresh: $sec; url=$page");
     
    //formatage de l'heure afficher
    $heure = date('H:i:s');
    jusqu'ici tous va bien !
    là ou ça ce complique, c'est quand je souhaite mettre un checkbox pour faire un (on off) du refresh et un sélecteur de vitesse de rafraichissement quand il est actif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <td> dernière actualisation de la page a : <?php print("$heure");?>
     
    					<label>on off</label><input type="checkbox" name="on_off" value="true">&nbsp;&nbsp;
    					rafraichissement de la page toutes les :
    					<select name="valeur">
    					<option value=3 selected="selected">3 sec.</option>
    					<option value=5 >6 sec.</option>
    					<option value=10 >10 sec.</option>
    					<option value=15 >15 sec.</option>
    					</select>
    j'ai essaye de mettre la variable $valeur a la place de 10 qui est le nombre de seconde définie de base dans le code écrit en premier
    ma page fait sont refresh en boucle et ne prend pas le temps sélectionner de mon select
    quand a mon checkbox j'ai essaye de l'utiliser dans une condition mais je n'y arrive pas...

    donc pour le moment j'en là :
    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
     
    <?php
    IF  ($on_off = true)
    {
    $page = $_SERVER['PHP_SELF'];
    $sec = 10;
    header("Refresh: $sec; url=$page");
    }
    ELSE ($on_off = false)
     
    // heure minutes seconde
     
    $heure = date('H:i:s');
    ?>
    					</td>
    				</tr>
    				<tr>
    					<td> derniere actualisation de la page a : <?php print("$heure");?>
    					<label>off</label><input type="checkbox" name="on_off" value="true">&nbsp;&nbsp;
    					rafraichissement de la page toutes les :
    					<select name="valeur">
    					<option value=3 selected="selected">3 sec.</option>
    					<option value=5 >5 sec.</option>
    					<option value=10 >10 sec.</option>
    					<option value=15 >15 sec.</option>
    					</select>
    j'ai mis un ELSE sans conviction et sans savoir ou mettre c'est crocher {} n'y quoi dedans je sèche là !
    rien ne fonctionne sauf le code de rafraichissement de la requête quand il est seul

    si une personne peu me mettre sur les rails je vous remercie par d'avance de votre aide et de vos réponses

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    IF  ($on_off = true)
    $on_off sort de nulle part...

    un formulaire suppose des balises <form>, et une récupération avec $_POST ou $_GET.
    $_GET me semble approprié ici.

    Sinon, en $_POST, il faut stocker les résultats dans une variable de SESSION pour ne pas les perdre au rafraichissement suivant.
    Dernière modification par Invité ; 03/12/2015 à 09h05.

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2015
    Messages : 93
    Par défaut
    merci de la réponse,
    j'ai tester la méthode GET en rajoutant mes balise form cela ne va pas, il se réactualise et perd les info.
    du coup je passe avec la méthode POST et utilise la variable $SESSION
    je vais tester ça et regarde ceux que ça donne
    je reviens quand j'ai avancer la dessus pour la fonction ou la condition

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2015
    Messages : 93
    Par défaut
    re, après de multiples test je pense que je m'en rapproche mais cela ne fonctionne pas vraiment comme ce que je souhaite faire
    je souhaite activer et désactiver avec le checkbox et quand c'est désactiver que ce soit la valeur en seconde sélectionner qui prenne le relai et rafraichisse la page en fonction de la valeur choisi dans le select

    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
     
    <?php
    session_start(); // on utilise la superglobale
     
    // On créer des variables de session dans $_SESSION
     
    $_SESSION['on_off'] = $_POST['on_off'];
    $_SESSION['valeur'] = $_POST['valeur'];
     
    // test pour visualiser la superglobale
     
    print_r($_SESSION); // pour voir ceux qu'affiche la superglobale pour test !
     
    // fin de test
     
    	if (isset($_POST['on_off']) == "off") 
       		{
     		$page = $_SERVER['PHP_SELF'];
     		$sec = $_SESSION['valeur'];
    		header("Refresh: $sec; url=$page");
                                                                     // Checkbox is selected
    		} 
    /*	else (isset($_SESSION['valeur']) = $_POST['valeur']) // pour le else ne sais pas trop comment faire ...
    		{
    		$page = $_SERVER['PHP_SELF'];
    		$sec = $valeur;
    		header("Refresh: $sec; url=$page");
    		}
    */ 
    //pas l'impression que ca sert a quelque chose 
    	$v3 = 3;
    	$v5 = 5;
            $v10 = 10;
            $v15 = 15;
            $v20 = 20;
            $v30 = 30;
    // fin 
     
    // formatage de l'heure afficher : heure minutes seconde      
            $heure = date('H:i:s');
    ?>
    					</td>
    				</tr>
    				<tr>
    					<td> derniere actualisation de la page a : <?php print("$heure");?>
    					<form action="refresh.php" method="POST">
    					<label>on/off</label><input type="checkbox" name="on_off" value="<?php $on_off ?>">&nbsp;&nbsp;
    					rafraichissement de la page toutes les :
    					<select name="valeur">
    					<option value="3" >3 sec.</option>
    					<option value="5" >6 sec.</option>
    					<option value="10" selected="selected">10 sec.</option>
    					<option value="15" >15 sec.</option>
    					<option value="20" >20 sec.</option>
    					<option value="30" >30 sec.</option>
    					</select>
    					<input type="submit" value="envoyer"> </form>
    merci de vos réponse et votre aide et désoler pour le code vraiment fouillis c'est un de mes premier vraiment coder

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION['on_off'] = $_POST['on_off'];
    $_SESSION['valeur'] = $_POST['valeur'];
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // par défaut
    if( empty($_SESSION['on_off'])) { $_SESSION['on_off'] = "off"; }
    if( empty($_SESSION['valeur'])) { $_SESSION['valeur'] = 5; }
    // si choix
    if( isset($_POST['on_off'])) { $_SESSION['on_off'] = $_POST['on_off']; }
    if( isset($_POST['valeur'])) { $_SESSION['valeur'] = $_POST['valeur']; }

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2015
    Messages : 93
    Par défaut
    merci de ta réponse,
    le but est proche mais difficile a atteindre ta proposition ma aider a avancer mais c'est pas encore ça du coup j'ai enlever le checkbox et mis un select pour le on off.
    l'effet avec ta proposition étais de faire un rafraichissement sans prendre en compte la valeur de temps en seconde choisi et s’arrêter a la fin du temps.

    dans le code actuel les valeur de S_SESSION change et s'affiche en fonction du choix mais la valeur on_off ne fonctionne pas, c'est comme si il rester sur la valeur "on" de longue par contre le rafraichissement ce fait avec la valeur sélectionner (3,5,10 etc..)

    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
     
    <?php
    session_start(); // on utilise la superglobale
     
    if( empty($_SESSION['valeur'])) { $_SESSION['valeur'] = 5; }
     
    if( isset($_POST['on_off'])) { $_SESSION['on_off'] = $_POST['on_off']; } 
    if( isset($_POST['valeur'])) { $_SESSION['valeur'] = $_POST['valeur']; }
    print_r($_SESSION);
     
    	if( empty($_SESSION['on_off']) == false) 
     
    		{
    		$page = $_SERVER['PHP_SELF'];
    		$sec = $_SESSION['valeur'];
    		header("Refresh: $sec; url=$page");
        echo '<br>rafraichissement on ! ';// Checkbox pas cocher
    		} 
    // formatage de l'heure afficher : heure minutes seconde      
    $heure = date('H:i:s');
    ?>
    					</td>
    				</tr>
    				<tr>
    					<td><br> derniere actualisation de la page a : <?php print("$heure");?>
    					<form action="refresh.php" method="POST">
     
     
    					rafraichissement de la page toutes les :
    					<select name="valeur">
    					<option value="3" >3 sec.</option>
    					<option value="5" selected="selected">5 sec.</option>
    					<option value="10" >10 sec.</option>
    					<option value="15" >15 sec.</option>
    					<option value="20" >20 sec.</option>
    					<option value="30" >30 sec.</option>
    					</select>
    					<select name="on_off">
    					<option value="on" >on</option>
    					<option value="off" >off</option>
    					</select>
    					<input type="submit" value="envoyer"> </form>
    que me conseille tu pour me permettre de mettre la position off et quelle soit prise en compte (que le rafraichissement s’arrête ) et que je puisse le remettre sur la position "on" en fonction de mon choix ??
    merci de la réponse et de l'aide

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2015
    Messages : 93
    Par défaut
    Ca fonctionne enfin, mais reste un petit problème il faut que je sélectionne et valide 2 fois l'action voulu "on" ou "off" pour l’éteindre et pareil pour l'allumer une idee ??

    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
     
    <?php
    session_start(); // on utilise la superglobale
    $on = ($_SESSION['on_off'] == "on");
    $off = ($_SESSION['on_off'] == "off");
    // par défaut
    if( empty($_SESSION['valeur'])) { $_SESSION['valeur'] = 5; }
    // si choix
    if( isset($_POST['on_off'])) { $_SESSION['on_off'] = $_POST['on_off']; }  
    if( isset($_POST['valeur'])) { $_SESSION['valeur'] = $_POST['valeur']; }
    print_r($_SESSION);
    //test
    	if (isset($_SESSION['on_off']) == $off) 
    		{ 
    			echo '<br>rafraichissement off ! ';
    		} 
     
    	else 
    		{
    			$page = $_SERVER['PHP_SELF'];
    			$sec = $_SESSION['valeur'];
    			header("Refresh: $sec; url=$page");
    			echo '<br>rafraichissement on ! ';
    		} 
     
     
    // formatage de l'heure afficher : heure minutes seconde      
    $heure = date('H:i:s');
    ?>
    					</td>
    				</tr>
    				<tr>
    					<td><br> derniere actualisation de la page a : <?php print("$heure");?>
    					<form action="refresh.php" method="POST">
     
     
    					rafraichissement de la page toutes les :
    					<select name="valeur">
    					<option value="3" >3 sec.</option>
    					<option value="5" selected="selected">5 sec.</option>
    					<option value="10" >10 sec.</option>
    					<option value="15" >15 sec.</option>
    					<option value="20" >20 sec.</option>
    					<option value="30" >30 sec.</option>
    					</select>
    					<select name="on_off">
    					<option value="on" >on</option>
    					<option value="off" >off</option>
    					</select>
    					<input type="submit" value="envoyer"> </form>

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_SESSION['on_off']) == $off)
    tu l'as trouvée où, cette syntaxe ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php print("$heure");?>
    Et celle-ci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $on = ($_SESSION['on_off'] == "on");
    $off = ($_SESSION['on_off'] == "off");
    Et là, tu sais ce que ça renvoie comme résultat ?
    et même à quoi ça sert, puisque $on et $off ne servent plus ensuite...


    Donc, oui, on a une idée. Même plusieurs.
    Et toi ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2015
    Messages : 93
    Par défaut
    merci de la réponse, même si je ne comprend pas tout...
    le code 1 proposer : sort d'une variable créer pour convertir le s_post et le S_SESSION propose auparavant en variable simple. étant débutant je conçois que l’algorithme n'est pas des plus direct mais cela me permet de m'y retrouver
    le code 2 proposer : la syntaxe n'est pas celle que j'ai écrite, le print_r me permet de voir le résultat des variables $_SESSION pour test et comprendre ceux qui est pris en compte ou pas.
    le code 3 proposer : il doit renvoyer le résultat sous forme de variable en fonction des envoi poster, mais là c'est pareil étant donnée que je débute je ne suis pas sur du résultat mais je vais tester et revient vers vous.
    oui j'ai des idée mais difficile a mettre en œuvre ! mais a force, je vais finir par y arriver ! mais b...l que je galère et me prend le choux !

  10. #10
    Invité
    Invité(e)
    Par défaut
    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
    <?php
    session_start();
    // si les varaibles de SESSION ne sont pas définies (1er accès à la page), on leur donne des valeurs par défaut
    if( empty($_SESSION['sec'])) { $_SESSION['sec'] = 5; }
    if( empty($_SESSION['on_off'])) { $_SESSION['on_off'] = 'on'; }
    // si envoie du formulaire et choix, on remplace les valeurs dans les variables de SESSION
    if( isset($_POST['sec'])) { $_SESSION['sec'] = $_POST['sec']; }
    if( isset($_POST['on_off'])) { $_SESSION['on_off'] = $_POST['on_off']; }  
     
    // si 'off", pas de rafraichissement
    if ( $_SESSION['on_off'] == 'off') 
    { 
    	echo '<br>rafraichissement off ! ';
    } 
    else // sinon "on" : on rafraichit la page
    {
    	echo '<br>rafraichissement on ! ';
    	header('refresh: '.$_SESSION['sec'].'; url='.$_SERVER['PHP_SELF']);
    } 
    ?>
    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
    Dernière actualisation de la page à : <?php echo date('H:i:s'); // formatage de l'heure afficher : heure minutes seconde ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    	rafraichissement de la page toutes les :<br />
    	<select name="sec">
    	<?php // on crée un array contenant les valeurs à afficher
    	$array_sec_val = array(3,5,10,15,20,30);
    	// on parcours l'array, pour construire les options du select
    	foreach($array_sec_val as $sec_val)
    	{
    		$selected = ($sec_val == $_SESSION['sec'])? ' selected="selected"' : ''; // on ajoute "selected" sur l'option sélectionnée
    		echo '		<option value="'.$sec_val.'"'.$selected.'>'.$sec_val.' sec.</option>'."\n";
    	}
    	?>
    	</select>
    	<input type="radio" name="on_off" value="on"<?php if($_SESSION['on_off']=='on'){ echo ' checked="checked"'; } ?> id="id_on" /><label for="id_on">on</label>
    	<input type="radio" name="on_off" value="off"<?php if($_SESSION['on_off']=='off'){ echo ' checked="checked"'; } ?> id="id_off"/><label for="id_off">off</label>
    	<input type="submit" value="envoyer" />
    </form>
    Dernière modification par Invité ; 06/12/2015 à 18h54.

  11. #11
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2015
    Messages : 93
    Par défaut
    merci de ta réponse, ca fonctionne
    maintenant histoire de comprendre au vu du code proposer tout a fait différent de celui que j'ai poster c'est quoi qui faisait qu'il fallait valider 2 foi un choix pour qu'il soit pris en compte ??
    es ce que j'étais loin d'y arriver comme ca ?
    merci encore de ton aide
    +1

  12. #12
    Invité
    Invité(e)
    Par défaut
    A vrai dire, je n'est pas vraiment cherché à comprendre.
    J'ai juste réécrit le code, en faisant preuve de logique.

    J'ai ajouté quelques commentaires à mon code ci-dessus.

    Ton problème est que tu avances à tâton, sans vraiment prendre le temps de lire des tutos.
    Tu pêches non seulement par méconnaissance du codage PHP (ce qui n'est pas une tare !), mais aussi par manque de logique.

    Autre point : il n'est pas utile de créer des variables qui ne serviront qu'une fois.

  13. #13
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2015
    Messages : 93
    Par défaut
    donc dans ta logique il faut que je trouve une autre solution plutôt que de créer une variable a usage unique pour trouver le résultat plus direct.
    comme je les dit je débute, les tutos j’arrête pas d'en lire mais il est vrai que je m'acharne sur des choses selon mes besoin, mais a tâton comme tu le dit et d'un level élever par rapport a mes connaissances mais cela me permet d'avancer quand même le fait que l'on m'oriente me permet d'avancer la preuve en est le dernier bout de code il fonctionne, enfin presque
    bref !
    merci de ta patience et de t'es réponses
    sujet résolu

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

Discussions similaires

  1. conseil pour une requete sql
    Par viny dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 31/08/2007, 09h54
  2. [AJAX] [vos avis] fonction "générique" pour les requetes
    Par gorgonite dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/07/2007, 20h40
  3. Réponses: 4
    Dernier message: 14/01/2007, 14h21
  4. [MySQL] Condition pour une Requete sql vide
    Par needles94000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/03/2006, 19h03
  5. Fonction pour récuperer mon adresse IP
    Par néo333 dans le forum Web & réseau
    Réponses: 11
    Dernier message: 01/11/2003, 18h35

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