Bonsoir,
J'ai réalisé un mini-chat et j'ai un problème de redirection avec la fonctionJ'ai 2 fichiers sources. Voici le fichier index.php...
Code : Sélectionner tout - Visualiser dans une fenêtre à part header('Locate: ...');
et le fichier minichat_post.php...
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
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>
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.
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 <?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>
Partager