ajout de données dans une table

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 : ajout de données dans une table

par ciocciu » 16 nov. 2008, 14:40

ok c'est résolu
merci pour votre aide
:lol:

par Sékiltoyai » 15 nov. 2008, 11:48

Super, tu n'affiches ni les erreurs E_NOTICE, ni les erreurs SQL. Je ne vois pas comment tu peux débugguer quoi que ce soit…
Alors pour SQL : http://www.phpfrance.com/forums/voir_sujet-19378.php
Pour les erreurs notice, dans le php.ini, il faut mettre error_reporting à E_ALL en php5 et à E_ALL | E_NOTICE en php4 (et redémarrer apache…)

par ciocciu » 15 nov. 2008, 10:15

salut
quand je rentre mes 2 dates (avec lieux et adversaires) elles apparaissent bien comme il faut grâce au echo de vérification
pourtant une seule part dans la bdd ...la 1ère
j'ai vérifié mon formulaire tout semble ok

je vais essayer d'insérer les etapes
merci
:P

par Patriboom » 15 nov. 2008, 06:58

Es-tu sûr de savoir quelle fonction query agit? Si ta vérification de date2 donne faux, c'est le second traitement qui entre en action. Est-ce que bien juste de vérifier la variable $_POST[date2], peut-être y a-t-il une majuscule, une faute de frappe dans ton formulaire au niveau de date2. Cela ferait donc en sorte que le traitement de la-dite section ne se ferait tout simplement pas.

Pour retracer au pas le déroulement du traitement, tu peux insérer des echo "Etape".$renduA++; et bien analyser la chose lors de la soumission d'un formulaire.

ajout de données dans une table

par ciocciu » 15 nov. 2008, 01:41

bonjour
j'ai un petit pb d'insertion de données dans une table
par l'intermédiaire d'un formulaire avec 2 demandes j'obtiens 2 ensemble de données
je veux les insérer dans ma table mais seul le 1er ensemble y parvient
voici le code
<?php
<form action="" method="post">
<fieldset>
<legend>dates de matchs</legend> <!-- Titre du fieldset -->
<div>
<br/>
Veuillez entrez une date : <input onclick="ds_sh(this);" name="date" readonly="readonly" style="cursor: text" /><br />
une heure et le lieu : <input type="text" name="lieu" style="cursor: text" /><br />
et un adversaire : <input type="text" name="adversaire" style="cursor: text" /><br />
<p>


Veuillez entrez une autre date : <input onclick="ds_sh(this);" name="date2" readonly="readonly" style="cursor: text" /><br />
une heure et le lieu : <input type="text" name="lieu2" style="cursor: text" /><br />
et un adversaire : <input type="text" name="adversaire2" style="cursor: text" /><br />

<input type="submit" value="envoyer" />
</div>
</form>
<?php
//on se connecte
mysql_connect("localhost", "lo", "lo");
mysql_select_db("lo");

$text.= 'Erreur : Vous devez remplir au moins une date <br />';	
// on teste les variables pour pas surcharger la table 
if (!empty($_POST[date]))  // si la variable 1ère date  existe
	{  // alors on teste la seconde date 
	if (!empty($_POST[date2]))  // si la variable 2 existent
      {

//On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
        $date = mysql_real_escape_string(htmlspecialchars($_POST[date]));
        $lieu = mysql_real_escape_string(htmlspecialchars($_POST[lieu]));
		$adversaire=mysql_real_escape_string(htmlspecialchars($_POST[adversaire]));
		 $date2 = mysql_real_escape_string(htmlspecialchars($_POST[date2]));
		$lieu2 = mysql_real_escape_string(htmlspecialchars($_POST[lieu2]));
		$adversaire2=mysql_real_escape_string(htmlspecialchars($_POST[adversaire2]));
		
		//on explose les jour mois année des dates
		$dateexpl =explode("-",$date);
		$date2expl=explode("-",$date2);
		
//on calcule les indices timestamp
$vraitstamp = mktime(0, 0, 0, $dateexpl[1], $dateexpl[2], $dateexpl[0]);
$vraitstamp2 = mktime(0, 0, 0, $date2expl[1], $date2expl[2], $date2expl[0]);
$jstamp = (int)($vraitstamp/86400);
$timestamp_date =$jstamp/100;
$jstamp2 = (int)($vraitstamp2/86400);
 $timestamp_date2 = $jstamp2/100;


//et  alors on envoie les 2 dates dans les 2 tables

mysql_query("INSERT INTO dates_matchs VALUES('', '$date', '$lieu', '$timestamp_date', '$adversaire', '', '', '') ");
mysql_query("INSERT INTO dates_matchs VALUES('', '$date2', '$lieu2', '$timestamp_date2', '$adversaire2', '', '', '')");



// on les affiche pour vérifier 
		echo "<strong> 1ère date : le $date à $lieu contre $adversaire </strong><br>" ;
		echo "<strong> deuxième date :le $date2 à  $lieu2  contre $adversaire2 </strong>" ;      
	  }
		else 	{ // Sinon,on s'occupe juste  de la 1ère date
//On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
        $date = mysql_real_escape_string(htmlspecialchars($_POST[date]));
        $lieu = mysql_real_escape_string(htmlspecialchars($_POST[lieu]));
		$adversaire=mysql_real_escape_string(htmlspecialchars($_POST[adversaire]));
		
		//on explose les jour mois année des dates
		$dateexpl =explode("-",$date);
		//on calcule les timestamp
		$vraitstamp = mktime(0, 0, 0, $dateexpl[1], $dateexpl[2], $dateexpl[0]);
		$jstamp = (int)($vraitstamp/86400);
		$timestamp_date =$jstamp/100;


		
	// et on l'envoie
	mysql_query("INSERT INTO dates_matchs VALUES('', '$date', '$lieu', '$timestamp_date', '$adversaire', '', '', '')");
	
	
	

	// on l'affiche		
		echo "<strong> 1ère date : le $date à $lieu contre $adversaire </strong><br>" ;
					
				}
	}	
//sinon bin aucun champ n'est rempli
	
else 	{
  echo '<p><strong>'.$text.'</strong></p>';
		}
		echo "<br>";
		echo "<br>";
		?>
donc seuls les $date', '$lieu', '$timestamp_date', '$adversaire
sont envoyés dans la table
et pas les $date2, '$lieu2', '$timestamp_date2', '$adversaire2

et je comprends pas pourquoi


merci de votre aide

:roll: