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

PHP & Base de données Discussion :

controles sur modification inscription


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 133
    Points : 63
    Points
    63
    Par défaut controles sur modification inscription
    Bonjour à tous

    voilà plusieurs jours que je galère aussi je me décide à vous demander de l'aide.
    J'ai un formulaire de modification des inscriptions à une compétition.
    Je voudrais faire plusieurs vérifications des entrées mais je bute sur la vérification des heures.

    J'ai défini des variables qui sont :
    • heure1=09h,
    • heure2=09h30
    • heure3=10h,
    • heure4=10h30,
    • heure5=14h,
    • heure6=16h



    Les quatres premières heures sont destinées aux disciplines vitedt, 3x7edt, 3x10edt, heure5 et heure6 à c10edt et p10edt.
    les contrôles actuels fonctionnent nombres de postes occupés, n° licence ...
    Ce que je voudrais faire, c'est envoyer un message heure invalide,si le formulaire envoie une heure différente de heure1 à heure6

    exemples si le formulaire a pour valeurs
    • 10h pour la dis c10edt ===>heure non valide
    • 12h pour la dis vitedt ===>heure non valide


    voilà une partie du code
    Code php : 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
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    <?php
    	$tl= mysql_num_rows(mysql_query("SELECT licence FROM licences WHERE licence = '".$_POST['nlicence']."'"));
    		   //test si tireur licencie FFTIR
     
    if($tl == 0)
    {  
      //echo '<a1><b1>trouve : '.$tl.'</a1></b1><br />'; 
    echo '<a1><b1>Votre licence n\'est pas validée par la FFT</a1></b1><br />'; 				
    			//On modifie les informations de l'utilisateur avec les nouvelles valeurs
     
    ?>
     
    		  <script type="text/javascript">
        <!--
          window.setTimeout
    	  ('document.location.href="admin_inscritsedt.php"',5000);
     
        </script> 
    		<h2>
     <?php	 
     
    				exit();	
     
    			 }		 
     
    			  if ($_GET['dis']="c10edt" || $_GET['dis']="p10edt")
    				{	
    						if($_GET['heurec'] = "'.$heure5.'" || $_GET['heurec'] = "'.$heure6.'" || $_GET['heurec'] = "'.$heure7.'")
    				$test1 = mysql_num_rows(mysql_query("SELECT * FROM fusionedt where heurec='".$_POST['heurec']."' "));
    				echo '<a1><b1> 1	:nbinscrits : '.$test1.' en  '.$dis.' : '.$heurec.'</a1></b1><br />';  
    				}
    			   else
    				if($_GET['dis']<>"c10edt" || $_GET['dis']<>"p10edt")  
    				  { 
    				  if($_GET['heurec'] = $heure1 || $_GET['heurec'] = $heure2 || $_GET['heurec'] = $heure3 || $_GET['heurec'] = $heure4 || $_GET['heurec'] = $heure5 || $_GET['heurec'] = $heure6)
    				  $test1 = mysql_num_rows(mysql_query("SELECT * FROM fusionedt where (jourc='".$_POST['jourc']."' && heurec='".$_POST['heurec']."' && dis='".$_POST['dis']."')"));  
     
                   echo '<a1><b1> 2: nbinscrits : '.$test1.' : '.$dis.' : '.$heurec.'</a1></b1>'; 
    			   	echo '<a1><b1> max : '.$nbp.'</a1></b1>';
    				 }
    			   if($test1 < $nbp)
     
    				{  	 
     
     
    	mysql_query('update fusionedt set jourc="'.$jourc.'", heurec="'.$heurec.'", nom="'.$nom.'", prenom="'.$prenom.'", club="'.$club.'", nlicence="'.$nlicence.'", cat="'.$cat.'", dis="'.$dis.'"   where id="'.$id.'" ') or die(mysql_error());
     
     
      ?>
    <br />Les infos du membre ont été modifiées avec succès !
    <br />
    <br /> 
     
    Redirection...
     
    </h2>
     
    		  <script type="text/javascript">
     
          window.setTimeout
    	  ('document.location.href="admin_inscritsedt.php"',10000);
     
        </script> 
    		<?php	
     
     
    			exit(); 
    			}	
    			  else 
    			    if($test1 >= $nbp)
    					{ 
    					 $form = true; 
    					// echo '<br /><b1>Il y a : ...  '.$test1.' ... inscrits</b1><br />';
     
    						echo  '<a1><b1><br />série complète...... Choisissez en une autre</b1></a1>';	
     
    						?>
    						  <script type="text/javascript">
     
          window.setTimeout
    	  ('document.location.href="admin_inscritsedt.php"',5000);
     
        </script> 
    	<?php	
     
    				}		
    					else
    						{
    							//Sinon on dit quil y a eu une erreur
    							$form = true;
    							$message = ' heure invalide.';
    						}
    			 	}	
     
     
    		else
     
    	 	if(isset($_POST['id'],$_POST['jourc'],$_POST['heurec'],$_POST['nom'],$_POST['prenom'],$_POST['club'],$_POST['nlicence'],$_POST['cat'],$_POST['dis']))
    		{
     
     
    				$id = htmlentities($_POST['id']);
    				$nlicence = mysql_real_escape_string($_POST['nlicence']); 
    				$dis = mysql_real_escape_string($_POST['dis']);
    				$jourc = mysql_real_escape_string($_POST['jourc']);	
    				$heurec = mysql_real_escape_string($_POST['heurec']);	
    				$club = mysql_real_escape_string($_POST['club']);	
    				$cat = mysql_real_escape_string($_POST['cat']);
    				$nom = mysql_real_escape_string($_POST['nom']);
    				$prenom = mysql_real_escape_string($_POST['prenom']);
    				//$pseudo = mysql_real_escape_string($_POST['pseudo']);				
    		}
     
    	  else
    		{
    		$dnn = mysql_fetch_array(mysql_query("select * from fusionedt where id=$id"));
     
    			$id = htmlentities($dnn['id']);
    			$jourc = htmlentities($dnn['jourc']);
    			$heurec = htmlentities($dnn['heurec']);
    			$nom = htmlentities($dnn['nom']);
    			$prenom = htmlentities($dnn['prenom']);
    			$club = htmlentities($dnn['club']);
    			$nlicence = htmlentities($dnn['nlicence']);
    			$cat = htmlentities($dnn['cat']);
    			$dis = htmlentities($dnn['dis']);
    			//$pseudo = htmlentities($dnn['pseudo']);
    		 }	 
     
    		//On affiche le formulaire
    ?>
     
    <form action="adm_inscritsedt0.php?id=<?php echo $dnn['id'];?>" method="post">
    Vous pouvez modifier les informations de <?php echo "$nom"," ","$prenom";?><br /><br />
    Id du membre:<input type="text" disabled="disabled" name="id" value="<?php echo $id; ?>" /><br /><br />
    Jour de tir:<input type="text" name="jourc" value="<?php echo $jourc; ?>" /><br /><br /> 
    Heure de tir:<input type="text" name="heurec" value="<?php echo $heurec; ?>" /><br /><br /> 
    Nom d'utilisateur:<input type="text" name="nom" value="<?php echo $nom; ?>" /><br /><br />
    Prenom:<input type="text" name="prenom" value="<?php echo $prenom; ?>" /><br /><br />
    Club:<input type="text" name="club" value="<?php echo $club; ?>" /><br /><br />
    Nlicence:<input type="text" name="nlicence" value="<?php echo $nlicence; ?>" /><br /><br />
    Categorie :<input type="text" name="cat" value="<?php echo $cat; ?>" /><br /><br />
    Discipline:<input type="text" name="dis" value="<?php echo $dis; ?>" /><br /><br />
     
    	<br /><h2>
    merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 133
    Points : 63
    Points
    63
    Par défaut Help
    bonjour
    Je suis toujours paumé dans mes tests.
    A l'aide !!!!!
    Me dire si le message n'est pas clair.

    Merci.

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

    non, le message n'est pas clair.

    Mais ce qui est pire (et certainement la raison pour laquelle tu n'as pas de réponse) : c'est le chaos de ton code !

    Le manque total d'INDENTATION empêche une lecture facile du code, et donc la recherche d'erreur ou quoi que ce soit.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Le message n'est pas clair, mais le pire est le code. Comment veux-tu t'y retrouver dans un tel chantier ? Tu ne trouveras personne pour te répondre à moins de tomber sur quelqu'un de très patient et qui a beaucoup de temps devant lui... Et pourquoi toutes ces redirections javascript dans le code php ?

    De toutes façon les requêtes sont à revoir puisque tu utilises mysql alors que cette extension est supprimée en php7. C'est un peu ballot de développer un script voué à une obsolescence à court terme : d'ici trois ans la dernière version php5.6 qui supporte mysql deviendra obsolète. Mais bon cela fait quand même une dizaine d'année que la doc php indique de ne plus développer des sites avec l'extension mysql... Utilises PDO pour tes requêtes, c'est le standard actuel (plus souple et plus puissant que mysqli).

    Donc bon le mieux est de tout refaire, de toutes façons dans l'état actuel le code est déjà quasiment ingérable. Fais un peu plus de tutos avant de coder pour t'éviter de telles mésaventures à l'avenir. Sinon avec le nez dans le guidon et en partant sur de mauvaises bases tu vas vite te retrouver dans un mur, ou au mieux avoir un code péniblement fonctionnel mais avec un potentiel évolutif null et une maintenance impossible.

    EDIT : j'ai répondu avant de voir la réponse de jreaux62. Deux réponses quasi identiques sans concertation préalable, c'est un signe

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 133
    Points : 63
    Points
    63
    Par défaut
    bonsoir
    merci pour vos réponses.
    Je suis chez free et il n'y a pas PDO.
    Je débute en php et j'essaie d'adapter un code récupéré.

    Pouvez-vous m'aider à faire le test sur le contrôle des heures:

    si la discipline est c10edt ou p10edt les heures de compétition sont heure5 ou heure6
    sinon pour les autres disciplines les heures sont heure1........à heure4.

    Merci.
    PS:
    Que me conseillez-vous de prendre chez free? (mysqli ??)

  6. #6
    Invité
    Invité(e)
    Par défaut
    1/ indente ton code si tu veux qu'on y jette un oeil.

    2/ Oui, mysqli, si tu veux perdre ton temps...
    Sinon, PDO, mais chez un "vrai" hébergeur.
    Dernière modification par Invité ; 21/08/2016 à 11h35.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par ctsblv Voir le message
    Je suis chez free et il n'y a pas PDO.
    Taratata...

    La programmation est un course de fond, pas un sprint. Si tu pense l'inverse tu ne tiendras pas la distance. Déjà tu reprends un code sans savoir s'il est bon ou obsolète et ensuite tu dis qu'il n'y a pas pdo chez free alors que le buzz des derniers mois est justement que free propose maintenant php 5.6 et ça m'étonnerait beaucoup que cette version ne supporte pas pdo, même chez free.

    Soit tu veux coder comme un bourrin sans avenir et tu peux utiliser mysqli pour faciliter la transition avec mysql, soit tu t'intéresse à la programmation web dans un contexte plus large que le développement de ces quelques scripts et dans ce cas passes directement à PDO, tu gagneras du temps. J'en sais quelque chose pour être passé par mysqli avant de gouter à PDO (que de temps perdu...) et puis PDO est le standard actuel, tous les exemples sont aujourd'hui donnés avec cette extension et ça fait aussi plus de doc disponible.

    A toi de voir, mais même si c'est un passe temps occasionnel, il faut que tu comprenne ce que tu fais et que tu contrôle chaque étape, c'est à dire afficher l'état de tes variables à différents endroits du script pour voir si elles ont la valeur attendue avec print_r (ou var_dump) qui permettent d'afficher aussi bien des variables que des tableaux (alors que "echo" ne permet d'afficher que des variables). Cela bien sûr, après avoir pris le temps d'indenter ton code comme l'a dit plusieurs fois jreaux62 car c'est le nerf de la guerre pour avoir un vision globale lisible.

    Donc dans l'ordre :
    1/ s'informer, suivre des tutos, demander ou lire des avis/conseils avant de coder.
    2/ modéliser l'algorithme (définir les principales étapes du script).
    3/ indentation du code.
    4/ faire afficher les variables à différents endroits du code pour contrôler leur valeur durant la phase de debugage.

    Si ces étapes sont faites correctement tu pourras isoler un éventuel problème ce qui te permettra de poser la bonne question et d'avoir une réponse rapide

    Enfin bon tu fais comme tu veux, mais si tu veux avancer trop vite sans prendre le temps de passer par la case départ qui demande du temps, de l'organisation, et surtout pas de précipitation - ne pas confondre avec motivation - faudra pas t'étonner de ramer grave

    Et puis même un codeur expérimenté n'aime pas trop reprendre le code d'un autre car il sait qu'il passera plus de temps pour le comprendre qu'en lisant ses propres lignes de code. Donc là tu enchaines une suite de problèmes. Débutant, codage en vrac, manque de rigueur et de contrôle, ça peut s'arranger, par contre c'est incompatible avec l'impatience (faut prendre du temps et du recul par rapport à ce que tu fais).

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 133
    Points : 63
    Points
    63
    Par défaut
    Bonjour
    Pour PDO chez free je confirme PDO mysql n'est pas activé.(info)

    voilà le message d'un forum :
    Oublies free.fr, PDO, sur leur installation, ne gère que SQLite (2 + 3), pas MySQL.

    Inutile de perdre ton temps, vas ailleurs, tu trouveras surement bien mieux et plus récent.

    -
    Edité par julp 18 janvier 2014 à 18:59:07
    Je vais essayer d'indenter mon code.
    Merci pour votre patience et vos conseils.

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Je dis ces derniers mois et tu me donnes une info de janvier 2014...

    En même temps y'a pleins de résultats si tu rentres free php5.6 dans un moteur de recherche.

    Après PDO c'est pas obligé mais tellement mieux surtout si tu veux poursuivre dans le développement web.

    Mysqli n'est pas mal au niveau des fonctionnalités mais lourde avec des noms à rallonge et moins pratique pour les requêtes préparées qui sont devenues le standard pour protéger efficacement les requêtes utilisant des données utilisateur. On l'utilise surtout pour mettre à jour d'anciens sites codés avec mysql mais la quasi totalité des nouveaux sites est codé avec pdo.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 133
    Points : 63
    Points
    63
    Par défaut
    bonjour ABCIWEB
    j'ai fait un info sur php free,le pdo mysql n'est pas activé.
    la version php5.6 est toujours en test.
    Désolé.
    Merci de suivre cette discussion.
    Je continue mes tests.

Discussions similaires

  1. Evénement sur modif dans un controle d'un formulaire
    Par possible924 dans le forum IHM
    Réponses: 2
    Dernier message: 15/06/2010, 12h43
  2. Réponses: 3
    Dernier message: 22/04/2006, 14h46
  3. [JSP/WebSphere] Boucle de controle sur un FTP
    Par benben13 dans le forum Websphere
    Réponses: 10
    Dernier message: 30/08/2005, 16h18
  4. Sélection d'un enregistrement de la table sur modif TDBEdit
    Par lawale125 dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/09/2004, 17h54
  5. affichage de controles sur un splash screen
    Par shrek dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/11/2003, 19h59

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