Comment rediriger une page php ? header ?
ziedzico
Messages postés
438
Statut
Membre
-
Poks -
Poks -
Bonjour,
header('Location: adressemsg.php'); ne fonctionne pas sur ma page !
est ce que je peux utiliser window.location sous une if de php ?
header('Location: adressemsg.php'); ne fonctionne pas sur ma page !
est ce que je peux utiliser window.location sous une if de php ?
Configuration: Windows XP Firefox 2.0.0.14
5 réponses
-
header("Location: ... doit marcher. Un message d'erreur est-il affiché ? le fichier existe-t-il bien dans le même dossier que le script courant ?
Window.location c'est du Javascript qui est donc exécuté en local après que le script PHP ne soit terminé sur le serveur et la page HTML affiché.-
voila ma page :
<?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=iso-8859-1" />
<title>Document sans titre</title>
</head>
<body>
<?php
$dest=$_POST['dest'];
$pseudo=$_SESSION['pseudo'];
$msg=$_POST['msg'];
$db =mysql_connect('localhost','root','');
mysql_select_db('tvs');
$app=''; $tut='';
$sql = "select pseudo from apprenant ";
$req = mysql_query($sql);
while($data=mysql_fetch_array($req))
{
if ($pseudo==$data['pseudo']){$app='ok';}
}
$sql = "select pseudo from tuteur ";
$req = mysql_query($sql);
while($data=mysql_fetch_array($req))
{
if ($pseudo==$data['pseudo']){$tut='ok';}
}
if (($app == 'ok' ) || ( $tut == 'ok' ))
{
$req= "INSERT INTO message VALUES ('','$pseudo','$dest','$msg');";
mysql_query($req);
}
if (($app == '' ) && ( $tut == '' ))
{ header('Location: adressemsg.php');
}
?>
</body>
</html>
-
-
Merci de "ta page" mais tu ne réponds pas à mes deux questions.
-
Seconde question : as-tu vérifié que le fichier cible était bien présent dans le même dossier que le script en cours ?
Quelques remarques sur ton script :
1.il serait préférable de faire les tests dans les select mysql :$sql = "select pseudo from apprenant where pseudo = '" . $pseudo . "'"; $req = mysql_query( $sql ); if( mysql_num_rows( $req ) >= 1 ) $app = 'ok'; else $app = ''; $sql = "select pseudo from tuteur where pseudoo='" . $pseudo . "'"; $req = mysql_query($sql); if( mysql_num_rows( $req ) >= 1 ) $tut = 'ok'; else $tut = '';
2. Il serait préférable de formatter ton script de manière à montrer les blocs logiques : tu y gagneras au deboguage
3. le header serait mieux avant toute sortie html. Ce qui donnerait qqch comme :
<?php session_start(); $dest = $_POST['dest']; $pseudo = $_SESSION['pseudo']; $msg = $_POST['msg']; $db = mysql_connect( 'localhost', 'root', ''); mysql_select_db( 'tvs' ); $sql = "select pseudo from apprenant where pseudo = '" . $pseudo . "'"; $req = mysql_query( $sql ); if( mysql_num_rows( $req ) >= 1 ) $app = 'ok'; else $app = ''; $sql = "select pseudo from tuteur where pseudoo='" . $pseudo . "'"; $req = mysql_query($sql); if( mysql_num_rows( $req ) >= 1 ) $tut = 'ok'; else $tut = ''; if( ($app == 'ok' ) || ( $tut == 'ok' ) ) { $req= "INSERT INTO message VALUES ('','$pseudo','$dest','$msg');"; mysql_query($req); ?> <!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=iso-8859-1" /> <title>Document sans titre</title> </head> <body> Insertion effectuée </body> </html> <?php } if( ($app == '' ) && ( $tut == '' ) ) header('Location: adressemsg.php'); ?> -
Retrousse tes manches : place des echo aux endroits judicieux de ton script pour voir comment il se comporte et détecter où un pb se pose.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Le header doit être inséré seulement au début de ton script php, sans que ton html ne soit entamé... sinon il ne fonctionnera pas et le header sert à google au référencement, alors je doute que ce soit une bonne idée d'utiliser cette fonction