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 :

Pb envoi de formulaire à base de données [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Audiovisuel
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Audiovisuel
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Par défaut Pb envoi de formulaire à base de données
    Bonjour !

    Voilà je me suis fait un petit blog sur mon site avec possibilité pour les visiteurs de laisser des commentaires...

    Mon problème est que l'envoi du commentaire à la base de données ne fonctionne qu'une fois sur 2 ( et je suis gentil ... ).

    Après divers tests je pense que c'est du a un problème de formatage du texte (retour à la ligne, Majuscule, caractères spéciaux, etc... ) mais je n'en suis pas sûr.

    Je vous donne mon code...

    Formulaire (poster.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
     
     
    <form action="photos/writephotos.php?idphoto=<?php echo $idphoto; ?>" method="post">
    <div>
                <strong>Pseudo</strong>
    	    <br/>
                <input size="30" type="text" name="pseudo" />
                <br/><br/>
                <strong>Mail</strong>
                <br/>
                <input size="30" type="text" name="mail" />
                <br/><br/>
                <strong>Commentaire</strong>
                <br/>
                <textarea cols="60" rows="15" name="message"></textarea>
                <br/>
                <input type="submit" value="Envoyer"/>
    </div>
    </form>
    Envoi à la base de données (writephotos.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
     
     
    $pseudo=htmlentities($_POST['pseudo']);
    $commentaire=htmlentities($_POST['message']);
    $email = htmlentities($_POST['mail']);
     
    //Retour à la ligne et stripslashes
    $commentaire=stripslashes(nl2br($commentaire));
     
    //Login et message non vide
    if (trim($commentaire)=="" || trim($pseudo)=="")
    {
            echo "Vous devez remplir les champs 'pseudo' et 'commentaire'!";
            exit;
    }
    else {
     
    $heure = date("H:i");
    $jour = date("d/m/Y");
    $date = $jour." a ".$heure;
    include("_connexion.php");
    mysql_select_db ("photoscomm", $base) ; 
    $sql="INSERT INTO photoscomm (idphoto, date, com, email, pseudo) VALUES ('$idphoto','$date', '$commentaire', '$email', '$pseudo')";
    mysql_query($sql, $base);
     
    }
    echo "Merci $pseudo, ton commentaire a bien été bien enregistré.<br>";
     
    ?>
    Vu que ça marche une fois sur 2 c'est qu'a priori c'est pas trop faux ^^
    Je signal également dans quel type de champs sont stockées les données dans ma base :
    idphoto, int 128 unsigned
    date, varchar 128 latin1_general_ci
    com, text latin1_general_ci
    email, varchar 128 latin1_general_ci
    pseudo, varchar 128 latin1_general_ci

    Voilà j'éspere avoir été assez clair et complet.
    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Audiovisuel
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Audiovisuel
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Par défaut
    Après moultes essais j'ai vu qu'un seul petit caractère faisait tout planté, ... un petit caractère qu'on emploi tout le temps... " ' " (simple cote ^^)

    Je fais donc un petit strtr avant l'envoi ce qui permet de remplacer la cote par un autre caractere.
    Et à l'affichage je fais la même à l'envers

    Voilà voilà, merci moi ^^
    ++

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Alors que la fonction mysql_real_escape_string est prévue pour protéger les données et celle-ci ne se limitent pas à l'apostrophe ...

  4. #4
    Membre confirmé
    Homme Profil pro
    Audiovisuel
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Audiovisuel
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Par défaut
    ho merci beaucoup julp

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

Discussions similaires

  1. Formulaire + Base de données
    Par kinect dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/06/2011, 23h29
  2. Réponses: 6
    Dernier message: 18/02/2011, 17h21
  3. Réponses: 1
    Dernier message: 29/06/2010, 14h23
  4. Réponses: 19
    Dernier message: 15/05/2006, 21h52
  5. Envoi d'une base de données MySQL par e-mail
    Par Paulinho dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/12/2005, 00h22

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