IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Redirection PHP


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Redirection PHP
    Bonjour,

    Comme dit dans le titre j'ai un soucis avec mes redirections PHP je vous explique :
    J'ai commencé (et même bientôt terminé) mon site internet sous Windows avec Wamp, aucun problème. Entre temps, je suis passé sous Mac. J'ai installé alors Mamp et tous les logiciels dont j'ai besoin, tout marche nickel jusqu'à ce que cette erreur PHP s'affiche :
    Warning: Cannot modify header information - headers already sent by...
    ainsi que celle-ci :
    Warning: session_start(): Cannot send session cache limiter - headers already sent
    Elle n'apparaît que sous Mamp... Je ne comprend pas du tout pourquoi elle n'apparaît pas sous Wamp...

    Si quelqu'un pouvait m'aider...

    Merci d'avance.

  2. #2
    Membre actif Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Points : 273
    Points
    273
    Par défaut
    Bonjour !

    Dans un premier temps avec ton code on y verrait plus clair, ensuite pour ton , de forte chance que ce soit dû au fait que tu ne l'aies PAS mis en PREMIER dans ton code

    Pour le reste beh je me répête, montre nous ton code

    Jisig

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Oui bien-sûr.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <?php
    	session_start();
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Authentification</title>
    		<link rel="stylesheet" href="../styles/styleindex.css" />
        </head>
     
        <body>
    		<div id="boite">
    			<?php
    			if(isset($_GET['action']))
    			{
    				if($_GET['action'] != NULL)
    				{
    					switch($_GET['action']) 
    					{
    						case "inscriptions":
    							header('Location: inscription.php');
    						break;
     
    						case "connexion":
    							if(!isset ($_COOKIE['membre']))
    							{
    								$_SESSION['accesninscrit']=2;
    								header('Location: remember.php');
    							}
    							else
    							{
    								$_SESSION['accesninscrit']=2;
    								$_SESSION['bienvenue']=$_SERVER['PHP_AUTH_USER'];
    								header('Location: lesite.php');
    							}
    						break;
     
    						case "site":
    							$_SESSION['accesninscrit']=1;
    							header('Location: lesite.php');
    						break;
    					}
    				}
    			}
     
    			?>
    			<p>Bienvenue sur notre site e-commerce !</p>
    			<a href="index.php?action=connexion" class="lien1" name="inscrit" >Connexion</a>
    			<a href="index.php?action=inscriptions" class="lien2" name="inscription">Inscription</a>
    			<a href="index.php?action=site" class="lien3" name="ninscrit" action="get">Accéder au site</a>
    		</div>
        </body>
    </html>

  4. #4
    Membre actif Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Points : 273
    Points
    273
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <?php
    	session_start();
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Authentification</title>
    		<link rel="stylesheet" href="../styles/styleindex.css" />
        </head>
     
        <body>
    		<div id="boite">
    			<?php
    			if(isset($_GET['action']))
    			{
    				if($_GET['action'] != NULL)
    				{
    					switch($_GET['action']) 
    					{
    						case "inscriptions":
    							header('Location: inscription.php');
    						break;
     
    						case "connexion":
    							if(!isset ($_COOKIE['membre']))
    							{
    								$_SESSION['accesninscrit']=2;
    								header('Location: remember.php');
    							}
    							else
    							{
    								$_SESSION['accesninscrit']=2;
    								$_SESSION['bienvenue']=$_SERVER['PHP_AUTH_USER'];
    								header('Location: lesite.php');
    							}
    						break;
     
    						case "site":
    							$_SESSION['accesninscrit']=1;
    							header('Location: lesite.php');
    						break;
    					}
    				}
    			}
     
    			?>
    			<p>Bienvenue sur notre site e-commerce !</p>
    			<a href="index.php?action=connexion" class="lien1" name="inscrit" >Connexion</a>
    			<a href="index.php?action=inscriptions" class="lien2" name="inscription">Inscription</a>
    			<a href="index.php?action=site" class="lien3" name="ninscrit" action="get">Accéder au site</a>
    		</div>
        </body>
    </html>
    Je suppose que tu as corrigé ton session_start(); ?

    Heu ensuite concernant ton header p:

    http://www.php.net/manual/fr/function.header.php

    N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include ou require, et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Non je ne l'avait pas corrigé mais effectivement c'était bien à cause des headers... merci !!

    J'ai donc réglé le problème sur cette page mais je l'ai encore sur d'autre pages ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
    	session_start();
     
    	//CONNEXION BASE
    	$conn = "host=localhost port=5432 dbname=ecommerce user=postgres password=aze123";
    	$dbconn = pg_connect($conn) or die ("Connexion impossible");
    	//
    	if(isset($_SESSION['accesninscrit']))
    	{
    		if($_SESSION['accesninscrit']!=1 && $_SESSION['accesninscrit']!=2)
    		{
    			echo '<div style="width:400px; height:50px; font-size:20px; text-align:center; background: #EBEBEB; margin:auto; margin-top: 100px; padding:20px; ">
    			Vous n\'etes pas autorise à utiliser cette page.
    			<a href="index.php">Cliquez ici</a> pour etre redirige
    			</div>';
    			exit(0);	
    		}
    	} else {
    		echo '<div style="width:400px; height:50px; font-size:20px; text-align:center; background: #EBEBEB; margin:auto; margin-top: 100px; padding:20px; ">
    			Vous n\'etes pas autorise à utiliser cette page.
    			<a href="index.php">Cliquez ici</a> pour etre redirige
    			</div>';
    			exit(0);
    	}
     
    	if (isset($_GET['action'])) 
    	{
    		if($_GET['action']=="deconnection") //SI L'UTILISATEUR SOUHAITE SE DECONNECTER 
    		{
    			setcookie('membre', NULL, -1);
    			session_destroy ();
    			header('Location: index.php');
    		}
    		if($_GET['action']=="connexion") //SI L'UTILISATEUR SOUHAITE SE CONNECTER 
    		{
    			if (!isset($_COOKIE['membre']) )
    			{
    				if (!isset ($_SERVER['PHP_AUTH_USER']))
    				{
    					header('WWW-Authenticate: Basic realm="Veuillez vous authentifier"');
    					header('HTTP/1.0 401 Pas authorisé');
    						echo '<div style="width:400px; height:50px; font-size:20px; text-align:center; background: #EBEBEB; margin:auto; margin-top: 100px; padding:20px; ">
    							Vous avez abandonne l\'authentification.
    							<a href="lesite.php">Cliquez ici</a> pour etre redirige
    							</div>';
    					exit;
    				}
    ...
    L'erreur est : "Warning: session_start(): Cannot send session cache limiter - headers already sent..."
    Le code n'est pas complet, il serait trop long ^^ et tout ça se trouve avant le DOCTYPE

    Merci de votre aide rapide !

  6. #6
    Membre actif Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Points : 273
    Points
    273
    Par défaut
    C'est un include je suppose. Ton premier dans la page ?

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Non ce n'est pas un include c'est la page du site, le code inséré est l'authentification ou la déconnexion et ensuite il y a le code html.
    Je ne comprend vraiment pas...

  8. #8
    Membre actif Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Points : 273
    Points
    273
    Par défaut
    Deux solutions d'après moi alors, soit voir du côté de mamp ce qui disent sur les fofo, soit si l'envie t'en manques prendre xampp

    Jisig

  9. #9
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Sur mon serveur perso un truc comme ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <html>
    <?php
    header('Location: http://www.example.com/');
    exit;
    ?>
    il fait la redirection. Ayant php 5.4, il SEMBLERAIT que la doc soit incorrecte à partir d'une certaine version de php.

    Donc (toujours hypothèse de ma part), la différence de version de php entre mamp et wamp pourrait expliquer cette différence.

  10. #10
    Membre actif Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Points : 273
    Points
    273
    Par défaut
    Oui mais là sauf erreur de ma part il s'agit du session_start();

    (après toujours plus propre de rediriger sur une autre page avant un quelqconque code html p: )

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    sous Windows avec Wamp, aucun problème. Entre temps, je suis passé sous Mac
    Il y a de grandes chances que tes fichiers soient encodés en UTF-8 avec BOM. Enregistre-les en UTF-8 sans BOM.

  12. #12
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Oui mais là sauf erreur de ma part il s'agit du session_start();
    header ou session_start, c'est le même combat, les cookies étant passés dans l'entête HTTP, et l'identifiant de session passant (par défaut) via un cookie, il ne faut pas que les entêtes http soient envoyés avant de démarrer la session.

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Le problème était bien à cause de l'encodage, j'ai enregistré mes page en UTF8 et plus d'erreur PHP.

    Merci beaucoup !

    Par contre, maintenant les caractères spéciaux ne fonctionne plus (les é, è, etc...)

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/01/2008, 23h18
  2. [Système] redirection php et référencement ?
    Par Overstone dans le forum Langage
    Réponses: 8
    Dernier message: 03/08/2007, 18h04
  3. Redirection php avec données POST et fsockopen
    Par Cylie34 dans le forum Langage
    Réponses: 1
    Dernier message: 26/02/2007, 18h10
  4. [MySQL] Redirection PHP + variable
    Par baudmail dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 30/04/2006, 17h56
  5. Redirection PHP autre que dans un Reader
    Par gwen-al dans le forum Langage
    Réponses: 5
    Dernier message: 18/01/2006, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo