Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/03/2006, 09h41   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2004
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 60
Points : 13
Points : 13
Par défaut [Cookies] Ouverture d'une page dans une nouvelle fenètre

Bonjour,

J'ais une page Html, et dans une zone de texte, j'affiche un formulaire d'authentification, lorsque l'utilisateur valide ce formulaire je vérifie sont login et mot de passe, si l'authentification aboutie je dépose un cookie et j'affiche la page "espace_membre" avec cette ligne de code ;

Code :
1
2
 
include ("espace_membre.php");
Mon gros problème est que ma nouvelle page s'affiche dans ma zonz de texte! Alors je voudrais savoir si il est possible d'ouvrir ma page dans une nouvelle fenetre ou alors de fermer la page d'authentification pour ensuite afficher ma page espace_membre.

Merci.
cach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 09h44   #2
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
tu fait ton formulaire de vérification. une fois que tu le valide, tu vérifie bien que le mec existe (avant de renvoyer toute info au navigateur).

Si oui, alors tu peux te rediriger avec la fonction header();

si non, tu affiches un message d'erreur
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 10h33   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2004
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 60
Points : 13
Points : 13
Bonjour,

Je ne comprend pas, comment utiliser la fonction headers?
cach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 10h36   #4
Membre habitué
 
Inscription : décembre 2005
Messages : 137
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 137
Points : 105
Points : 105
Tu peux dire à ta page de s'ouvrir dans une nouvelle fenêtre avec un target="_blank"
Bluespike62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 10h37   #5
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
Code :
header("Location: mapage.html");
mais attention :

Citation:
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 affichges 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 génèreront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 10h43   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Non, tu ne peux pas obliger le client à fermer une fenêtre. Ou plutôt, ne le fais pas.
Faire un popup est limite également : n'oublie pas la quantité de bloqueurs de popups qui circulent sur le marché, y compris en standard dans les navigateurs...

Si vraiment tu souhaites le faire, je crains que tu sois obligé de passer par du JavaScript. Je crois que les méthodes dont tu as besoin s'appellent window.open() et window.close(). Il te suffit de les mettre dans une page blanche, dans le bon ordre.
Là encore, je te le désonseille à plusieurs niveaux, que te laisse trouver tout seul ^^.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 11h52   #7
Candidat au titre de Membre du Club
 
Inscription : avril 2004
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 60
Points : 13
Points : 13
J'ais toujour la même erreur, en faite l'utilisateur saisie les informations pour s'authentifier, et lorsque j'ais vérifié que c'étais bien un utilisateur inscri je dépose le cookie et j'appel ma fonction qui ce trouve au tous début de ma page :

Code :
1
2
3
4
5
 
function appel_page()
{
  header("Location: page0007.php");
}
et donc je me retrouve avec l'erreur suivante :
Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\wamp\root\ansi.fr\Site html\ansi_fichiers\page0004.php:19) in C:\Program Files\wamp\root\ansi.fr\Site html\ansi_fichiers\page0004.php on line 4

Existe t'il d'autre solution,

merci.
cach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 11h59   #8
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
==> redirection javascript

sinon ton header ne fonctionne pas, parce que tu ne lis pas bien ce que l'on te dit de faire, titoumimi t'a prévenu de ça...

pour que la fonction header() fonctionne, il ne faut pas que les entêtes du fichier html aient déjà été envoyés !! donc aucun echo avant la fonction header, ni code HTML, éviter aussi les include / require et les saut de lignes, si il existe des include avant le header, penser à vérifier que cet include n'envoie pas de html non plus...

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 12h14   #9
Candidat au titre de Membre du Club
 
Inscription : avril 2004
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 60
Points : 13
Points : 13
J'ais bien compris et il n'y a dailleur aucun echo n'y aucun instruction avan Header mis a part la déclaration de la fonction qui execute header ma question est faut t'il que header soit exécuté avant l'envoye des entète de mon fichier (au quel cas je suis coincé) ou faut t'il simplement que le header soit écris avant tout autre instruction.

Merci

Ps : qu'appelez vous exactement les entête?
cach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 12h29   #10
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
un exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?php
// fonction qui redirige
function test($value) {
   if($value) {
       header("Location: autrepage.html");
       exit();
   }
}
 
// mets 0 si tu ne veux pas rediriger
test(1);
 
echo "je suis du html donc dés que je suis dans le tanpon php, c'est trop tard pour faire une fonction header() en php...";
 
?>
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 14h33   #11
Candidat au titre de Membre du Club
 
Inscription : avril 2004
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 60
Points : 13
Points : 13
Et ceci ne mercherais donc pas :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php 
// fonction qui redirige 
function test($value) { 
   if($value) { 
       header("Location: autrepage.html"); 
       exit(); 
   } 
} 
 
// mets 0 si tu ne veux pas rediriger 
 
 
echo "je suis du html donc dés que je suis dans le tanpon php, c'est trop 
tard pour faire une fonction header() en php..."; 
 
test(1); 
?>
cach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 14h36   #12
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Citation:
Envoyé par cach
Et ceci ne mercherais donc pas :
voila...
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 14h47   #13
Candidat au titre de Membre du Club
 
Inscription : avril 2004
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 60
Points : 13
Points : 13
Ba je suis bloqué alors comment faire je suis obligé d'avoir du html pour lui demander son pseudo et pass puis un bouton de validation et lorsqu'il valide je verfie et j'appel ma nouvel page?

Comment fait on pour valider ce saisie si je ne peu pas appeller d'autre page?

Merci.
cach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 14h55   #14
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
pour valider la saisie, tu valides bien ton formulaire :
tu as bien une page spécifiée en paramètre du "action" de ton form :
partant de là, tu effectues ta vérification soit dans une autre page, soit en haut (ou en bas) de la page de formulaire, si ton traitement est inclus dans celle-ci. en mettant juste une condition genre if mon_form est soumis, hop traitement, et hop redirection...

j'ai du mal à comprendre ton problème en fait ...
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 15h17   #15
Candidat au titre de Membre du Club
 
Inscription : avril 2004
Messages : 60
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 60
Points : 13
Points : 13
Voila je vous monttre mon code ce serra plus simple :

Code :
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
 function affichage_formulaire()
   { ?>
	<p><a href="page0006.php">Vous n'êtes pas inscrit, cliquez ici!</a></p>
	<script language="javascript">
 function verif_saisie() {
  if(document.inscription.formlogin.value == '') {
  alert("Vous devez saisir votre login !");
  return false;
 }
 else
  return true;
}
 
 
 function verif_pwd() {
  if(document.inscription.formpassword.value == '') {
  alert("Vous devez saisir votre mot de passe !");
  return false;
 }
 else
  return true;
}
</script>
<form method="post" action="page0004.php" name="inscription" onSubmit="return verif_saisie() &amp;&amp; verif_pwd();">
<p>Saisir votre login :</p>
<p>&nbsp;<input type="text" name="formlogin" size="20"></p>
<p>Votre mot de passe :</p>
<p><input type="password" name="formpassword" size="20">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&;&nbsp;&nbsp; Si vous avez oublié votre mot de passe, <a class="standard" href="page0005.php">cliquez ici.</a></p>
Valider : <input type="submit" name="formvalidation" value="OK">
		<p>
		<img border="0" src="../../image/ANSI.JPG" width="155" height="113" align="right"></p>
		<table style="margin-left: 500px">
			&nbsp;</table>
	</form>
	<?php
    }
 
function verifie_authentification()
{
   global $formlogin, $formpassword, $login, $pwd;
 		$login=($_POST['formlogin']);
 		$pwd = ($_POST['formpassword']);
 	        //Connection à la base de données :
                $db=mysql_connect("127.0.0.1","root","");
                mysql_selectdb("ansi", $db);
 
                $sql = "select * from ansi_utilisateur where util_login = '".$login."' and util_mdp = '".$pwd."';";
                $execute_requete = mysql_query($sql) or die ("Erreur sur l'authentification : <b>$sql</b>");
                if (mysql_num_rows($execute_requete)==0)
                {
                   echo $sql;
                   ?>
	<script language="javascript">
                           alert("Erreur de login ou de mot de passe!");
                   </script>
	<?php
 
                   die;
                   include ("authentification.php");
                }
                else
                {
                  $cookieauthentification = $login;
	echo ("Bienvenu, '".$login."'");
 
 
                }
}
 
If (isset($_POST['formvalidation']))
   verifie_authentification(); 
Else
   affichage_formulaire();
?>
En ésperant que vous pourrez m'aider, voila à l'endroit et je met :
echo ("Bienvenu, '".$login."'");

j'aimerais appeler une nouvelle page mais d'après ce que j'ais compris ce n'est pas possible étant donné que les entète on déja été envoyé?

Merci.
cach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 15h34   #16
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
exactement, c'est tes fonctions javascript qui foutent le bazar...

passe plutot comme ca :

Code :
1
2
3
4
5
6
 
If (isset($_POST['formvalidation'])) {
   //ton code HTML:
} Else {
   //ton autre code HTML;
}
en tout début de page

et fait gaffe à la syntaxe de tes if .. else... c'est comme ca :
Code :
1
2
3
4
5
6
 
if (conditions) {   // crochet ouvrant
   //code;
} else {             // crochets fermants ET ouvrants
   //code;
}                       // crochet fermant
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h06.


 
 
 
 
Partenaires

Hébergement Web