Formulaire+mysql

Résolu
kawtherwed Messages postés 3 Date d'inscription samedi 30 avril 2011 Statut Membre Dernière intervention 15 juillet 2011 - 13 juil. 2011 à 01:48
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 - 17 juil. 2011 à 16:03
slt tt le monde,
je suis en train de faire un site web mais j'ai rencontré quelques problemes:je fais une base de donnee pour login et mot de passe et tt les champs de formulaire d'inscription mais quand je fais un test donc je fais lainscrit et tt la connexion ne marche pas . et le deuxieme probleme concernant le formulaire je construit un formulaire comprend(nom,prenom,ville,adresse,mail..........)et donc je fais un ebase de donnee contient tt ces donnees mais jai besion de recuperer ces donnee sans les afffichers comment faire ca aidez moi svp:))

5 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
13 juil. 2011 à 08:31
Bonjour,

Comment veux tu qu'on t'aide si tu ne donnes pas plus d'explications.

Donne nous le code d'accès à la base de données et décris nous précisément l'erreur, là, on pourra peut être faire quelque chose.
3
kawtherwed Messages postés 3 Date d'inscription samedi 30 avril 2011 Statut Membre Dernière intervention 15 juillet 2011
13 juil. 2011 à 20:56
bonjour,

vous avez raison Julien voila mon code d'accés à la base de données pour login et mot de passe
<?php
$base=mysql_connect('localhost','root');
mysql_select_db('projet',$base);
$sql="SELECT * from user where nom='".$_POST["login"]."'";
$req=mysql_query($sql);
$data=mysql_fetch_array($req);
$login=$data['nom'];
if($data['paswd'] != $_POST["password"] ||$_POST["login"]!=$data['nom'])
{

echo "
<script langage='javascript'>
alert('Login ou mot de passe erronée');
window.location='page_accueil.php';
</script> ";


}
else
{SESSION_START();
$_SESSION["nom"]=$data['Nom'];
$_SESSION["prenom"]=$data['Prenom'];
}
?>
probleme: je peux faire la connexion meme si j'ai pas rempli le formulaire d'inscription
et merci d'avance:)
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
15 juil. 2011 à 15:58
bonjour
ton code est pas bon
il faudrait songer à crypter les passwords

je te poste un snippet
pour reprendre tes idees
<?php
session_start(); 
/*formulaire validable 1 mn*/
$_SESSION['token']=$token=md5(date('mdYHi').$_SERVER['HTTP_HOST'].$_SERVER['REMOTE_ADDR']); 


$form='<form method="post" action="'.$_SERVER['PHP_SELF'].'">


LOGIN



PASSWORD






</form>';

if(isset($_GET['deconnect']) && $_GET['deconnect']==='ok' && $_SESSION["auth"]===true){
//session_start();
session_unset();
session_destroy();
header('Location: ?msg=2');exit;
}else{
}

if(isset($_POST['login']) && !empty($_POST['login']) && isset($_POST['pass']) && !empty($_POST['pass']) && isset($_POST['token']) && $_SESSION['token']===$_POST['token'] && $_SERVER['REQUEST_METHOD']==='POST'){
$_SESSION['essai']++; 


  if($_SESSION['essai']<20){
  
  $base=mysql_connect('localhost','root',''); 
  mysql_select_db('a'); 
  $login=mysql_real_escape_string($_POST["login"]);
  $pass=mysql_real_escape_string($_POST["pass"]);
  //$sql="SELECT * from user where nom='".$_POST["login"]."'"; //non 
  /*le premier trouvé et c'est tout
  et jamais $_POST["login"] direct dans la requete
  les hacker aime ça ... et filtre avec mysql_real_string_escape toujours
  */
  $sql="SELECT * from projet where nom='".$login."' and paswd='".$pass."' limit 1";
  $req=mysql_query($sql); 
  $data=mysql_fetch_array($req); 
  
      //print_r($data);
  
      if($data['paswd'] != $pass || $login != $data['nom']){ 
      $msg='Erreur dans vos identifiants';
      $_SESSION['auth']=false; 
      header('Location: ?msg=1');exit; 
      }
      
      elseif($data['paswd'] === $pass && $login === $data['nom']){
      echo '[?deconnect=ok Se deconnecter]
';
      $_SESSION['nom']=$data['nom']; 
      echo '<hr>Bonjour'.$_SESSION["prenom"]=$data['prenom']; 
      $_SESSION['auth']=true; 
      }
  
  }else{
  exit('Trop de tentatives ('.$_SESSION['essai'].') informer le webmaster ...');
  }

}else{ 
//formulaire non soumis correct on le reaffiche
echo $form;   

/*gestion des erreurs et controle*/
 
  $msg1='Erreur dans vos identifiants';
  $msg2='Vous êtes deconnecter ...';
  
  if(isset($_GET['msg']) && (int)$_GET['msg']===1){
  echo $msg1.'
';
  }
  
  else if(isset($_GET['msg']) && (int)$_GET['msg']===2){
  echo $msg2.'
';
  }
    
  else{
  }


} 
?>



Bonne programmation !
0
kawtherwed Messages postés 3 Date d'inscription samedi 30 avril 2011 Statut Membre Dernière intervention 15 juillet 2011
15 juil. 2011 à 21:30
merci pour votre aide,
j'ai un autre probleme sil vous plait. je fais un formulaire comprend(nom,prenom,ville...)qui doit etre rempli par les visiteurs donc je veux recuperer ces donnees dans la base de donnees mais sans les affichees alors je fais deux page une pour les "forms" et lautre pour recuperer les donnees voila le code de la page de recuperation des donnees:

<?php
//Déclaration des paramétres
$mysql_host="localhost";
$mysql_user="root";
$mysql_bdd="user";
$mysql_passwd="";?>
<?php


// Connexion au serveur mysql
$connect = mysql_connect($mysql_host,$mysql_user,$mysql_passwd)
or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
mysql_select_db($mysql_bdd, $connect);

$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :

";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;

// vérification des champs
//if (empty($_POST['f_civilite']))
//$message .= "Votre civilité
";
if (empty($_POST['f_nom']))
$message .= "Votre nom
";
if (empty($_POST['f_prenom']))
$message .= "Votre prenom
";
if (empty($_POST['f_adresse']))
$message .= "Votre adresse
";
if (empty($_POST['f_telephone']))
$message .= "Votre telephone
";
if (empty($_POST['f_email']))
$message .= "Votre email
";
//if (empty($_POST['codepostal']))
//$message .= "Votre code postal
";
if (empty($_POST['f_ville']))
$message .= "Votre ville
";
if (empty($_POST['message']))
$message .= "Votre message
";


// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

echo $message;

// sinon c'est ok
}


$sql = "INSERT INTO formulaire VALUES ('', '".$_POST['f_nom']."', '".$_POST['f_prenom']."','".$_POST['f_telephone']."','".$_POST['f_adresse']."', '".$_POST['f_ville']."','".$_POST['f_email']."', '".$_POST['message']."', now())";
$res = mysql_query($sql);

if ($res) {
echo $msg_ok;
} else {
echo mysql_error();
}


?>

lorsque je fais un test par remplir le formulaire je trouve aucune enregistrement dans la base (table formulaire)et un erreur toujours apparait"Column count doesn't match value count at row 1"
s'il vous plait aide moi et merci d'avance :)
0

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

Posez votre question
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
17 juil. 2011 à 16:03
bonjour
essaie comme ça
mais tu dois reposté si tu as un autre problème la prochaine fois
sinon les autres ne verront pas ta demande
...
a++
<?php
/*
merci pour votre aide, 
j'ai un autre probleme sil vous plait. je fais un formulaire
comprend(nom,prenom,ville...)qui doit etre rempli par les visiteurs
donc je veux recuperer ces donnees dans la base de donnees mais sans
les affichees alors je fais deux page une pour les "forms" et lautre
pour recuperer les donnees voila le code de la page
de recuperation des donnees: 

lorsque je fais un test par remplir le formulaire je trouve aucune enregistrement 
dans la base (table formulaire)et un erreur toujours 
apparait"Column count doesn't match value count at row 1" 
s'il vous plait aide moi et merci d'avance :)
*/
 
//Déclaration des paramétres 
$mysql_host="localhost"; 
$mysql_user="root"; 
$mysql_bdd="user"; 
$mysql_passwd="";?> 
<?php 


// Connexion au serveur mysql 
$connect = mysql_connect($mysql_host,$mysql_user,$mysql_passwd) 
or die('Impossible de se connecter : ' . mysql_error()); 
// sélection de la base de données 
mysql_select_db($mysql_bdd, $connect); 

$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :

"; 
$msg_ok = "Votre demande a bien été prise en compte."; 
$message = $msg_erreur; 

// vérification des champs 
//if (empty($_POST['f_civilite'])) 
//$message .= "Votre civilité
"; 
if (empty($_POST['f_nom'])) 
$message .= "Votre nom
"; 
if (empty($_POST['f_prenom'])) 
$message .= "Votre prenom
"; 
if (empty($_POST['f_adresse'])) 
$message .= "Votre adresse
"; 
if (empty($_POST['f_telephone'])) 
$message .= "Votre telephone
"; 
if (empty($_POST['f_email'])) 
$message .= "Votre email
"; 
//if (empty($_POST['codepostal'])) 
//$message .= "Votre code postal
"; 
if (empty($_POST['f_ville'])) 
$message .= "Votre ville
"; 
if (empty($_POST['message'])) 
$message .= "Votre message
"; 


// si un champ est vide, on affiche le message d'erreur 
if (strlen($message) > strlen($msg_erreur)) { 
echo $message; 
// sinon c'est ok 
}else{

/*anti hacker*/ 
  foreach($_POST as $k => $v){
  $_POST[$k]=mysql_real_escape_string($v);
  }

extract($_POST);

$sql = "INSERT INTO formulaire VALUES (
        NULL,
        '".$f_nom."',
        '".$f_prenom."',
        '".$f_telephone."',
        '".$f_adresse."',
        '".$f_ville."',
        '".$f_email."',
        '".$message."',
        now()
        )";
          
$res = mysql_query($sql); 

      if ($res) { 
      echo $msg_ok; 
      } else { 
      echo mysql_error(); 
      } 

}
?>


Bonne programmation !
0
Rejoignez-nous