Recuperer des informations pour un formulaire

Résolu/Fermé
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 - 14 juin 2010 à 18:38
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 - 22 juin 2010 à 00:10
Bonjour à tous ,
ET oui c'est encore moi ... encore avec une question bizarre pour vous faire ! réfléchir un peu =)


ALORS !

j'ai fais un formulaire ou je pose certaine questions aux membre de mon site. comment ca quelles questions ? ca ca me regarde ^^ non je déconne.

enfin bref dans ce formulaire j'aimerais récupérer le nom du membre pour qu'ils n'aient pas à le réécrire. mais leurs pseudo s'enregistre comme un date "14/06/210 18:24"

alors sachant que leurs pseudo s'affiche bien dans le site j'aimerais savoir pourquoi ....

je vous donne vite fait le formulaire et le traitement de la page :


Formulaire.php :

<?php
("security.php"); 
?>
<html>
<head>
</head>
<body>
<?php
$nb_mess=mysql_query("SELECT * FROM ".PREFIXE."espace membre WHERE dest='$pseudom' AND open='0'") or die (mysql_error());
	$nb_mess_i=mysql_num_rows($nb_mess);
?>
<form method="post" action="traitement.php">
 
<p class="titre"><b><u>Coordonnées</u> :</b></p>
 
  //j'ai un peu tout racourci


  <label><b><u>Nom de la ville</u> :</b></label><br />
    <input type="text" name="nomvil1" size="30" /><br />

  <label><b><u>coordonnées</u> :</b></label><br />
  <label>X : </label><input type="text" name="x1" size="3" /><label>Y : </label><input type="text" name="y1" size="3" /><br />
 
 <input name="membre" type="hidden" size="30" value="<?php echo $pseudom ?>"><br />

<p id="buttons">
  <input type="submit" value="Envoyer" />
</p>
 
</form>
</body>
</html>






et le traitement.php



<?php

define('DB_SERVER', '*****'); // serveur mysql
define('DB_SERVER_USERNAME', '*****'); // nom d'utilisateur
define('DB_SERVER_PASSWORD', '*****'); // mot de passe
define('DB_DATABASE', '*****'); // nom de la base
 
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, 
DB_SERVER_PASSWORD) 
or die('Impossible de se connecter : ' . mysql_error());

mysql_select_db(DB_DATABASE, $connect);
 
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre ville a bien été enregistré. Pour enregistrer une autre ville veuillez répeter l'opération.";
$message = $msg_erreur;
  
if (empty($_POST['province'])) 
  $message .= "Votre province<br/>";
if (empty($_POST['nomvil1'])) 
  $message .= "Votre ville<br/>";
if (empty($_POST['x1'])) 
  $message .= "Ville X<br/>";
if (empty($_POST['y1'])) 
  $message .= "Y<br/>";
if (empty($_POST['membre'])) 
  $message .= "membre<br/>"; 
 
if (strlen($message) > strlen($msg_erreur)) {
 
  echo $message;
 
} else {
 
  foreach($_POST as $index => $valeur) {
    $$index = mysql_real_escape_string(trim($valeur));
  }
 
  $interets = $_POST['interets'];
  $sqlinterets = '';
  for ($i=0; $i<count($interets); $i++)
  {
    $sqlinterets .= $interets[$i];
    $sqlinterets .= ', ';
  }
 
  $sql = "INSERT INTO repertoir VALUES ('".$membre."', '".$province."', '".$nomvil1."', '".$x1."', '".$y1."', now())";
  $res = mysql_query($sql);
 
  if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }
 
}
?>


voila je penses avoir donné asssez d'information ... si vous voulez me poser d'autre questions n'hésitez pas ^^

merci à ceux qui se pose sur mon problème ^^

9 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
15 juin 2010 à 22:42
$sql = "INSERT INTO repertoir VALUES ('".$membre."', '".$province."', '".$nomvil1."', '".$x1."', '".$y1."', now())";


14/06/210 18:24 ça correspond pas à now() par hasard ??
2
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
15 juin 2010 à 22:55
attention il faut avoir le bon nombre de champs quand tu mets VALUES (..


ensuite il faut que les champs soient dans le même ordre c a dire:

si tu as VALUES ('".$membre."', '".$province."', '".$nomvil1."', '".$x1."', '".$y1."', now())

tu dois avoir dans l'ordre dans ta table les champs (au nom près bien sur)

membre,province,ville,villeX,villeY,date
2
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
15 juin 2010 à 11:15
mais leurs pseudo s'enregistre comme un date "14/06/210 18:24"


as tu bien mis le type du champ pseudo en VARCHAR dans ta BDD ?
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
15 juin 2010 à 22:27
oui varchar valeur 255 le problème ne viendrait il pas de la page traitement.php ?
0

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

Posez votre question
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
15 juin 2010 à 22:50
ben si je l'enlève j'ai un
Column count doesn't match value count at row 1


j'y ai déjà pensé mais faudrait alors que je rajoutes autre chose a la place ...
j'ai vraiment bloqué dessus.. en tout cas merci Alain de m'aider
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
15 juin 2010 à 23:04
tout à fait ! ca c'est bon pour l'instant a ce niveau la tout fonctionne j'ai bien tout les champs remplient mais au niveau de la bdd j'ai la date dans le champ membre (que j'ai changé en pseud d'ailleurs)
le problème ne viendrait il pas de la bdd sinon ?? phpmyadmin me dit que j'ai deux index
alors id je sais que je l'ai mis en index mais je ne vois pas quoi d'autre ...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
15 juin 2010 à 23:24
donnes moi la listes de tes champs dans l'ordre
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
21 juin 2010 à 23:01
désolé alain le serveur était en maintenance alors je n'y avais pas accès pour te donner les valeurs dans le bon ordre.
bref voila :

-id int(4) | not null | auto_increment
-province | varchar(255) | latin1_swedish_ci | not null
-nomvil1 | varchar(255) | latin1_swedish_ci | not null
-x1 | varchar(255) | latin1_swedish_ci | not null
-y1 | varchar(255) | latin1_swedish_ci | not null
-pseud | text | latin1_swedish_ci | not null

("pseud" a remplacé "membre")
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
22 juin 2010 à 00:10
bon alors ca fonctionne ! apparemment le problème venait du
now()
qui prenait la place du "pseud" dans la page traitement.php
voici la page corrigé pour ceux qui la voudraient.

<?php

define('DB_SERVER', '*****'); // serveur mysql
define('DB_SERVER_USERNAME', '*****'); // nom d'utilisateur
define('DB_SERVER_PASSWORD', '*****'); // mot de passe
define('DB_DATABASE', '*****'); // nom de la base
 
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, 
DB_SERVER_PASSWORD) 
or die('Impossible de se connecter : ' . mysql_error());

mysql_select_db(DB_DATABASE, $connect);
 
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre ville a bien été enregistré. Pour enregistrer une autre ville veuillez répeter l'opération.";
$message = $msg_erreur;
  
if (empty($_POST['province'])) 
  $message .= "Votre province<br/>";
if (empty($_POST['nomvil1'])) 
  $message .= "Votre ville<br/>";
if (empty($_POST['x1'])) 
  $message .= "Ville X<br/>";
if (empty($_POST['y1'])) 
  $message .= "Y<br/>";
if (empty($_POST['membre'])) 
  $message .= "membre<br/>"; 
 
if (strlen($message) > strlen($msg_erreur)) {
 
  echo $message;
 
} else {
 
  foreach($_POST as $index => $valeur) {
    $$index = mysql_real_escape_string(trim($valeur));
  }
 
  $interets = $_POST['interets'];
  $sqlinterets = '';
  for ($i=0; $i<count($interets); $i++)
  {
    $sqlinterets .= $interets[$i];
    $sqlinterets .= ', ';
  }
 

$sql = "INSERT INTO repertoir VALUES ('".$id."', '".$province."', '".$nomvil1."', '".$x1."', '".$y1."', '".$pseud."')";

$res = mysql_query($sql);
 
  if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }
 
}
?>




Merci pour tout alain car sans toi je penses que j'aurais pas cherché au bon endroit
0