ouvrir une page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ouvrir une page

par albat » 03 nov. 2006, 18:27

Pour aller plus vite, voici ton code corrigé.
Regarde bien les commentaires que j'y ai insérés...
<?php
session_start();
require ('connect.php');
$nom = $_GET['Nom'];
$query_connexion = "SELECT * FROM generaliste WHERE nom='".$nom."'"; // On extrait les variables de la chaîne de caractères
$result = mysql_query($query_connexion) or die(mysql_error()); // mysql_result est un mot réservé, il ne peut être utilisé pour nommer une variable
if ($ligne = mysql_fetch_array($mysql_result))
   { $_SESSION['nom'] = ($ligne["nom"]); // Où se ferme cette accolade ?
     if (test==1)
        { header("Location: http://www.monsite.com/membre.php/");
        }
        else
        { echo "vous n'êtes pas autorisé à rentrer!"
        }
?>

<html>

<head>
<title><?php echo $connexion ?></title>
</head>

<body>
...
PS : Le SELECT * est à proscrire...

par albat » 03 nov. 2006, 18:21

Visiblement, on ne se comprend pas...

Certes, un echo avant un header() provoque une erreur.
Mais la présence de la moindre balise HTML (<html>, <head>, <body>, etc.),
le moindre saut de ligne ou la moindre espace provoque aussi une erreur !

C'est donc toute la partie du code que j'ai recopiée dans mon message précédent qui pose problème.

par sophie2097 » 03 nov. 2006, 18:04

oui en effet, c'est une erreur de ma part. tt à l'heure jai essayé en supprimant le echo. et ca n'a rien changé. c'est pourquoi je l'ai ensuite remis.

par albat » 03 nov. 2006, 17:49

Pour utiliser header(), il faut que rien n'ait été envoyé au client (echo, print, etc...),
pas même un petit espace.
ok je comprend
Quand je vois ton code, je ne suis pas certain que tu aies bien compris...

La règle est : Ne rien envoyer au client avant l'appel du header() !

Et ça alors ? [-X
<html>
<head>
<title><?php echo $connexion ?></title>
</head>
<body>
:idea: Un truc : Place toujours le script contenant un header au sommet de ta page.
Tu verras, ça marche beaucoup mieux... ;)

par sophie2097 » 03 nov. 2006, 17:39

Code : Tout sélectionner

<?php session_start(); require ('connect.php'); ?> <html> <head> <title><?php echo $connexion ?></title> </head> <body> <?php // on récupère les données pour la connexion $nom = $_GET['Nom']; $query_connexion = "SELECT * FROM GENERALISTE WHERE nom='$nom' "; $mysql_result = mysql_query($query_connexion) or die(mysql_error()); if ($ligne = mysql_fetch_array($mysql_result)) { // on récupère les infos du membre connecté $_SESSION['nom'] = ($ligne["nom"]); if(test==1) { header("Location: http://www.monsite.com/membre.php/"); } else { echo "vous n'êtes pas autorisé à rentrer!" }

par albat » 03 nov. 2006, 17:30

Ce n'est pas le IF qui est en cause.
On peut tout à fait effectuer un test avant de rediriger une page avec un header.

Avec ton code, ce sera tout de même lus facile pour t'expliquer...

par sophie2097 » 03 nov. 2006, 17:25

mais puisque je dois faire un test IF avant, je ne saurais pas le mettre avant. je suis perdue là

par albat » 03 nov. 2006, 17:09

Peux-tu nous montrer le code de ta page ?

par Vikchill » 03 nov. 2006, 17:07

ok je comprend. comment puis je alors faire pour ouvrir une nouvelle page à partir du code ci-dessus?
Ben comme dit, le mettre avant tout envoi d'affichage vers le poste client, tu comprends? Il ne faut pas que tu aies d'echo, de print, ou tout autre fonction d'affichage avant, ni d'html.

par sophie2097 » 03 nov. 2006, 16:57

ok je comprend. comment puis je alors faire pour ouvrir une nouvelle page à partir du code ci-dessus?

par Vikchill » 03 nov. 2006, 16:52

Pour utiliser header(), il faut que rien n'ait été envoyé au client (echo, print, etc...), pas même un petit espace.

ouvrir une page

par sophie2097 » 03 nov. 2006, 16:49

Bonjour à tous,

Voilà je voudrais ouvrir une nouvelle page .php à partir d'une page .php:

Code : Tout sélectionner

if(test==1) { header("Location: http://www.monsite.com/membre.php/"); } else { echo "vous n'êtes pas autorisé à rentrer!" }
voilà l'erreur affichée :
Warning: Cannot modify header information - headers already sent

quelqu'un sait-il m'aider? merci.