Page 1 sur 1

Insert dans une base sql avec un formulaire php

Posté : 16 déc. 2014, 17:06
par flo4020
Bonjour,

Je souhaite insérer des variables dans une base sql mais rien ne s'inscrit, l'id s'incrémente mais les autres cases sont vides (à part la date...)

Voici mon fichier Preview.php :
<?php

error_reporting(0);
$_SESSION['nom'] = $_POST['nom'];
$_SESSION['adresse'] = $_POST['adresse'];
$_SESSION['cp'] = $_POST['cp'];
$_SESSION['localite'] = $_POST['localite'];
$_SESSION['no'] = $_POST['no'];
$_SESSION['tel'] = $_POST['tel'];
$_SESSION['mail'] = $_POST['mail'];
$_SESSION['inscription'] = $_POST['inscription'];
$_SESSION['choix1'] = $_POST['choix1'];
$_SESSION['choix2'] = $_POST['choix2'];
//$_SESSION['choix3'] = $_POST['choix3'];
$_SESSION['radio1'] = $_POST['radio1'];
//$_SESSION['radio2'] = $_POST['radio2'];
$_SESSION['radio3'] = $_POST['radio3'];

//Récupérer variable pour prévisualiser :



if($_POST["post"]=="Previsualiser"){

    $verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';  
	$nom=preg_replace('#(<|>)#', '-', $_SESSION['nom']);  
    $nom=str_replace('"', "'",$nom);  
    $nom=str_replace('&', 'et',$nom);
    $adresse=preg_replace('#(<|>)#', '-', $_SESSION['adresse']);  
    $adresse=str_replace('"', "'",$adresse);  
    $adresse=str_replace('&', 'et',$adresse);
	$cp=preg_replace('#(<|>)#', '-', $_SESSION['cp']);  
    $cp=str_replace('"', "'",$cp);  
    $cp=str_replace('&', 'et',$cp);
    $localite=preg_replace('#(<|>)#', '-', $_SESSION['localite']);  
    $localite=str_replace('"', "'",$localite);  
    $localite=str_replace('&', 'et',$localite);
    $no=preg_replace('#(<|>)#', '-', $_SESSION['no']);  
    $no=str_replace('"', "'",$no);  
    $no=str_replace('&', 'et',$no); 
    $tel=preg_replace('#(<|>)#', '-', $_SESSION['tel']);  
    $tel=str_replace('"', "'",$tel);  
    $tel=str_replace('&', 'et',$tel);
    $mail=preg_replace('#(<|>)#', '-', $_SESSION['mail']);  
    $mail=str_replace('"', "'",$mail);  
    $mail=str_replace('&', 'et',$mail);
    $mail=stripslashes(htmlentities($_SESSION['mail']));
	$nom=stripslashes(htmlspecialchars($nom));
    $adresse=stripslashes(htmlspecialchars($adresse));
    $cp=stripslashes(htmlspecialchars($cp)); 
    $localite=stripslashes(htmlspecialchars($localite));
    $no=stripslashes(htmlspecialchars($no)); 
	$tel=stripslashes(htmlspecialchars($tel)); 
    $envoi=htmlentities($_SESSION['envoi']);  
    $previsualiser=htmlentities($_SESSION['previsualiser']);  
	$nom=trim($nom);
    $mail=trim($mail);  
    $adresse=trim($adresse);
    $cp=trim($cp); 
    $localite=trim($localite);  	
    $tel=trim($tel); 
    $no=trim($no); 


	echo'<h2>Vos coordonnées personnelles :<br/></h2>
	     <h3>Dr '.$_SESSION['nom'].'<br/>
         '.$_SESSION['adresse'].'&nbsp;&nbsp;&nbsp;'.$_SESSION['cp'].'&nbsp;'.$_SESSION['localite'].'<br/>
	     Numéro d\'ordre : '.$_SESSION['no'].'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong>Téléphone :'.$_SESSION['tel'].'<br/>
         Email : '.$_SESSION['mail'].'<br/></h3>';
		 
echo '<br />';
	if ($_SESSION['inscription']=="Oui"){
		$somme5=22;
    echo '<h2>Vous avez choisis de vous inscrire à la Liègeoise et payez donc 22€ de cotisation</h3><br/>';}
	else {
		$somme5=0;
	echo '<h2>Vous vous êtes déjà inscrits à la Liègeoise</h3>';}
echo '<h2>Vous avez choisi les activités suivantes :</h2>';	
echo '<h3><u>Jeudi 5 Juin 2014 :</u><i>"1.Bien vacciner? Bien protéger? Sans danger?" par le Professeur Laurent Gillet de la Faculté de Médecine Vétérinaire de Liège .</i></h3>';
	if ($_POST['choix1']=="Cf seule"){
		$somme1=20;
		echo '<h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Je participe uniquement à la conférence, j\'ajoute 20€ à ma somme totale</h3><br/>';}
		elseif ($_POST['choix1']=="Cf + R"){
		$somme1=20;
		echo '<h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Je participe uniquement à la conférence, j\'ajoute 20€ à ma somme totale)</h3><br/>';}
		else {
		echo '<h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Je ne participe pas à cette conférence</h3><br/>';
		$somme1=0;}
		
echo '<h3><u>Jeudi 11 décembre 2014 : </u><i>"Les anesthésies qui font peur..." par le Dr Dr Charlotte Sandersen de la Faculté Vétérinaire de Liège.</i></h3>';
	if ($_POST['choix2']=="Cf seule"){
		$somme2=20;
		echo '<h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Je participe uniquement à la conférence, j\'ajoute 20€ à ma somme totale</h3><br/>';}
		elseif ($_POST['choix2']=="Cf + R"){
		$somme2=20;
		echo '<h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Je participe à la conférence et au repas, j\'ajoute 20€ à ma somme totale </h3><br/>';}
		else {
		echo '<h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Je ne participe pas à cette conférence</h3><br/>';
		$somme2=0;}
		
echo '<h3><u>Samedi 14 Juin 2014 :</u><i>"L\'œil à portée de main :  Ateliers pratiques en ophtalmologie vétérinaire, examen clinique et chirurgies courantes."  par le Dr Anne-Marie Verbruggen</i></h3> ';
	if ($_POST['radio1']=="Oui"){
		$somme3=0;
		echo '<h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Je m\'inscris à la journée conférence via le site formavet si possible ou je contacte le webmaster.</h3><br/>';}
		else {
		echo '<h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Je ne participe pas à cette conférence</h3><br/>';
		$somme3=0;}

		
	if ($_POST['radio3']=="Oui"){
    echo '<h3>Je m\'inscris aux tables rondes, je serai recontacté(e) à ce sujet</h3><br/>';}
	else {
	echo '<h3>Je ne m\'inscris pas aux tables rondes</h3>';}
	
$sommetotale=$somme1+$somme2+$somme3+$somme4+$somme5;

  

	echo '<h3><font color=#009>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Je verse donc '.$sommetotale.'€ sur le compte de la Liégeoise BE90143060598732.</font></h3>';}

echo'
<form name="inscriptions" method="post" action="Validation.php" enctype="multipart/form-data"> 
<input type="submit" name="valider" value="Valider" />
</form>'; 
$_SESSION['sommetotale'] = $sommetotale;
echo $sql;
?>
Lui me donne bien toutes les variables mais au moment de valider pour insérer, c'est vide dans ma bdd...

Fichier Validation.php
<?php
 
 
$nom=$_SESSION['nom'];
$adresse=$_SESSION['adresse'];
$cp=$_SESSION['cp'];
$localite=$_SESSION['localite'];
$no=$_SESSION['no'];
$tel=$_SESSION['tel'];
$mail=$_SESSION['mail'];
$inscription=$_SESSION['inscription'];
$choix1=$_SESSION['choix1'];
$choix2=$_SESSION['choix2'];
//$choix3=$_SESSION['choix3'];
$radio1=$_SESSION['radio1'];
//$radio2=$_SESSION['radio2'];
$radio3=$_SESSION['radio3'];
$sommetotale=$_SESSION['sommetotale'];
 
include("fonctions.php");
 
if (isset($_POST['valider'])){
     
     
 date() de PHP
$today=date("y,m,d");
 
connectlaliegeoconf();
 
mysql_query("SET NAMES UTF8");
                     
$sql = 'INSERT INTO Inscriptions VALUES("","'.$nom.'","'.$adresse.'","'.$cp.'","'.$localite.'","'.$no.'","'.$tel.'","'.$mail.'","'.$inscription.'","'.$choix1.'","'.$choix2.'","'.$radio1.'","'.$radio2.'","'.$radio3.'","'.$today.'","'.$sommetotale.'")';
                     
 
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
                     
 
mysql_close();
 
echo '<h3>Votre inscription a bien été prise en compte</h3><p>Vous allez recevoir un mail récapitulatif, si ce n\'est pas le cas, n\'hésitez pas à laisser un message dans la rubrique contact.</p><p><a href="index.php">Retour à la page d\'accueil</a></p>';
$objet='Inscriptions';
echo $sql;
$headers='De: Dr '.$nom."\r\n".'Adresse : '.$adresse."\r\n".'CP : '.$cp."\r\n".'Localite : '.$localite."\r\n".'Numéro d\'ordre : '.$no."\r\n".'Tel : '.$tel."\r\n".'Email : '.$mail."\r\n".'Inscription : '.$inscription."\r\n".'Soirée Conférence 1 : '.$choix1."\r\n".'Soirée Conférence 2 : '.$choix2."\r\n".$choix3."\r\n".'Journée Conférence 1: '.$radio1."\r\n".'Table de discussion : '.$radio3."\r\n".'Somme à payer : '.$sommetotale."\r\n"; 
mail($destinataire,$objet,$headers);
?>
<?php
ini_set('SMTP','smtp.live.com');
ini_set('sendmail_from', '$mail');
//Ecrivez votre adresse e-mail entre les guillemets 
$destinataires=$mail; 
$objets='Inscriptions aux conférences de la Liègeoise ASBL';
$header='Dr '.$nom."\r\n".'Adresse : '.$adresse.' '.$cp.' '.$localite."\r\n".'Numéro d\'ordre : '.$no."\r\n".'Tel : '.$tel."\r\n".'Email : '.$mail."\r\n\r\n".'Vous avez choisis de vous inscrire aux conférences suivantes :'."\r\n\r\n".'Soirée Conférence 1 : '.$choix1."\r\n".'Soirée Conférence 2 : '.$choix2."\r\n".'Journée Conférence 1: '.$radio1."\r\n".'Table de discussion : '.$radio3."\r\n".'Somme à payer : '.$sommetotale.'€ sur le compte de la Liégeoise '; 
mail($destinataires,$objets,$header);
}
?>
MErci à vous car je planche dessus depuis qq semaines, mais je ne travaille pas du tout dans ce domaine donc j'ai du mal à trouver du temps pour régler ce pb.

bonne journée!

Re: Insert dans une base sql avec un formulaire php

Posté : 16 déc. 2014, 19:29
par tesmet
Fichier Validation.php
$sql = 'INSERT INTO Inscriptions VALUES("","'.$nom.'","'.$adresse.'","'.$cp.'","'.$localite.'","'.$no.'","'.$tel.'","'.$mail.'","'.$inscription.'","'.$choix1.'","'.$choix2.'","'.$radio1.'","'.$radio2.'","'.$radio3.'","'.$today.'","'.$sommetotale.'")';
un var_dump($sql); après cette ligne pourrait aider à comprendre. L'absence des champs pourrait être la source du problème. dans le style
$sql = 'INSERT INTO Inscriptions (id, nom, adresse,...) VALUES ("","'.$nom.'","'.$adresse.'",...)';

Re: Insert dans une base sql avec un formulaire php

Posté : 18 déc. 2014, 17:51
par flo4020
Voilà ce que me met un var_dump($sql) :

string(88) "INSERT INTO Inscriptions VALUES("","","","","","","","","","","","","","","14,12,18","")"

MErci àvous

Re: Insert dans une base sql avec un formulaire php

Posté : 18 déc. 2014, 20:13
par tesmet
Salut

J'imagine qu'un var_dump($_SESSION); indiquera que $_SESSION est vide. Il faut démarrer la session avec start_session(); au tout début de chacun des scripts utilisant $_SESSION.

Bonne chance

Re: Insert dans une base sql avec un formulaire php

Posté : 19 déc. 2014, 17:34
par flo4020
J'ai un session_start(); dans les 2 fichiers au début du php....

Re: Insert dans une base sql avec un formulaire php

Posté : 19 déc. 2014, 19:35
par tesmet
Bonjour

Je ne vois pas de session_start() dans les scripts postés ici. Si var_dump($_SESSION); au même endroit que le var_dump($sql); retourne un $_SESSION vide, alors tu as un problème de session. Tu peux te passer de session en poursuivant en POST avec tes champs en type hidden à la fin de "Preview.php"
<form name="inscriptions" method="post" action="Validation.php"> 
  <input type="submit" name="valider" value="Valider" />
  
  <input type="hidden" name="nom" value="<?php echo $nom; ?>" />
  <input type="hidden" name="adresse" value="<?php echo $adresse; ?>" />
  <input type="hidden" name="cp" value="<?php echo $cp; ?>" />
  <input type="hidden" name="localite" value="<?php echo $localite; ?>" />
  <input type="hidden" name="no" value="<?php echo $no; ?>" />
  <!-- ainsi que les autres champs à la suite -->
  
  <input type="hidden" name="sommetotale" value="<?php echo $sommetotale; ?>" />
</form>';
Et dans "Validation.php" tu peux récupérer tes informations avec $_POST et non plus avec $_SESSION.