Rediriger suite à un traitement [PHP]

Résolu/Fermé
Phpu_u Messages postés 54 Date d'inscription mardi 10 avril 2012 Statut Membre Dernière intervention 27 février 2014 - 10 avril 2012 à 23:26
Phpu_u Messages postés 54 Date d'inscription mardi 10 avril 2012 Statut Membre Dernière intervention 27 février 2014 - 12 avril 2012 à 07:39
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 !



6 réponses

afrnos Messages postés 59 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 16
11 avril 2012 à 06:47
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 .
2
afrnos Messages postés 59 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 16
Modifié par afrnos le 12/04/2012 à 00:47
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
1
Phpu_u Messages postés 54 Date d'inscription mardi 10 avril 2012 Statut Membre Dernière intervention 27 février 2014 5
11 avril 2012 à 13:14
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 :/
0
Phpu_u Messages postés 54 Date d'inscription mardi 10 avril 2012 Statut Membre Dernière intervention 27 février 2014 5
11 avril 2012 à 15:24
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 !
0

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

Posez votre question
header("lacation:bienvenue.php")
0
Phpu_u Messages postés 54 Date d'inscription mardi 10 avril 2012 Statut Membre Dernière intervention 27 février 2014 5
12 avril 2012 à 07:39
:ooo
Ben... Au l'avantage c'est qu'on apprends que de ses erreurs :/

Je modifie le scripte si tout va bien je clos le sujet x)

Ps: Pour la connection je m'en suis aperçu hier quand même :D )
0