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

Langage PHP Discussion :

Ajout livre or [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Ajout livre or
    Bonjour
    J'essaye en vain de réaliser un programme de gestion d'avis (=+/- livre d'or )
    La connexion a une base mysql semble correcte
    La base message comprend 4 champs ( nom, date, email, message)
    Ci joint le fichier " ajout "
    J'envoie des messages test et chaque fois que je veux consulter, il indique:
    " pas de message" ( j'utilise un autre fichier " livre" pour cela.
    Y a t il une erreur dans le fichier "ajout"?
    En fait il semble ne rien ajouter dans la base...
    Merci de votre aide
    DB

  2. #2
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Bonjour,

    Je présume que la page ajout est la page appelée lors de l'envoi du formulaire ?

    Si oui, tu ne récupère pas les valeurs de tes champs saisis.

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nom = ereg_replace("[\]", " ", $nom);
    $message=ereg_replace("[\]", " ", $message);
    $mail=ereg_replace("[\]", " ", $mail);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nom = ereg_replace("[\]", " ", $_POST['nom']);
    $message=ereg_replace("[\]", " ", $_POST['message']);
    $mail=ereg_replace("[\]", " ", $_POST['mail']);
    $_POST['xxxxx'] : les 'xxxx' représentent la valeur de tes attributs "name" des balises "input" de ton formulaire.

    Si tu as besoin de plus d'explications n'hésite pas à demander.

    Redis-nous.

    Cordialement,
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Super, enfin presque..
    Tu as raison, c'est bien la page appellée lors de l'envoi du message.

    J'ai maintenant une reconnaissance des messages, mais quant je souhaite les visualiser, il n'indique rien.
    Dans la base sql il y a lorsque je l'examine:
    query empty.
    Donc il semble qu'il n'a rien enregistré.
    je joins aussi le petit script de lecture des messages.
    En tout cas, c'est sympa de m'aider.
    Je "sèche" depus plusieurs jours sur ce cas.

    Cordialement
    Daniel

  4. #4
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Bonjour,

    Il y a quelques petites corrections à apporter que voici :

    ajout_livre.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $requete = 'INSERT INTO message(nom, email, message, date) VALUES("' . $nom . '", "' . $mail . '", "' . $data . '", "' . $date . '")';
     
    // On récupère l'id de connexion
    $link = connexion();
     
    //Ne pas oublier de mettre l'id de la connexion SQL
    mysql_close($link);
    connexion.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function connexion()
    {
    	$id = mysql_connect("localhost", "root", "");
     
    	mysql_select_db("developpez", $id);
            return $id;
    }
    Avec ceci les enregistrements se font correctement.

    Il en est de même pour ta page livre.php : récupérer l'id de connexion et le transmettre à la fonction de fermeture de connexion SQL. Fonction qui d'ailleurs devrait être placée à la fin du script.

    Redis-nous si tu as encore des soucis.

    Cordialement,

    PS: regarde mon MP aussi
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Torgar Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nom = ereg_replace("[\]", " ", $_POST['nom']);
    $message=ereg_replace("[\]", " ", $_POST['message']);
    $mail=ereg_replace("[\]", " ", $_POST['mail']);
    quelle est l'utilité de ce code ???

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour et merci pour les réponses.

    En tant que novice , j'ai appris que ce code permettrait d'éviter les conflits et d'enlever le / que php ajoute devant tout caractère qui serait en conflit.
    On m'a conseillé d'introduire ce code dans ce genre de script justement pour éviter que le / n'apparaisse si le visiteur tape un caractère genre ' ou "...
    Est ce vrailent utile à votre avis?
    Je fait les autres corrections ce soir.
    Je vous tiens tous au courant en fin de soirée ou demain matin des résultats.

    Bonne soirée.

    DB

    ps les fichiers joints sont déjà effacés; mais merci aussi pour le conseil.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par danielbosman Voir le message
    Bonjour et merci pour les réponses.

    En tant que novice , j'ai appris que ce code permettrait d'éviter les conflits et d'enlever le / que php ajoute devant tout caractère qui serait en conflit.
    On m'a conseillé d'introduire ce code dans ce genre de script justement pour éviter que le / n'apparaisse si le visiteur tape un caractère genre ' ou "...
    Est ce vrailent utile à votre avis?
    Je fait les autres corrections ce soir.
    Je vous tiens tous au courant en fin de soirée ou demain matin des résultats.

    Bonne soirée.

    DB

    ps les fichiers joints sont déjà effacés; mais merci aussi pour le conseil.
    http://www.php.net/manual/fr/security.magicquotes.php
    http://www.php.net/manual/fr/security.database.php
    http://fr2.php.net/manual/fr/function.stripslashes.php
    http://fr2.php.net/manual/fr/functio...ape-string.php

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 6
    Points
    6
    Par défaut livre
    Bonjour

    Voici les 2 scripts corrigés en fonction des conseils reçus (j'espère ne pas avoir fait d'erreur )
    Les messages sont maintenant bien enregistrés sur la base.
    Lorsque je teste le programme, le transfert vers livre.php ne se fait pas correctement j'ai le message:


    Warning: Cannot modify header information - headers already sent by (output started at /homez.406/bmiweb/www/connexion.php:14) in /homez.406/bmiweb/www/ajout_livre.php on line 42

    Y aurait il une incompatibilité avec la fonction return mise dans le programme connexion.php?

    Par contre la liste des messages reçus est bonne, j'ai trouvé mon erreur ( fallait les 2 ++ devant$i):

    for($i=0;$i<$nbmsg;++$i)
    Fichiers attachés Fichiers attachés

  9. #9
    Membre régulier Avatar de moogli
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 58
    Points : 102
    Points
    102
    Par défaut
    Salut,

    Il y a quelque chose qui s'affiche dans connexion.php à la ligne 14.

    s'il n'y a pas de echo / print (ou autre dans le style) dans ce fichier ou que la ligne 14 est la dernière, vérifie qu'il n'y a aucune ligne vide après le ?> il ne faut pas non plus d'espace, tabulation, ni aucun caractère "blanc".

    Pour que header fonctionne il ne faut aucun affichage avant.

    J'ai rapidement regardé ton code :
    - tu devrait utiliser <?php et non <? car ce n'est pas la configuration par défaut de php (php5)
    - tu ne devrait plus utiliser ereg_* qui sont "dépcréciée" en php5
    - regarde bien les lien de Stealth35 concernant la base de donnée c'est très important, ton code permet les injections SQL si tu ne modifie pas.


    @+

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour
    Super ! Merci des conseils reçus. Cela fonctionne, reste simplement la mise en page à améliorer.
    J'avais effectivement une ligne vide à la fin du fichier connexion.php.

    Quant on y pense j'ai cherché une semaine pour une ligne vide et deux++ qui manquaient dans une boucle for...Faut être mordu...

    Une question de principe toutefois:
    Comment si je supprime erag éviter que la messagerie coince si il y a / par exemple? J'ai fait le test simplement avec la date 23/03/2011 et la base n'a pas enregistré le message.

  11. #11
    Membre régulier Avatar de moogli
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 58
    Points : 102
    Points
    102
    Par défaut
    utilise les fonctions preg_*, dans ce cas preg_replace, en lieu et place des ereg_*

    pour la date, si tu utilise un champ de type date c'est normal vue que le format que tu utilise est le format français et non anglo-saxon (Y m d).


    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Ajout d'un message dans mon livre d'or
    Par kayne dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/01/2009, 22h28

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