[RESOLU] Augmenter automatiquement une heure en fonction d'un champ de formulaire

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] Augmenter automatiquement une heure en fonction d'un champ de formulaire

Re: [RESOLU] Augmenter automatiquement une heure en fonction d'un champ de formulaire

par comardud » 13 nov. 2020, 00:21

Merci infiniment à toi pour ta patience et pour le cours PHP 🙂

Re: [RESOLU] Augmenter automatiquement une heure en fonction d'un champ de formulaire

par @rthur » 12 nov. 2020, 23:27

Gagné !

En bonus, je te donne la façon de faire la + propre :
$horodate_souhaitee = date('Y-m-d H:i:s', strtotime('now +'.$urgence.' hour'));

Re: Augmenter automatiquement une heure en fonction d'un champ de formulaire

par comardud » 12 nov. 2020, 22:31

En faisant ça ça marche :D

Code : Tout sélectionner

$horodate_souhaitee = date('Y-m-d H:i:s', strtotime($horodate_cde. " + $urgence hour"));

Re: Augmenter automatiquement une heure en fonction d'un champ de formulaire

par comardud » 12 nov. 2020, 22:08

La syntaxe en PHP c'est compliqué :(

quelle est la bonne syntaxe ?

Code : Tout sélectionner

$horodate_souhaitee = date('Y-m-d H:i:s', strtotime('now' , $urgence));

Re: Augmenter automatiquement une heure en fonction d'un champ de formulaire

par @rthur » 12 nov. 2020, 21:54

Si $horodate_cde est toujours la date/heure courante alors, tu peux même faire + simple en utilisant le mot clé "now" dans strtotime() :
$horodate_souhaitee = date('Y-m-d H:i:s', strtotime('now +1 hour'));
echo $horodate_souhaitee;
Et effectivement tu as juste à changer le nombre d'heures en fonction de l'urgence.
Si tu n'utilises pas ailleurs la valeur de tes boutons radio urgence, tu peux directement mettre le nombre d'heures 0 / 1 / 4 en value que tu vas ensuite additionner

Re: Augmenter automatiquement une heure en fonction d'un champ de formulaire

par comardud » 12 nov. 2020, 21:08

J'ai modifié mon post au dessus ;-)

En prenant ton code voilà ou j'en suis

Code : Tout sélectionner

$horodate_cde = date("Y-m-d H:i:s"); $horodate_souhaitee = date('Y-m-d H:i:s', strtotime($horodate_cde.' +1 hour')); echo $horodate_souhaitee;
Je commence doucement à comprendre le fonctionnement :D le echo me sert juste à visualiser ce que je fais.

Me reste à changer le +1 hour par ma variable $urgence

J'ai bon ? :)

Re: Augmenter automatiquement une heure en fonction d'un champ de formulaire

par @rthur » 12 nov. 2020, 20:45

strtotime() te renvoie un timestamp qui est le format machine le plus commun pour exprimer une date (mais il n'est pas très lisible, certe ;-) )

Pour debuguer tu peux convertir rapidement un timestamp via ce site : http://timestamp.fr

Et en PHP si tu veux avoir un timestamp dans un autre format, tu peux utiliser la fonction date() en indiquant ton timestamp en 2è paramètre.

Exemple :
$horodate_cde = '2020-11-12 19:30:00';
echo date('Y-m-d H:i:s', strtotime($horodate_cde.' +1 hour'));
// va te donner  2020-11-12 20:30:00

Re: Augmenter automatiquement une heure en fonction d'un champ de formulaire

par comardud » 12 nov. 2020, 20:39

Je débute :? :D
J'ai lu la page sur le strtotime.
J'ai intégré ça dans mon form.php qui récupère mes données de formulaire

Code : Tout sélectionner

$horodate_souhaitee = strtotime($horodate_cde." +$urgence" );
Et là je bloque, je n'arrive pas à convertir ce strtotime en date et heure.
J'ai lu pas mal de chose sur le timestamp mais je en comprends pas bien comment l'utiliser

Re: Augmenter automatiquement une heure en fonction d'un champ de formulaire

par @rthur » 12 nov. 2020, 17:31

Je t'ai donné une piste dans mon premier message ;-)
Il faut que tu utilises la fonction strtotime :
https://php.net/strtotime
strtotime($horodate_cde." +1 hour" )
Là j'ai mis +1 hour, mais à toi d'adapter en fonction de l'urgence

Re: Augmenter automatiquement une heure en fonction d'un champ de formulaire

par comardud » 11 nov. 2020, 22:02

Bonjour à tous,

après pas mal de recherches je reviens vers vous :D

Je me suis intéressé à la réception des données de mon formulaire plutôt qu'au formulaire lui même.

Dans le 1er champ je récupère la date et l'heure, comme cette donnée n'est pas entrèe manuellement je l'ai intégré directement dans le $POST:

Code : Tout sélectionner

if(isset($_POST['horodate_cde'])) $horodate_cde=$_POST['horodate_cde']; else $horodate_cde="Y-m-d H:i:s";


Je récupère ensuite la donnée de mes boutons radio:

Code : Tout sélectionner

if(isset($_POST['urgence'])) $urgence=$_POST['urgence']; else $urgence="";


Et au final ce que j'aimerais c'est additionner ces 2 données comme ceci:

Code : Tout sélectionner

if(isset($_POST['horodate_souhaitee'])) $horodate_souhaitee=$_POST['horodate_souhaitee']; else $horodate_souhaitee="$horodate_cde+$urgence";

Je sèche :D
Merci

Re: Augmenter automatiquement une heure en fonction d'un champ de formulaire

par comardud » 09 nov. 2020, 19:10

Salut et merci de t'intéresser à mon cas ;-)
C'est un traitement derrière, l'utilisateur ne verra pas ce calcul.

Etant débutant en php j'avoue que je ne sais pas comment utilisé la fonction strtotime() ni comment je dois réaliser le code.
Je vais faire des recherches.

Re: Augmenter automatiquement une heure en fonction d'un champ de formulaire

par @rthur » 08 nov. 2020, 17:59

Tu veux afficher cet horaire en direct à l'utilisateur au moment où il sélectionne son degré d'urgence ou c'est uniquement pour le traitement que tu veux faire derrière ?

Si c'est pour l'afficher immédiatement alors ce n'est pas en PHP mais plutôt en javascript qu'il faut le faire.
Il existe une super librairie JS qui permet de manipuler facilement des dates et heures : https://momentjs.com/

Si c'est pour ton traitement côté serveur et donc en PHP tu veux le faire facilement avec la fonction strtotime(), ce qui pourrait donner : strtotime($horodate_cde." +1 hour" ) par exemple

Augmenter automatiquement une heure en fonction d'un champ de formulaire

par comardud » 08 nov. 2020, 13:54

Bonjour à tous,
mon titre n'est pas très clair , désolé :D
Je pense que les spécialistes trouveront ça facile mais moi je coince un peu :(
J'ai un formulaire html avec un champ date (date et heure du jour) qui se rempli automatiquement avec un php echo date("Y-m-d H:i:s").
L'utilisateur choisi via un champ type bouton radio le délai de livraison qu'il souhaite (1 heure, 1/2 journée, immédiatement).
J'ai un autre champs avec la date et l'heure souhaitée, j'aimerais que ce champ affiche automatiquement la date et l'heure souhaitee en fonction du choix de l'utilisateur.
Exemple si l'utilisateur choisi 1 heure alors l'heure souhaitée sera champs date + 1 heure, si il choisi le délai 1/2 journée alors l'heure souhaitée sera champs date + 4h et rien si c'est immédiatement.

voici le code:

Code : Tout sélectionner

<input type="text" name="horodate_cde" value="<?php echo date("Y-m-d H:i:s"); ?>"><br/> <input type="text" name="horodate_souhaitee" value="DATE AU DESSUS + DELAI CHOISI"> <br/><br/> <FONT size="2pt">Degré d'urgence:*</FONT> <br/> <input type="radio" name="lieu" value="1Heure"/>1 heure <input type="radio" name="lieu" value="1/2Journee"/>1/2 journée <input type="radio" name="lieu" value="Immediat"/>Immédiat
Merci de votre aide