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 :

Executer bout de code php lors de l'appuis sur un bouton


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Executer bout de code php lors de l'appuis sur un bouton
    Bonjour,

    Etant débutant en la matière, dans un projet personnel je suis amené à utiliser php et je ne trouve pas de solutions sur le web.
    J'ai créer une petite page php qui sera hébergée sur un raspberry pi et c'est là où je bloque.
    Ce projet est un réveil et l'objectif est de pouvoir le programmer (modifier l'heure de sonnerie de celui-ci).
    Pour cela la page php fait l'objet d'un formulaire et d'un bouton. Le formulaire permet de sélectionner l'heure et le bouton d'enregistrer l'heure dans un fichier.txt en local.
    Mon code php fonctionne et mon code html aussi.
    J'aimerais donc pouvoir récupérer les données de mon formulaire et les enregistrer dans un fichier.txt quand j'appuis sur le bouton.

    Cordialement,
    Antoine


    Code:
    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
     
    <html>
        <head><title>Page configuration réveil</title></head>
        <body style ="background-color: #f1f1f1;">
    	<div style = "border-radius: 10px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);border:2em solid white;background-color: white; box-shadow: 0 1px 3px rgba(0,0,0,.13);">
     
            <h1 style="font-family: Arial,sans-serif">HEURE DE RÉVEIL </h1>
            <form action="" method="post">
    			<p style="text-align:center;">
    				<select name="dhour" id="dhour" required style="background-color: white;border:0.001em solid black; color: black; padding: 8px 16px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px">
    					<option value="zerohd">0</option>
    					<option value="unhd">1</option>
    					<option value="deuxhd">2</option>
    				</select>
    				<select name="hour" id="hour" required style="background-color: white;border:0.001em solid black; color: black; padding: 8px 16px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px">
    					<option value="zeroh">0</option>
    					<option value="unh">1</option>
    					<option value="deuxh">2</option>
    					<option value="troish">3</option>
    					<option value="quatreh">4</option>
    					<option value="cinqh">5</option>
    					<option value="sixh">6</option>
    					<option value="septh">7</option>
    					<option value="huith">8</option>
    					<option value="neufh">9</option>
    				</select>
    				<p1>:</p1>
    				<select name="dminute" id="dminute" required style="background-color: white;border:0.001em solid black; color: black; padding: 8px 16px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px">
    					<option value="zeromd">0</option>
    					<option value="unmd">1</option>
    					<option value="deuxmd">2</option>
    					<option value="troismd">3</option>
    					<option value="quatremd">4</option>
    					<option value="cinqmd">5</option>
     
    				</select>
    				<select name="minute" id="minute" required style="background-color: white;border:0.001em solid black; color: black; padding: 8px 16px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px">
    					<option value="zerom">0</option>
    					<option value="unm">1</option>
    					<option value="deuxm">2</option>
    					<option value="troism">3</option>
    					<option value="quatrem">4</option>
    					<option value="cinqm">5</option>
    					<option value="sixm">6</option>
    					<option value="septm">7</option>
    					<option value="huitm">8</option>
    					<option value="neufm">9</option>
    				</select>
    			</p>
    			<p style="text-align:center;">
    			<input type="submit" style ="display: block;padding-left: auto;padding-right: auto; background-color: #FF7006;border: none; color: white; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px" value="Programmer" />
    			<?php
    				if(isset($_POST['submit'])) {
    		        	// Open the text file
    		        	$f = fopen("heure.txt", "w");
    		        	// Write text line
    		        	fwrite($f, "COUCOU C MOUA");
    		        	// Close the text file
    		        	fclose($f);
    				}
    			?>
     
    			</p>
    		</form>
    	</div>
    	</body>
    </html>
    Images attachées Images attachées  

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu peux récupérer les valeurs envoyées par le formulaire en utilisant $_POST Les formulaires et PHP5
    A noter que tes listes sont bizarrement construites : personnellement, j'aurais renvoyé les valeurs numériques, et fait un seul champ au lieu d'un pour les dizaines et un pour les unités (là tu vas devoir gérer le cas où quelqu'un sélectionne 25h )

    Si tu veux t'épargner d'avoir à écrire les nombres à la main, tu peux parfaitement générer tes listes avec une boucle PHP. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="minutes">
    <?php for ($i=0;$i<60;$i++) {
        echo '<option value="'.$i.'">'.$i.'</option>';
    }?>
    </select>
    Sinon, en HTML5 (uniquement pour les navigateurs qui le supportent), il existe le champ de type "time" , ou éventuellement le champ de type "number" pour éviter d'avoir à générer des listes déroulantes
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 164
    Points : 377
    Points
    377
    Par défaut
    Bonjour antardivel,

    Pour ton problème je pense là même chose que Celira pour la construction de tes listes de sélection.
    Une simple boucle incrémentale suffit. Surtout si tu cherches à sélectionner les données enregistrées dans ton fichier .
    Je te conseille également d'utiliser un format JSON, plus simple que le format TXT qui lui, devra d'être parsé pour récupérer tes données
    (après je sais pas si tu as l'obligation du format texte sur ton Raspberry ^^).
    Je t'invite également à séparer le code ton formulaire du son traitement :


    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
    <!-- horloge.php : -->
    <html>
        <head>
    		<title>Page configuration réveil</title>
    		<style>
    			body{
    				background-color: #f1f1f1;
    			}
    			.wrapper{
    				border-radius: 10px;
    				position: absolute;
    				top: 50%; left: 50%;
    				transform: translate(-50%, -50%);
    				border:2em solid white;
    				background-color: white;
    				box-shadow: 0 1px 3px rgba(0,0,0,.13);
    				text-align: center;
    			}
    			select{
    				background-color: white;
    				border: 0.001em solid black;
    				color: black;
    				padding: 8px 16px;
    				text-align: center;
    				text-decoration: none;
    				display: inline-block;
    				font-size: 16px;
    			}
    			input[type="submit"]{
    				display: block;
    				padding-left: auto;
    				padding-right: auto;
    				background-color: #FF7006;
    				border: none; color: white;
    				padding: 15px 32px;
    				text-align: center;
    				text-decoration: none;
    				display: inline-block;
    				font-size: 16px
    			}
    		</style>
     
    	</head>
        <body>
    	<div class="wrapper">
            <h1 style="font-family: Arial,sans-serif">HEURE DE RÉVEIL </h1>
    		 <?php 
    			/* Tu déclare tes données de bases. */
    			$data = [
    				'dhour'   => '',
    				'hour'    => '',
    				'dminute' => '',
    				'minute'  => ''
    			];
    			/* si le fichiers de données existe. */
    			if(file_exists('heure.json')) {
    				/* Tu récupére les donnes. */
    				$file = file_get_contents('heure.json');
    				$data = json_decode($file, true);
    			}
    		 ?>
            <form action="traitement.php" method="post">
    			<div class="form-group">
    				<select name="dhour" id="dhour" required>
    				    <!-- Tu parcours une liste et si la valeur dans le fichier correspond à l'élément de la liste tu le selectionne. -->
    					<?php for($i = 0; $i <= 2; $i++): ?>
    						<option value="<?php echo $i; ?>" <?php if($data['dhour'] == $i): ?> selected <?php endif; ?>><?php echo $i; ?></option>
    					<?php endfor; ?>
    				</select>
    				<select name="hour" id="hour" required>
    					<?php for($i = 0; $i <= 9; $i++): ?>
    						<option value="<?php echo $i; ?>" <?php if($data['hour'] == $i): ?> selected <?php endif; ?>><?php echo $i; ?></option>
    					<?php endfor; ?>
    				</select>
    				<span>:</span>
    				<select name="dminute" id="dminute" required>
    					<?php for($i = 0; $i <= 5; $i++): ?>
    						<option value="<?php echo $i; ?>" <?php if($data['dminute'] == $i): ?> selected <?php endif; ?>><?php echo $i; ?></option>
    					<?php endfor; ?>
    				</select>
    				<select name="minute" id="minute" select="<?php echo $data['minute']; ?>" required>
    					<?php for($i = 0; $i <= 9; $i++): ?>
    						<option value="<?php echo $i; ?>" <?php if($data['minute'] == $i): ?> selected <?php endif; ?>><?php echo $i; ?></option>
    					<?php endfor; ?>
    				</select>
    			</div>
    			<div class="form-group">
    				<input name="submit" type="submit" style ="" value="Programmer" />
    			</div>
    		</form>
    	</div>
    	</body>
    </html>
    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
     
    <?php
    /* traitement.php : */
     
    /*Si mon formulaire m'envoie des données */
    if(isset($_POST['submit'])) {
     
    	$errors = [];
    	/* Vérifier si les données reçu sont bonnes. */
    	/* ... */
     
    	/* Si les données sont bonnes */
    	if(empty($errors)) {
    		/* Les enregistrer dans un fichier au format JSON.*/
    		$f = fopen("heure.json", "w");
     
    		fwrite($f, json_encode($_POST));
    		fclose($f);
    	}
    }
    /* Redirection au formulaire. */
    header('Location: horloge.php');
    Mon projet CMS https://soosyze.com/
    Son repo github https://github.com/soosyze/soosyze

    Open source tools and free yes, but with elegance .

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

    je suis d'accord avec Celira : tes <select> sont mal conçus, et les value totalement farfelues.

    On n'a besoin que de 2 <select> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select name="hour" id="hour">
    <?php 	for( $h=0; $h<24; $h++ ){ ?>
    	<option value="<?php echo $h;?>"><?php echo str_pad($h, 2, '0', STR_PAD_LEFT);?></option>
    <?php 	} ?>
    </select>&nbsp;:&nbsp;<select name="minute" id="minute">
    <?php 	for( $m=0; $m<60; $m++ ){ ?>
    	<option value="<?php echo $m;?>"><?php echo str_pad($m, 2, '0', STR_PAD_LEFT);?></option>
    <?php 	} ?>
    </select>

Discussions similaires

  1. Affichage d'une fenêtre lors de l'appui sur un bouton
    Par Andrasius dans le forum Débuter
    Réponses: 2
    Dernier message: 08/03/2017, 17h39
  2. Réponses: 1
    Dernier message: 25/10/2009, 13h39
  3. lien ahref sans un bout de code php
    Par a7med06 dans le forum Langage
    Réponses: 1
    Dernier message: 25/04/2008, 05h43
  4. Réponses: 9
    Dernier message: 04/07/2007, 19h27

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