Rediriger suite à un traitement [PHP]
Résolu
Phpu_u
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
Phpu_u Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
Phpu_u Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'apprends actuellement le PHP, mais je but sur un problème :
J'ai réussi à créer un formulaire d'inscription avec le MySQL, mais sur le formulaire de connection je bloc :
Ma page connection.php comporte un formulaire simple (juste POST avec submit, demande de pass et login) redirigeant sur traitement.php ! Je regarde si le mot de passe est dans la base et login blabla... Mais le problème est que lorque je veut rediriger si la connection se déroule correctement... Je ne sais pas faire ! J'ai réussi un truc mais il ne prennait ni en compte la traitement ni le If () {} ou il était placé ! (en java en utilisant print).
Quelqu'un aurrait-il une soluce ?
Merci d'avance !
J'apprends actuellement le PHP, mais je but sur un problème :
J'ai réussi à créer un formulaire d'inscription avec le MySQL, mais sur le formulaire de connection je bloc :
Ma page connection.php comporte un formulaire simple (juste POST avec submit, demande de pass et login) redirigeant sur traitement.php ! Je regarde si le mot de passe est dans la base et login blabla... Mais le problème est que lorque je veut rediriger si la connection se déroule correctement... Je ne sais pas faire ! J'ai réussi un truc mais il ne prennait ni en compte la traitement ni le If () {} ou il était placé ! (en java en utilisant print).
Quelqu'un aurrait-il une soluce ?
Merci d'avance !
A voir également:
- Php redirection après traitement
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Easy php - Télécharger - Divers Web & Internet
- Ce traitement de texte gratuit et léger est parfait pour remplacer Word, même sur un vieux PC - Guide
- Traitement de texte gratuit open office - Télécharger - Suite bureautique
6 réponses
Bonjour,
Montre nous le code php qui ne fonctionne pas.
Il faut utiliser header() pour une redirection via PHP, en prenant soin de le placer avant tout code html.
En javascript, on peut passer par document.location.replace .
Montre nous le code php qui ne fonctionne pas.
Il faut utiliser header() pour une redirection via PHP, en prenant soin de le placer avant tout code html.
En javascript, on peut passer par document.location.replace .
Pas étonnant que ça ne marche pas.
-> Où se trouve votre connexion à votre BDD ?
Je ne la vois nul part.
Ca doit ressembler à $bdd = new PDO(bdd,login,pass);
-> Dans vos conditions if, vous devez utiliser des opérateurs de comparaisons et non des opérateurs d'affectations,
if ($error=TRUE) (à ne pas utiliser)
if ($error==TRUE) (à utiliser)
-> Votre code n'a pas de sens dès la première condition :
if (!isset($_POST['login']) AND !isset($_POST['mot_de_passe']))
Pourquoi mettre !isset() ?
Si vous voulez vérifier que la variable $_POST est bien présente il faut alors enlever le point d'exclamation '!' avant isset().
Vous devriez même tester si la variable n'est pas vide avec :
if(!empty($_POST['login']))
-> Et pour finir :
if ( $bdd->query('SELECT login FROM users')=$_POST['login'])
Je ne place jamais de requête SQL comme condition, je ne sais même pas si c'est faisable. Mais je vous conseille de procéder autrement.
Faites dans un premier temps votre requête SQL, lisez ensuite le resultat de la requête avec un fetch(), et ensuite placez votre condition.
PS : J'espère que les majuscules aux "If" sont des erreurs de frappe.
Afrnos GH
-> Où se trouve votre connexion à votre BDD ?
Je ne la vois nul part.
Ca doit ressembler à $bdd = new PDO(bdd,login,pass);
-> Dans vos conditions if, vous devez utiliser des opérateurs de comparaisons et non des opérateurs d'affectations,
if ($error=TRUE) (à ne pas utiliser)
if ($error==TRUE) (à utiliser)
-> Votre code n'a pas de sens dès la première condition :
if (!isset($_POST['login']) AND !isset($_POST['mot_de_passe']))
Pourquoi mettre !isset() ?
Si vous voulez vérifier que la variable $_POST est bien présente il faut alors enlever le point d'exclamation '!' avant isset().
Vous devriez même tester si la variable n'est pas vide avec :
if(!empty($_POST['login']))
-> Et pour finir :
if ( $bdd->query('SELECT login FROM users')=$_POST['login'])
Je ne place jamais de requête SQL comme condition, je ne sais même pas si c'est faisable. Mais je vous conseille de procéder autrement.
Faites dans un premier temps votre requête SQL, lisez ensuite le resultat de la requête avec un fetch(), et ensuite placez votre condition.
PS : J'espère que les majuscules aux "If" sont des erreurs de frappe.
Afrnos GH
J'en ai refais un rapide :
<?php session_start() ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<?php
$connectionOK= FALSE;
$error= FALSE;
$errorLOGIN = FALSE;
If (!isset($_POST['login']) AND !isset($_POST['mot_de_passe']))
{
If ( $bdd->query('SELECT login FROM users')=$_POST['login'])
{ $login = $_POST['login'];
$pass = $bdd->query('SELECT pass FROM users WHERE login $login');
If ($pass = $_POST['mot_de_passe'])
{ $connectionOK = TRUE;
}
Else { $error= TRUE;}
} Else { $errorLOGIN= TRUE;}
If ($error=TRUE) {echo 'Mot de pass incorrect';}
If ($errorLOGIN = TRUE) {echo 'Login incorrect';}
}
If ($connectionOK = TRUE)
{
$_SESSION['pseudo'] = $_POST['login'];
print ("<script language = \"JavaScript\">");
print ("location.href = 'bienvenue.php';");
print ("</script>");
}
?>
</body>
</html>
Voilà, en gros ça ne marche pas :/
<?php session_start() ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<?php
$connectionOK= FALSE;
$error= FALSE;
$errorLOGIN = FALSE;
If (!isset($_POST['login']) AND !isset($_POST['mot_de_passe']))
{
If ( $bdd->query('SELECT login FROM users')=$_POST['login'])
{ $login = $_POST['login'];
$pass = $bdd->query('SELECT pass FROM users WHERE login $login');
If ($pass = $_POST['mot_de_passe'])
{ $connectionOK = TRUE;
}
Else { $error= TRUE;}
} Else { $errorLOGIN= TRUE;}
If ($error=TRUE) {echo 'Mot de pass incorrect';}
If ($errorLOGIN = TRUE) {echo 'Login incorrect';}
}
If ($connectionOK = TRUE)
{
$_SESSION['pseudo'] = $_POST['login'];
print ("<script language = \"JavaScript\">");
print ("location.href = 'bienvenue.php';");
print ("</script>");
}
?>
</body>
</html>
Voilà, en gros ça ne marche pas :/
Petite précision : Ce que je voulais faire c'était d'ouvrion session, vérifier la connection, si on ne peut pas je ferme mais la pas mis (marchais pas --') et on affiche un message sinon on passe à la page bienvenue avec le pseudo !
Mais marche pas !
Mais marche pas !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question