cs_machmacha
Messages postés97Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention28 mai 2010
-
30 avril 2007 à 19:44
cs_nullite
Messages postés9Date d'inscriptionmardi 25 janvier 2005StatutMembreDernière intervention18 novembre 2009
-
10 mai 2007 à 04:51
Bonjour a tous,
j'ai un problème et j'espère que quelqu'un pourra m'aider a le résoudre voilà mon soucis:
j'ai une page index.php ou il ya un rebrique d'authentification càd (email, password ) avant de saisir l'email et le mot de passe j'ai donné la possibilité a l'utilisateur de cocher(avec des radio) est ce qu'il est un candidat ou un recruteur, voilà mon formulaire:
<form name="form1" method="post" >
Candidat
Recruteur
Email :
</td>
Mot de passe :
</td>
</form>
voilà mon code php:
<?php
if (isset(!empty($_POST['radio1'])))
{
if(isset($_POST) && !empty($_POST['email']) && !empty($_POST['password']))
{
$mysql = "SELECT Email, Password FROM matabl_candt WHERE Email='".$_POST['email']."' and Password='".$_POST['password']."'";
$req = mysql_query($mysql) or die('Erreur SQL !
'.$mysql.'
'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['Password'] != $_POST['password']) {
echo "Ton Pass ne correspond pas à celui de la BDD";
$mysql = "SELECT Email, Password FROM matable_recrut WHERE Email='".$_POST['email']."' and Password='".$_POST['password']."'";
$req = mysql_query($mysql) or die('Erreur SQL !
'.$mysql.'
'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['Password'] != $_POST['password']) {
echo "Ton Pass ne correspond pas à celui de la BDD";
cs_machmacha
Messages postés97Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention28 mai 2010 30 avril 2007 à 19:47
bon j'ai oublié d'expliquer mon problème c'est que lorsque je click sur le bouton connexion il m'affiche cette erreur sur ma page :
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\files\easyphp1-8\www\file\index.php:9)
est qu'il ya un moyen pour résoudre cette erreur
merci d'avance
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 30 avril 2007 à 19:50
Salut,
Pour envoyer des cookies (ce que fait session_start si les sessions utilisent des cookies), comme pour utiliser la fonction header(), il ne faut pas que du texte ait déjà été envoyé, parce qu'ils font partie des entêtes.
Les entêtes, comme leur nom l'indique, sont envoyés en... entête. Si tu envoies du texte, c'est le corps de la réponse HTTP du serveur.
Une simple recherche sur google avec le message d'erreur donnait la solution...
cs_machmacha
Messages postés97Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention28 mai 2010 30 avril 2007 à 20:05
oui c'est fais mais j'ai pas trouvé grande chose, est ce que vous avez un exemple similaire de l'authentification des utilisateurs car je suis vraiment bloqué merci d'avance
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 30 avril 2007 à 20:10
Je sais pas comment le dire...
Dans ton script, tu envoies du texte avant d'utiliser une fonction qui envoie des headers.
Or, quand tu envoies du texte, tu ne peux plus envoyer de header (set_sookie(), header() ou session_start(), etc), parce que ce n'est plus l'endroit.
Donc, il faut corriger ton script pour qu'il n'envoie plus de texte avant d'envoyer de header. C'est tout.
Vous n’avez pas trouvé la réponse que vous recherchez ?
$mysql = "SELECT Email, Password FROM matabl_candt WHERE Email='".$_POST['email']."' and Password='".$_POST['password']."'";
$req = mysql_query($mysql) or die('Erreur SQL !
'.$mysql.'
'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['Password'] != $_POST['password']) {
echo "Ton Pass ne correspond pas à celui de la BDD";
$mysql = "SELECT Email, Password FROM matable_recrut WHERE Email='".$_POST['email']."' and Password='".$_POST['password']."'";
$req = mysql_query($mysql) or die('Erreur SQL !
'.$mysql.'
'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['Password'] != $_POST['password']) {
echo "Ton Pass ne correspond pas à celui de la BDD";
juki_webmaster
Messages postés947Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention 5 avril 20083 30 avril 2007 à 22:30
Salut,
"Ne pas envoyer du texte", compte aussi pour les Warning generer par PHP, ainsi juste ces deux lignes :
if (isset(!empty($_POST['radio1']))) << empty() est appler avant isset(), si $_POST['radio1'] existe pas, Warning
{
if(isset($_POST) && !empty($_POST['email']) && !empty($_POST['password'])) << idem pour le Warning, tu ne verifie par si $_POST['email'] et $_POST['password'] EXISTE (avec isset()).
{
id="radio1" name="choix" << $_POST['choix'] et non $_POST['radio1'] ou alors j'ai pas compris le sens du code... id servant quand ont joue au JS et aux <label for="nom_du_id">
Faut consulter la doc PHP, ansi :
mysql_select_db('recrutement',$database);
cs_machmacha
Messages postés97Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention28 mai 2010 1 mai 2007 à 04:04
salut juki, merci pour ton explication, mais j'ai oublié de vous dire que je suis débutant en php et c'est mon premier site , lorsque tu dis que empty() est appler avant isset(), qu'est ce que vus voudrai dire ?? et comment je peux vérifier si $_POST['email'] et $_POST['password'] EXISTE ?
parceque j'ai trouvé ce bou de code sur un doc et je l'ai fais adapté merci de m'aider pour résoudre mon problème
juki_webmaster
Messages postés947Date d'inscriptionmercredi 19 novembre 2003StatutMembreDernière intervention 5 avril 20083 1 mai 2007 à 10:17
if (isset(!empty($_POST['radio1'])))
empty() est evalué avant isset(), ici, empty() renvoie une valeur à la fonction isset().
a(b(c(d('quelque_chose')))); << d('quelque_chose') est évalué, le retour de cette fonction sera evalué par c(), le retour de c() sera evalué par b() etc...
"comment je peux vérifier si - une variable - EXISTE" << isset()
Dans un formulaire POST j'ai un champ 'test' => if (isset($_POST['test'])) { echo 'la variable POST test existe'; },
if(isset($_POST) && !empty($_POST['email']) && !empty($_POST['password'])) << ici tu as juste verifier si il ya des choses dans $_POST, mais tu ne verifie pas si $_POST['email'] et $_POST['password'] existe.
Le prototype de la fonction isset() nous dit : bool isset ( mixed var [, mixed var [, ...]] )
Les crochets et les virgules nous disent que nous pouvons faire evaluer plusieurs variables d'un coup;
if (isset($_POST['email'], $_POST['password']) && !empty($_POST['email']) && !empty($_POST['password'])) { }
cs_machmacha
Messages postés97Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention28 mai 2010 3 mai 2007 à 13:47
bonjour a tous,
je veux faire un test comme ça:
if ( isset($email != '')&& isset($password != '') )
{
}
mais lorsque je lance le navigateur il m'affiche cet erreur:
Parse error: parse error, expecting `','' or `')'' in c:\files\easyphp1-8\www\doss\test.php on line 187
que puis je faire?
cs_nullite
Messages postés9Date d'inscriptionmardi 25 janvier 2005StatutMembreDernière intervention18 novembre 2009 10 mai 2007 à 04:51
Salut,
1) le "session_start" doit être la premiere chose que tu indique dans ton code c'est à dire qu'il faut l'écrire AVANT tout le code php et/ou html !
2) le "isset" renvoit true ou false sur une variable existante ou non. Il n'y a pas l'utilité de mettre une condition à l'interieur.
Soit tu ecris : if (isset($email) ...) {} soit tu écris if ($email != "" ...) {}
si tu veux compiler les deux, tu peux faire : if (isset($email) && $email != "" ...) {}
Bon courage pour la suite
pour info, le "site du zéro" propose des tutos bien fait pour les débutants.