Page 1 sur 1

REDIRECTION VERS UNE PAGE

Posté : 29 oct. 2014, 10:57
par vlavaud
Bonjour,

Je viens de me mettre au PHP et je me lance dans un petit developpement tout simple qui va tester si ma connexion mySql connaigt mon user.

Si c'est le cas et que mon user est connu, la page doit me rediriger vers l'accueil du mon site, sinon il me redirige la page de connexion pour ressaisir user et mot de passe.

Alors je précise que ma connexion fonctionne et a été remplacée par des informations comme 'monIpDeMonServeur'.

La page qui est normalement faite pour me rediriger ne FAIT RIEN et reste sur la page verifconnexion.php alors qu'elle doit me rediriger vers index.html

J'ai éssayé :
//ob_start();
header("Location: index.html/");
//ob_end_flush();


ob_start();
header("Location: index.html/");
ob_end_flush()



j'ai mis un fonction javascript en haut qui fait un redirection idem ça marche poa

Je débute et j'ai cherché pourtant sur internet mais là, ça me donne envie d'arrêter .

mErci de Votre aide car je sèche

****************************************************************************************************
PAGE DE CONNEXION
**************************************************************************************************

<!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>
<style>
.center {
margin-left: auto;
margin-right: auto;
width: 500px;
background-color: #FF6;
}
</style>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>INTRANET MA SOCIETE</title>
</head>

<body>

<div class="center">

<form method="post" action="verifconnexion.php">
<table width="325" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="176">Identifiant :</td>
<td width="72"> <input type="text" name="user" size="12" value="u1008811_admin"></td>
<td width="77">&nbsp;</td>
</tr>
<tr>
<td>Mot de passe : </td>
<td><input type="password" name="password" size="12" value="P@ssword12071974"> </td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="OK" / align="right"></td>
<td>&nbsp;</td>
</tr>
</table>

</form>

</div>
</body>
</html>




*****************************************************************************************************************************
PAGE QUI VERIFIE MA CONNEXION ET ME REDIRIGE
*******************************************************************************************************************************
<?php


//reception des données du formulaire précédent
$identifiant = $_POST['user'];
$password = $_POST['password'];

$db = mysql_connect('monIpDeMonServeur', $identifiant, $password );

// on sélectionne la base
mysql_select_db('MaBaseDeDonnee',$db);

// on crée la requête SQL
$sql = 'SELECT * FROM T_USER';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

if ($identifiant = "MonIdentifiant")
{
//echo '<body onLoad="alert(\'Membre non reconnu...\')">';
session_start ();
$_SESSION['user'] = $identifiant;
$_SESSION['password'] = $password;
//$_SESSION[['chainecnx'] = $db;

//ob_start();
header("Location: index.html/");
//ob_end_flush();
}
else
{
header("Location: connexion.php/");
}

?>
</head>
<body>
</body>
</html>
*******************************************************************************************************************************************************************

Re: REDIRECTION VERS UNE PAGE

Posté : 29 oct. 2014, 11:33
par xTG
Ton code ne fait pas ce qu'il devrait faire.
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

if ($identifiant = "MonIdentifiant")
Le if ne compare rien, en PHP la comparaison est un double égal (terme1 == terme 2).
Là tu fais donc une affectation, on rentre toujours dans le if.

A quoi te sert ta requête dans l'état ? ;)
Il faut qu'elle recherche l'utilisateur nommé $identifiant et dont le mot de passe correspond à $password.

Concernant la redirection essaie d'enlever le '/' à la fin.
Mais sinon si tu n'as aucun affichage avant je ne vois pas le souci.

Re: REDIRECTION VERS UNE PAGE

Posté : 29 oct. 2014, 12:10
par Nestecha
Je pense que l'essentiel à ete dit, je viens juste donner un conseil, arrêter d'utiliser mysql_... au profit de mysqli ou PDO !

Certains IDE barrent même ces fonctions tant elles sont dépréciées et dangereuses à l'utilisation

Re: REDIRECTION VERS UNE PAGE

Posté : 29 oct. 2014, 12:22
par vlavaud
Bonjour,

Merci je parle que de la redirection faite abstraction du code qui est faux vous avez raison.

J'ai placé une alert avant la redirection pour voir et il passe bien dans mon if (bla l=bkbk= même si oui merci c'est une affectation) je viens de le corriger.

jai envelé le / comme évoqué et toujours rien ne marche PAS

Vincent

Re: REDIRECTION VERS UNE PAGE

Posté : 29 oct. 2014, 12:31
par vlavaud
Voilà en résumé ça , ça ne marche pas, il reste sur la page sans éffectuer la rediction ?

<!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>INTRANET GHESTEM</title>

<?php


$identifiant = "toto";

if ($identifiant == "toto")
{

header("Location: index.html");
exit();
}
else
{
header("Location: connexion.php");
exit();

}

?>
</head>
<body>

</body>
</html>

Re: REDIRECTION VERS UNE PAGE

Posté : 29 oct. 2014, 12:58
par ynx
Salut,

La fonction header() doit être appelée avant que le moindre contenu ne soit envoyé au client (echo, code html, erreur php...).

Soit :
<?php
$identifiant = "toto";

if ($identifiant == "toto")
{
    header("Location: index.html");
    exit();
}
else
{
    header("Location: connexion.php");
    exit();
}
?>
<!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>INTRANET GHESTEM</title>
</head>
<body>

</body>
</html>
Bonne journée

Re: REDIRECTION VERS UNE PAGE

Posté : 29 oct. 2014, 13:12
par vlavaud
Merci ynx,

Voilà efféctivement ça marche ... bon par contre ça ne m'arrange pas du coup.

On ne peu donc pas mettre ce code dans le corp d'une page php entre <body> par exemple.

Il existe peut être autre chose ?

Merci en tout cas voilà une réponse qui répond à ma question

Vincent

Re: REDIRECTION VERS UNE PAGE

Posté : 29 oct. 2014, 13:17
par vlavaud
Genre ça, ça ne marche pas non plus !!!!


<?php

// on se connecte à MySQL

//reception des données du formulaire
$identifiant = $_POST['user'];
$password = $_POST['password'];

$db = mysql_connect('10.130.37.92', $identifiant, $password );

// on sélectionne la base
mysql_select_db('db1008811_ghestem',$db);

// on crée la requête SQL
$sql = 'SELECT * FROM T_USER';

// on envoie la requête
//$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

if ($identifiant == "u1008811_admin")
{

session_start ();
$_SESSION['user'] = $identifiant;
$_SESSION['password'] = $password;
//$_SESSION[['chainecnx'] = $db;
header("Location: index.html");
exit();
}
else
{
header("Location: connexion.html");
exit();
}

?>

<!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>INTRANET GHESTEM</title>


</head>
<body>

</body>
</html>

Re: REDIRECTION VERS UNE PAGE

Posté : 29 oct. 2014, 14:09
par xTG
Si tu n'as pas d'espaces avant le <?php cela doit fonctionner.
J'ai l'impression que tu exécutes du code sur un serveur mal paramétré pour le développement.
As-tu activé les erreurs PHP (et surtout les warning dans notre cas) dans le php.ini ?

Re: REDIRECTION VERS UNE PAGE

Posté : 29 oct. 2014, 16:14
par vlavaud
Re,

Non je n'ai pas d'espace avant
<?php

La base étant hébergée, je n'ai pas accès aux paramétrages.

La seule chose que je constate, le code phph seul fonctionne, mais en intégrant après du html celà ne fonctionne pas ?

Vinc

Re: REDIRECTION VERS UNE PAGE

Posté : 31 oct. 2014, 09:22
par xTG
Ajouter du HTML après n'est pas un souci.
Si pas d'espace je pencherai pour un caractère non imprimable ?
Tu peux le vérifier en ouvrant le fichier avec un éditeur comme Notepad++ qui permet via une option d'afficher les caractères non imprimables.