re,
alors c'est bien ce que j'avais compris.. j'ai vu ça sur le net.. merci lapin!!
mais pourquoi avec le safe mode cela ne fonctionne pas?? que signifie ce mode?
encore merci pour tout! :ccool::ccool:
bonne soirée.
Bisous
Version imprimable
re,
alors c'est bien ce que j'avais compris.. j'ai vu ça sur le net.. merci lapin!!
mais pourquoi avec le safe mode cela ne fonctionne pas?? que signifie ce mode?
encore merci pour tout! :ccool::ccool:
bonne soirée.
Bisous
une partie de la réponse :
http://php.developpez.com/faq/?page=ini#ini_safe-mode
Bonjour,
Pour dire que tout fonctionne à présent. Et j'en suis ravie :P
Par contre juste encore une dernière question. Quand je vais donc dans mon localhost pour afficher mes pages en html ou php sous IE j'ai tout qui s'affiche (images, arrière plan) mais qd j'essaye sous mozilla je n'ai pas les imaes ou mes arrières plan..
est-ce parce que je b'ai pas fait de feuille de style?? (css)
Merci bcp :)
Bizzz
le mieux est de faire une feuille de style à part mais on peut très bien l'incorporer dans la page ou bien directement dans la balise concernée
si ton image de fond ne s'affiche pas dans un navigateur c'est que la balise est mal renseignée
exemple :
ou avec une image qui se trouve ici dans le dossier images)Code:<div style="background:#f8f8f8;">bla bla bla</div>
Code:<div style="background: url(images/image_de_fond.jpg);">bla bla bla</div>
je pense que je vais faire une feuille de style car avec ces balises, je n'ai pas réussi à mettre mon arrière plan..
peut-être que je les utilise mal..
bref.
Je vais tester ça aujourd'hui.
Merci encore.
Salut,
2-3 petits commentaires à la volée :
1)- tu devrais virer ton $sql="SELECT * FROM message";
sinon tu vas afficher tous les messages de ta dB en cas d'erreur, je ne suis pas certain que ça soit le but,
2)- tu devrais ajouter au "my_real_string_escape()" évoqué précédemment un beau htmlspecialchars pour tes variables POST, ça t'évitera les risques d'injection SQL.
3)- Vu le formulaire diabolique, tu peux tout balancer dans une même page, ça t'évitera les redirections et autre refresh en ts genres.Citation:
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
4)- le "safe_mode", il y en a un pour PHP mais aussi un autre global pour SQL. Tous deux sont à paramétrer dans ton fichier de configuration "php.ini". Si tu es sur WAMP, attention, je crois de mémoire qu'il y a plusieurs fichiers php.ini. (apache chroot jail), donc choisis le bon. Etant donnée l'erreur, tu as probablement une ligne du type :
qu'il te faut alors changer enCitation:
[SQL]
sql.safe_mode = On
5)- Quand ça fonctionnera, tu pourras aussi penser à ajouter un contrôle des formats que ton visiteur rentre avec des RegEx. C'est l'utilisation des fonctions preg_match() et preg_match_all(). A savoir pour plus tard.Citation:
[SQL]
sql.safe_mode = Off
6)- Le style, ça se fait une fois que tout fonctionne. Et oui, c'est mieux avec des fichiers de css séparés que tu lies dans les déclaration de ton header.
7)- Bon courage,
8)- Allez, un petit exemple sans les regex, juste pour illustrer mes commentaires :
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>mon formulaire de la mort qui tue</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <!-- Le style c'est la classe, mais dans un fichier css, c'est mieux --> <style type="text/css"> form { text-align:left; } </style> <body> <?php // Traitement des variables $_POST sur la même page (la fameuse "tu_pointes_vers_ta_page_unique_qui_fait_tout.php") // Quand le visiteur aura cliqué sur "envoyer", la page se relancera sur elle-même, les variables $_POST seront alors définies, // et cette partie de code s'executera, donc ta dB sera renseignée if (isset($_POST['pseudo']) AND isset($_POST['message'])) { // Si il y a quelque chose à enregistrer if ($_POST['pseudo'] != NULL AND $_POST['message'] != NULL) { // Connexion à la dB mysql_connect("localhost", "ton_id", "ton_pwd"); $my_connexion= mysql_select_db("ta_base"); // Si ta connexion est bien établie, alors on y va if ($my_connexion) { // Sécurisation des variables reçues avant de les balancer dans la dB $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // etc... ajouter tes autres variables que tu veux récupérer de ton formulaire avec $_POST['valeur_de_name_du_formulaire'] // Là quand tu seras grand, tu pourras ajouter un contrôle plus fin des entrées avec des regex // ... // La requete d'enregistrement dans la dB, // attention, il faut bien mettre les champs dans le même ordre que celui de ta table dans la dB // Dans cet exemple, le premier champ est volontairement vide, car je suppose que la table a un premier champ "autoincremental" mysql_query("INSERT INTO ta_table VALUES('', '$pseudo', '$message')"); // Une fois débuggué, si tu veux éviter les "warnings" potentiels, tu peux ajouter un "@" devant la commande comme ceci // @mysql_query("INSERT INTO ta_table VALUES('', '$pseudo', '$message')"); // Déconnexion de la dB mysql_close(); // Bah voila, le tour est joué :-) } // Sinon, tu peux balancer un message d'erreur qui ne doit te servir qu'au debugage et en rien ne constituer une info pour tes visiteurs hackers else { echo "<br/>désolé, pas de connexion à la dB"; } } } ?> <!-- TON FORMULAIRE HTML --> <form action="tu_pointes_vers_ta_page_unique_qui_fait_tout.php" method="post"> <p> Pseudo : <input type="text" name="pseudo" /><br /> Message : <input type="text" name="message" /><br /> <!-- donc la variable sera à récuperer avec $_POST['message'], c'est a dire la valeur du champ "name" ci-dessus --> <input type="submit" value="Envoyer" /> </p> </form> </body> </html>