Bouton de "validation" et structure du programme.

Bouton de "validation" et structure du programme. - PHP - Programmation

Marsh Posté le 26-07-2004 à 00:35:46    

Je suis nouveau dans le php (et pas bien ancien dans la programmation en général d'ailleurs) et je me retrouve un peut coincé là faute d'habitude et d'organisation (et de talent aussi... si si)
 
Je m'amuse en ce moment, en réalisant une sorte d'agenda interactif ou les utilisateurs pourraient rentrer des événements par exemple.
 
Je me retrouve pour l'instant avec une page où je fais rentrer les données et une autre page ou j'ai une fonction destinée à afficher ce que l'utilisateur a rentré et à lui demander de valider. J'appel donc la fonction depuis la page d'entrée des données. J'utilise donc mes variable $_POST[xxx]pour faire le boulo.
 
Maintenant j'aimerais que si l'utilisateur valide, on puisse exécuter une autre fonction (que j'ai écrite) qui stock tout ça dans la base de donné. Enfin je suis habitué de faire des fonctions dès que possible mais je ne sais pas si c'est necessaire...
 
Mes problèmes:
1) Je ne sais pas comment faire de bouton "valider" qui permettrait juste de continuer le programme...
 
2) j’ai l'impression qu'en mettant les 2 fonctions sur la même page et qu'en les appelants l'une après l'autre depuis la page d'entrée, je pers mes variables $_POST... Et donc jusqu'à quel point ces variables sont elles "utilisables" ? Et faut il faire une page = une fonction ?
 
Bon j'ai du mal à bien bien expliquer. On va déjà voir ce que ça donne là... :D

Reply

Marsh Posté le 26-07-2004 à 00:35:46   

Reply

Marsh Posté le 26-07-2004 à 09:19:16    

1) Je comprend pas la question
 
2)Non tu peux faire plusieurs fonction sur la meme page, tu dois avoir foirer le passage d'argument ou qqch du genre si ca marche pas..

Reply

Marsh Posté le 26-07-2004 à 09:40:42    

il faut que tu comprennes comment fonctionne les variables GET  et POST.
 
un fonction, en terme PHP, n'est rien d'autre qu'une fonction dans un autre langage. avec nom, retour et arguments.
 
ce dont tu parles, c'est de la validation du formulaire. tu peux en avoir plusieurs par page. mais chacun doit avoir un tag <form> et un <input type="submit">
 
la visibilité des variables $_POST et $_GET est volatile. tu peux la garder de page en page en utilisant les session ou les cookies. (préférer les sessions)
 
va faire un tour sur www.phpdebutant.org pour faire 2-3 tutos.
 
a+


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 26-07-2004 à 10:41:35    

Bon malgrès mon manque de clarté j'ai eu des bouts d'indice qui m'a permis de resoudre quelques problèmes.
 
Mais je n'arrive toujours pas à utiliser les variables $_POST dans ma deuxième fonction (les dates prennent les valeurs par defaut et pour le reste elle ont une valeur null).
Je n'utilise pas de sessions pour l'instant, et je n'ai pas eu l'impression d'en avoir besoin, car ces variables ont été utilisées dans une autre page (avec la première fonction) sans session...
 
Bon pour m'aider a expliqer voilà le code hein...

Code :
  1. <?php
  2. #Fonction verif:
  3. #Affiche les entrées es faite
  4. function verif() {
  5. /*Formater l'horaire */
  6. $horaire = date("H:i", strtotime("$_POST[timeH]:$_POST[timeM]" ));
  7. /* Création d'un tableau des mois*/
  8. $nomsMois = array(1=> "Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet",
  9. "Août", "Septembre", "Octobre", "Novembre", "Decembre" );
  10. $m = $_POST[dateMO];
  11. echo "Est ce que ces informations sont exactes ? <br><br>";
  12. echo "Date: $_POST[dateDay] $nomsMois[$m] $_POST[dateYr] <br>";
  13. echo "Horaire: $horaire <br>";
  14. echo "Organisateur: $_POST[orga] <br>";
  15. echo "Lieu: $_POST[lieu] <br>";
  16. echo "Description: $_POST[descr] <br>";
  17.    }
  18. function stock() {
  19. $host = "sql.free.fr";
  20. $user = "xxxxxxx";
  21. $password = "xxxxxxx";
  22. if (!$connection = mysql_connect($host ,$user ,$password))
  23. {
  24.  $message = mysql_error();
  25.  echo "$message<br>";
  26.  die();
  27. }
  28. $database = "xxxxxxx";
  29. $db = mysql_select_db($database,$connection)
  30. or die ("cette base n'existe pas!" );
  31. /*Formater la date pour sql */
  32. $date_sql = date("Y-m-d", strtotime("$m/$_POST[dateDay]/$_POST[dateYr]" ));
  33. /*Formater l'horaire pour sql */
  34. $horaire_sql = date("H:i:s", strtotime("$horaire" ));
  35. /* Debugage */
  36. echo "$_POST[descr]";
  37. echo "$date_sql <br>";
  38. echo "$horaire_sql";
  39. $query = "INSERT INTO cust_ev (ev_date, ev_horaire, ev_orga, ev_lieu, ev_descr)
  40. VALUES ('$date_sql', '$horaire_sql', '$_POST[orga]', '$_POST[lieu]', '$_POST[descr]')";
  41. $result = mysql_query($query)
  42. or die ("Couldn’t execute query." );
  43.    }
  44. ?>


 
Page d'entré des données:

Code :
  1. ......
  2. ......
  3.   echo "<input type='submit' value='Envoyer'>";
  4.   echo "</form>\n";      //Fin du formulaire
  5.   if ( isset($_POST[dateMO]) )   //Test si envoie de formulaire
  6.   {
  7.    verif();
  8.    echo "<form action='' method='POST'>
  9.    <input type='hidden' name='valide' value='test'>
  10.    <input type='submit' value='Valider'>
  11.    </form>";
  12.   }
  13.   if ( isset($_POST[valide]) )   //Test si validation
  14.   {
  15.   stock();
  16.   echo "<br> OK, Les informations sont stockées";
  17.   }
  18.   ?>


 
 

Reply

Marsh Posté le 26-07-2004 à 10:45:53    

function verif() {
         
     /*Formater l'horaire */
     $horaire = date("H:i", strtotime("$_POST[timeH]:$_POST[timeM]" ));
 
une fonction ne doit jamais utiliser des variables globale ! il faut que tu passe en paramètres ces infos à ta fonction.
 
comme je te l'ai déjà dit, les variables POST ne sont initialisée qu'une fois, après la validation du POST. ensuite elle disparaissent. tu dois les sauver en Session
     


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 26-07-2004 à 10:54:16    

JagStang a écrit :

function verif() {
         
     /*Formater l'horaire */
     $horaire = date("H:i", strtotime("$_POST[timeH]:$_POST[timeM]" ));
 
une fonction ne doit jamais utiliser des variables globale ! il faut que tu passe en paramètres ces infos à ta fonction.
 
comme je te l'ai déjà dit, les variables POST ne sont initialisée qu'une fois, après la validation du POST. ensuite elle disparaissent. tu dois les sauver en Session


 
Oki dok alors :D  
C'est que ca m'évitait justement de me les trimballer :whistle:  
 
Donc faut que je commence une session et puis les stocker dans $_SESSION puis j'les passe en paramêtre. Oki
 
J'ai lu que pour commencer une session on utilisait session_start(); mais apparement ca utilise des cookie ca, ou au cas où l'utilisateur ne le permet pas, passe la session ID dans l'URL... C'est pas ce qui a de mieux non ? Ou alors c'est ce que tout le monde utilise...

Reply

Marsh Posté le 26-07-2004 à 10:56:57    

session != cookies
 


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 26-07-2004 à 10:57:48    

deja action=\"".$_SERVER["PHP_SELF"]."\"
 
et apres tu doit mettre un name sur le submit pour le if(isset($_POST[""]))

Reply

Marsh Posté le 26-07-2004 à 11:11:14    

chacal_one333 a écrit :

deja action=\"".$_SERVER["PHP_SELF"]."\"
 
et apres tu doit mettre un name sur le submit pour le if(isset($_POST[""]))


 
C'est pour créer le bouton de validation ca il me semble vi ?

Reply

Marsh Posté le 26-07-2004 à 11:13:18    

non. s'il te plait, fais quelques tutos sur phpdebutant et reviens avec des questions précises.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 26-07-2004 à 11:13:18   

Reply

Marsh Posté le 26-07-2004 à 11:23:13    

JagStang a écrit :

non. s'il te plait, fais quelques tutos sur phpdebutant et reviens avec des questions précises.


 
C'est pas très sympa ca hum  :o . J'ai fait des tutos, j'ai lu des doc et ce n'est pas en allant relire quelques tutos sur phpdebutant que je vais revenir avec des questions ultra pointus et pertinente qui pourrons stimuler ton intellecte de programmateur niveau 46 (+ 4 en maîtrise php).
 
Enfin bon spa grave, j'vais bien me debrouiller.
 
Et puis j'veux bien que session != cookie mais quand je lis ca et bien pour un debutant ca porte a croire que les deux sont très liées non ?
 

Citation :

Comment fonctionne une session ?
Les session permettent tout du long de la visite d'un internaute sur le site, de conserver des informations de façon transparentes.  
 
Cela est sans ralentissement de performances car le client ne stocke sous forme de cookies que l'ID de session (généré aléatoirement), le serveur stockant sur disque le contenu des variables dans le répertoire défini par session.save_path.  
 
Les sessions sont activées manuellement par la commande session_start() ou automatiquement si session.auto_start est à 1 ou encore implicitement par la commande session_register().
 
Le serveur attribut à chaque visiteur un identifiant unique qui est soit envoyé au client sous forme de cookie (par défaut) soit passé de façon systématique dans l'URL.
 
[ haut ]

Reply

Marsh Posté le 26-07-2004 à 11:29:15    

http://php.benscom.com/manual/fr/ref.session.php
 

Citation :

Il peut être stocké soit dans un cookie, soit propagé dans l'URL.


 
ça va sans dire que la 2ème manière est plus propre. avec trans-sid =1 pour masquer l'id de session dans les liens.
 
pour répondre à ta question, les sessions sont le plus souvent utilisées sans cookies client.
 
 
 


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 26-07-2004 à 12:15:53    

:heink:  
 
l'id de la session est quasiment tout le temps stocké dans un cookie client...
 

Citation :

echo "<form name='form1' method='post' action='$_SERVER["PHP_SELF"]'>
    <input type='submit' name='Submit' value='Envoyer'>
</form>";


 
va te permettre d'affiche un bouton de validation qui envoie donc les _post au meme script php...
 
ensuite tu fais
 

Citation :

session_start;
$_SESSION['post']=_POST;


 
afin de pouvoir garder les post sur "toutes" tes pages...

Reply

Marsh Posté le 26-07-2004 à 12:57:59    

TriadPtale a écrit :

:heink:  
 
l'id de la session est quasiment tout le temps stocké dans un cookie client..3


 
tu as des chiffres là-dessus ? :D


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 26-07-2004 à 14:12:07    

des chiffres non, seulement php esseye d'abord propage l'id de la session via les cookie et ne le fais via l'url que si ça marche pas...
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed