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

PHP & Base de données Discussion :

Lier mon formulaire à ma bdd


Sujet :

PHP & Base de données

  1. #21
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut
    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!

    bonne soirée.
    Bisous

  2. #22
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 29

  3. #23
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut
    Bonjour,

    Pour dire que tout fonctionne à présent. Et j'en suis ravie

    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

  4. #24
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 29
    Par défaut
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style="background:#f8f8f8;">bla bla bla</div>
    ou avec une image qui se trouve ici dans le dossier images)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style="background: url(images/image_de_fond.jpg);">bla bla bla</div>

  5. #25
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut
    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.

  6. #26
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    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.
    $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
    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.

    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 :
    [SQL]
    sql.safe_mode = On
    qu'il te faut alors changer en
    [SQL]
    sql.safe_mode = Off
    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.

    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 : 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
    <!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>

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/03/2015, 21h12
  2. [1.x] Problème : Mon formulaire enregistre 2 fois en BDD
    Par kevinQ dans le forum Débuter
    Réponses: 2
    Dernier message: 20/06/2012, 18h55
  3. [MySQL] Mon formulaire envoie des champs vide à ma BDD (PHP/MYSQL)
    Par neoweiter dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 06/07/2009, 08h22
  4. [Système d'aide] Lier mon *.hlp à mon projet
    Par termerair dans le forum MFC
    Réponses: 2
    Dernier message: 18/01/2005, 13h39
  5. [Debutant(e)]mise à jour de mon formulaire via JSP
    Par kouadjalain dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 11/08/2004, 15h43

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