Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 24/12/2011, 19h28   #1
Invité de passage
 
Inscription : décembre 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 12
Points : 0
Points : 0
Par défaut Redirection avec header('location: ')

Bonsoir,
J'ai réalisé un mini-chat et j'ai un problème de redirection avec la fonction J'ai 2 fichiers sources. Voici le fichier index.php...

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<!DOCTYPE html>
<html lang="fr">
	<head>
		<title>Mini-Chat</title>
		<meta charset="utf-8" />
		<link rel="stylesheet" href="index.css" />
	</head>
	<body>
		<form method="post" action="minichat_post.php">
			<?php
				if(isset($_COOKIE['prenom']))
				{
			?>
					<label for="prenom">Votre prenom : </label><input type="text" id="prenom" name="prenom" maxlength="11" value="<?php echo $_COOKIE['prenom'];?>" autofocus required /><br /><br />
			<?php
				}
				else
				{
			?>
				<label for="prenom">Votre prenom : </label><input type="text" id="prenom" name="prenom" maxlength="11" placeholder="Ex : Roxi" autofocus required /><br /><br />
			<?php
				}
			?>
			<textarea name="message" cols="27" rows="5" required>Votre message...</textarea><br /><br />
			<input type="submit" value="Envoyer" />
		</form>
		<?php
		try
		{
			$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
			$bdd = new PDO('mysql:host=10.111.145.45;dbname=marvin11300-test', 'marvin11300', 'vN1aYUXMVc', $pdo_options);
			if(isset($_GET['page']))
			{
				if($_GET['page'] == 'Page 1')
				{
					$selected1 = 'selected';
					$selected2 = '';
					$selected3 = '';
					$selected4 = '';
 
					$req = $bdd->query('SELECT * FROM minichat ORDER BY id DESC LIMIT 0,10');
				}
				else if($_GET['page'] == 'Page 2')
				{
					$selected2 = 'selected';
					$selected1 = '';
					$selected3 = '';
					$selected4 = '';
					$req = $bdd->query('SELECT * FROM minichat ORDER BY id DESC LIMIT 10,10');
				}
				else if($_GET['page'] == 'Page 3')
				{
					$selected3 = 'selected';
					$selected2 = '';
					$selected1 = '';
					$selected4 = '';
					$req = $bdd->query('SELECT * FROM minichat ORDER BY id DESC LIMIT 20,10');
				}
				else
				{
					$selected4 = 'selected';
					$selected2 = '';
					$selected3 = '';
					$selected1 = '';
					$req = $bdd->query('SELECT * FROM minichat ORDER BY id DESC LIMIT 30,10');
				}
			}
			else
			{
				$selected1 = 'selected';
				$selected2 = '';
				$selected3 = '';
				$selected4 = '';
				$req = $bdd->query('SELECT * FROM minichat ORDER BY id DESC LIMIT 0,10');
			}
		?>
		<p>
		<?php
			while($donnees = $req->fetch())
			{			
				echo '<strong>' . strip_tags($donnees['prenom']) . '</strong> : ' . strip_tags($donnees['message']) . '<br />';
			}
		?>
		</p>
		<form method="get" action="index.php">
			<select name="page">
				<option value="Page 1" <?php echo $selected1; ?>>Page 1</option>
				<option value="Page 2" <?php echo $selected2; ?>>Page 2</option>
				<option value="Page 3" <?php echo $selected3; ?>>Page 3</option>
				<option value="Page 4" <?php echo $selected4; ?>>Page 4</option>
			</select>
			<input type="submit" />
		</form>
		<?php
			$req->closeCursor();
		}
		catch (Exception $e)
		{
			die('Erreur : ' . $e->getMessage());
		}
		?>
	</body>
</html>
et le fichier minichat_post.php...

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
<?php
	setcookie('prenom', $_POST['prenom'], time() + 365 * 24 * 3600, null, null, false, true);
?>
<!DOCTYPE html>
<html lang="fr">
	<head>
		<title>Mini-Chat</title>
		<meta charset="utf-8" />
	</head>
	<body>
		<?php
		try
		{
			if(isset($_POST['message']) AND isset($_POST['prenom']) AND $_POST['message'] != 'Votre message...')
			{
				$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
				$bdd = new PDO('mysql:host=10.111.145.45;dbname=marvin11300-test', 'marvin11300', 'vN1aYUXMVc', $pdo_options);
				$req = $bdd->prepare('INSERT INTO minichat(prenom, message) VALUES(:prenom, :message)');
				$req->execute(array(
									'prenom' => $_POST['prenom'],
									'message' => $_POST['message']));
				header('Location: index.php');
			}
			else
			{
				header('Location: index.php');
			}
		}
		catch (Exception $e)
		{
				die('Erreur : ' . $e->getMessage());
		}
		?>
	</body>
</html>
En faisant des recherche, j'ai appris qu'il ne faut rien mettre avant la redirection. Je ne comprend pas comment il ne peux rien avoir avant la redirection. Pouvez vous svp me proposer une solution en m'expliquant pourquoi ce que j'ai fais ne fonctionne pas.
MarvinR18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2011, 21h49   #2
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
la page minichat_post.php semble être uniquement une page de traitement qui redirige systématiquement vers index.php, donc pourquoi vouloir à tout prix afficher une page html (déclaration DTD, html, head,...) si c'est juste pour afficher l'erreur dans le catch, tu peux l'affecter à une variable de session, tu rediriges vers index.php et tu avises en fonction de l’existence ou non de cette variable.
rappel : http://php.net/manual/fr/function.header.php
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2011, 16h23   #3
Invité de passage
 
Inscription : décembre 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 12
Points : 0
Points : 0
Merci Pour ton aide
MarvinR18 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 06h01.


 
 
 
 
Partenaires

Hébergement Web