Php problème de variable

alexbigfoug -  
 alexbigfoug -
Bonjour tous le monde !!!

$date_nais_memb=echo'(addslashes($_POST['annee'])"-"addslashes($_POST['mois'])"-"addslashes($_POST['jour']))';

Bon voilà, je me doute que cela ne marchera pas ce que j'ai fais...

Alors que je vous explique un peu, en faite j'ai 3 variables (annee, mois, jour) qu'un utilisateur choisit dans des listes choix.

Je voudrais que mes trois variables se colle pour n'en former qu'une seul sous la forme XXXX-XX-XX
Ex: 1989-11-18 <---- $date_nais_memb

J'espères que mes explications n'étais pas trop farfelus...

Je vous remercie d'avance de votre aide^^

Bonne soirée

21 réponses

le père
 
Bonjour

Comme tu te compliques la vie...
$date_nais_memb=$_POST['annee']."-".$_POST['mois']."-".$_POST['jour'];
Le addslashes n'a rien à faire ici.(Un stripslashes pourrait s'expliquer mais passons...)
Le echo non plus : il ne sert qu'à afficher.
1
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
tes codes de listes déroulantes sont a reprendre:
fais les comme ça avec un seul echo à chaque fois

<select name="annee">
<?php
for($an=1900;$an < 2011;$an++)
{
echo '<option value="'.$an.'">'.$an.'</option>\n'; 
}
?>
</select>


tu avais fait une concaténation bizarre

il faut faire par exemple:
echo 'du texte meme avec des " doubles'.$variable.'encore du texte'.$autre_variable.'encore du text';

par contre si tu as dans le texte entre les' un guillemet simple ' un une paostrophe il faut l'échapper par \

exemple
echo 'il habite a l\'arbresle';
1
alexbigfoug
 
Houlà!!! oui j'avais fait des bêtise...

Bon comme tu vas pouvoir le voir je ne uis pas très ordonné dans mon code...

J'ai bien mis ce que tu m'as dis mais j'ai toujours une erreur...

Mais je penses que l'erreur vient de ma requête...

$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "utilisateur", "'.addslashes($_POST['nom_memb']).'", "'.addslashes($_POST['prenom_memb']).'", "'.addslashes($_POST['adr_memb']).'", "'.addslashes($_POST['ville_memb']).'", "'.addslashes($_POST['CP_memb']).'", "'.$date_nais_membre.'", NOW())';

Quand j'envoie, Je recois bien "tout" dans ma base de donné excepter adr_memb et ma date_nais_memb

Bizarre pour l'adresse membres???

Entout cas je te remercie du coup de main^^
0
alexbigfoug
 
Heu rectification !!! L'adresse membre fonctionne... (j'avais le name de ma textbox qui étais écrit "adre_memb")

Oups^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alexbigfoug
 
Up !!!!! please
0
alexbigfoug
 
up !
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
il faut que avant la ligne: sql=... tu ait la ligne qui charge la variable $date_nais_menbre



$date_nais_memb=$_POST['annee']."-".$_POST['mois']."-".$_POST['jour']; 
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "utilisateur", "'.addslashes($_POST['nom_memb']).'", "'.addslashes($_POST['prenom_memb']).'", "'.addslashes($_POST['adr_memb']).'", "'.addslashes($_POST['ville_memb']).'", "'.addslashes($_POST['CP_memb']).'", "'.$date_nais_membre.'", NOW())'; 


et est ce que tes listes deroulantes ont bien pour name annee mois jour ?

et as tu bien mis une value= dans <option >
0
alexbigfoug
 
Oui, tous ça, c'est ok !!!

le message d'erreur est celui-ci

Notice: Undefined index: annee in C:\wamp\www\Site_internet\inscription.php on line 2
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Undefined index: annee

veut justement dire que tu n'as pas dans ton formualire de champ (texte ou liste déroulante) qui se nomme annee

attention avec exactement la même casse et la même orthographe

et surtout pas d'accent !!
0
alexbigfoug
 
<select name="annee" value="annee">
<?php
for($an=1900;$an < 2011;$an++)
{
echo'<option>'; echo $an; echo'<br />'; echo '</option>';
}
?>

Bah si pourtant...
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
<select name="annee" value="annee">
<?php
for($an=1900;$an < 2011;$an++)
{
echo'<option>'; echo $an; echo'<br />'; echo '</option>';
}
?>


value= ce n'est pas dans le select qu'il faut le mettre mais dans <option !

<select name="annee">
<?php
for($an=1900;$an < 2011;$an++)
{
echo'<option value="$an">$an</option>\n'; // regardes d'un peu plus près la concaténation en php et pourquoi le <br >? il faut \n pour passer a la ligne dans ce cas
}
?>
</select>


0
alexbigfoug
 
J'ai bien fait comme tu me l'as demandé, mais toujours rien...

Je n'est plus l'erreur en haut de page

Mais quand je reçois les données dans la base, la date est 0000-00-00
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
un peu d'attention arrangera bien les choses !

tu charges la variable $date_nais_memb=$_POST...

et ensuite tu ecris dans ta base avec la variable :
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "utilisateur", "'.addslashes($_POST['nom_memb']).'", "'.addslashes($_POST['prenom_memb']).'", "'.addslashes($_POST['adr_memb']).'", "'.addslashes($_POST['ville_memb']).'", "'.addslashes($_POST['CP_memb']).'", "'.$date_nais_membre.'", NOW())';
0
alexbigfoug
 
C'est pourtant ce que j'ai fait...

$date_nais_memb=$_POST['annee']."-".$_POST['mois']."-".$_POST['jour'];

if ($data[0] == 0)
{
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "utilisateur", "'.addslashes($_POST['nom_memb']).'", "'.addslashes($_POST['prenom_memb']).'", "'.addslashes($_POST['adr_memb']).'", "'.addslashes($_POST['ville_memb']).'", "'.addslashes($_POST['CP_memb']).'", "'.$date_nais_membre.'", NOW())';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: inscription_ok.php');
exit();
}
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
ha bon pourtant pour moi:

$date_nais_memb au niveau chargement variable

est differend de:

$date_nais_membre au niveau sql=...
0
alexbigfoug
 
arf oui je n'avais pas fait attention...

Par contre j'ai fait le changement, mais cela ne fonctionne toujours pas...
0
alexbigfoug
 
J'ai changé le format sur mysql et je viens de voir que je n'envoyais pas de valeur avec mes variable...
Je récupère ça : $an-$mois-$jour au lieu de ça auparavant 0000-00-00
0
alexbigfoug
 
Up !!
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
J'ai changé le format sur mysql

quel faomat as tu mis ? DATE ?

et je viens de voir que je n'envoyais pas de valeur avec mes variable...
?????

donnes le code que tu as actuellement pour cahrger la variable $date_nais_menbre

et sql=

sans cela comment veux tu que l'on trouve
0
alexbigfoug
 
J'ai changé DATE par TEXT pour ne pas avoir de problème...

Là il y a tout

Image 1: formulaire XHTML, liste de choix pour une date de naissance (annee, mois, jour)

https://imageshack.com/

Image 2: envoie des valeurs dans la base de donnée MySql, l' année, le mois et le jour ne forme plus qu'une variable $date_nais_memb.

https://imageshack.com/

Image 3: résultat dans la base de donnée, les variables sont restés vide...elles n'ont pas pris de valeurs...

https://imageshack.com/
0