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 :

Formulaire et mysql


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Étudiant Réseaux et Télécoms
    Inscrit en
    Octobre 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant Réseaux et Télécoms
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 121
    Par défaut Formulaire et mysql
    Bonsoir à tous

    Je viens ici car j'ai un problème avec un script PHP.

    Je m'explique, l'utilisateur pour ajouter un commentaire doit remplir un formulaire et celui-ci est envoyé un page .php de traitement.
    Mais quand on valide le formulaire, celà me renvoit à index.php et me déconnecte.
    Je ne vois pas mon erreur, je vous mets ci-dessous mes deux fichiers concernés

    Le fichier commentaires.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
    <?php session_start();
    	  include('includes/config.php');	
    ?>
    <!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">
       <head>
           <title>IUT-RT - Accueil</title>
           <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	   <link rel="stylesheet" media="screen" type="text/css" title="Design par défaut" href="css/design.css" />
       </head>
       <body>
     
     <div id="header">
    	<?php
    		include('includes/menu.php');		
    	?>
     </div>
     <div id="corps">
     <?php
    $reponse = $bdd->prepare('SELECT * FROM actualites,utilisateurs where actu_auteur_id=utilisateurs_id and actu_id=?');
    $reponse->execute(array($_GET['actu_id']));
    while ($donnees = $reponse->fetch())
    {
    ?>
     
    <div class="news">
     
     
    <h2><?php echo htmlspecialchars($donnees['actu_titre']); ?></h2><hr />
     
    <p>News redige par:<strong class="pseudo"><?php echo $donnees['utilisateur_login']; ?></strong> &nbsp &nbsp le:<em classe="date"><?php echo $donnees['actu_date']; ?></em> <hr />
    <p><?php echo nl2br(htmlspecialchars($donnees['actu_contenu']));?></p>
     
     
    </div>
     
    <?php
    }
     
    $reponse->closeCursor(); // Termine le traitement de la requête
     
    ?>
     
     
     
    <h1>Les Derniers commentaires</h1>
    <?php
    $reponse = $bdd->prepare('SELECT * FROM utilisateurs,commentaires where com_auteur_id=utilisateurs_id and com_actu_id=? order by com_date');
    $reponse->execute(array($_GET['actu_id']));
    while ($donnees = $reponse->fetch())
    {
    ?>
    <div class="news">
     
    <p>Commentaire redige par:<strong class="pseudo"><?php echo $donnees['utilisateur_login']; ?></strong> &nbsp &nbsp le:<em classe="date"><?php echo $donnees['com_date']; ?></em> <hr />
    <p><?php echo nl2br(htmlspecialchars($donnees['com_contenu']));?></p>
    </div>
    <?php
    }
     
    $reponse->closeCursor(); // Termine le traitement de la requête
     
    ?>
     
     
     
    <div class="news">
     
    <form method="post" action="traitement_commentaires.php">
       <p>
           <label for="commentaires"><h3>Ajout Commentaire</h3><hr /></label>
           <textarea name="commentaires" id="commentaires" rows="10" cols="50"></textarea>   
    	   <p>
    	   <input type="submit"  /> <input type="button" value="Annuler" />
    	   <input type="hidden" name="actu_id" value="<?php echo $_GET['actu_id']; ?>" />
    	   </p>
     
       </p>
     
    </form>
     
    </div>
    </div>
     <div id="footer">
           <?php
    	       include('includes/footer.php');
           ?>
    </div>
     
     
       </body>
    </html>
    Le fichier traitement_commentaires.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
    <?php	session_start();
    include('includes/config.php');	
     
     
    $date = Date("d/m/Y H:i:s");
     
     
    if(empty($_POST['commentaires'])) 
    {
     
    }
    else
    {
     
    $reponse = $bdd->prepare('INSERT INTO commentaires(com_actu_id,com_auteur_id,com_contenu,com_date) VALUES(:com_actu_id,:com_auteur_id,:com_contenu,:com_date)
    ');
    	$reponse->execute(array(
    	'com_actu_id' => $_POST['actu_id'],
    	'com_auteur_id' => $_SESSION['id'],
    	'com_contenu' => $_POST['commentaires'],
    	'com_date' => $date
    	));	
    }	
     
    ?>

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Salut,
    tu n'aurais pas du code javascript qui modifie l'attribut action de ton formulaire ?

  3. #3
    Membre confirmé

    Homme Profil pro
    Étudiant Réseaux et Télécoms
    Inscrit en
    Octobre 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant Réseaux et Télécoms
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 121
    Par défaut
    Bonjour,

    Non, je n'ai aucun code javascript

    Merci de votre aide

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Je ne vois rien dans ton code qui cloche.
    C'est peut être un comportement du coté d'un .htaccess ou alors dans ton config.php, je ne vois que ça.

    Pour tenter de comprendre, un peu de débug à mon avis s'impose.
    Mets y un point d'arrêt avec un minimum d'info dès la 1ère ligne de traitement_commentaires.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    print_r($_POST);
    exit(); // Point d'arrêt (on stop tout ici)
     
    session_start();
    include('includes/config.php');	
    ?>
    Un fois validé le formulaire, tu devrais voir ce que contient POST.
    S'il y a encore une redirection vers l'index + déconnexion, alors voir coté .htaccess

    Donc si tu vois bien le POST, alors le problème est plus loin.
    Suffit de faire un couper/coller le print_r et le exit() juste après le include du config.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    session_start();
    include('includes/config.php');	
     
    print_r($_POST);
    exit(); // Point d'arrêt (on stop tout ici)
    ?>
    S'il y a une redirection, alors faudra prospecter ce qui ce fait dans ton config.php
    Tu peux adopter la même méthode dans le config.php, de le 1ère ligne jusqu'à tomber sur la redirection.
    Mais regarde tout de même au niveau des fonction header().
    Sinon, c'est plus loin, il faut déplacer et descendre les 2 lignes (point d'arrêt) plus bas au fur et à mesure.


    Bref ... à part certains cas vicelard, on peu pister une erreur jusqu'à tomber sur la ligne pile poil qui cause problème.
    Et c'est particulièrement efficace quand il y a des redirections comme ici.

  5. #5
    Membre confirmé

    Homme Profil pro
    Étudiant Réseaux et Télécoms
    Inscrit en
    Octobre 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant Réseaux et Télécoms
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 121
    Par défaut
    Bonjour

    J'ai essayer donc d'afficher la variable $_POST avant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session_start();
    include('includes/config.php');
    Rien ne s'affiche et je suis toujours redirigé sur index.php

    Je n'ai pas de fichier .htaccess, hélas donc ca ne peut provenir de celà.

    Je suis un peu perdu là ^^ Je dois bien l'avouer

  6. #6
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    ton fichier traitement_commentaires.php se trouve bien au même niveau que commentaires.php ? Il se peut qu'à défaut d'une page 404 (sur une adresse incorrecte) tu sois renvoyé vers la page index.

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    J'ai essayer donc d'afficher la variable $_POST avant
    As tu mis le point d'arrêt ? le exit() ?
    C'est ça qui stop le script.

    Si tu l'as fais, et que ça redirige encore, alors il y a peut être erreur sur le nom du fichier (genre traitement_commentaire.php sans S à commentaire).
    C'est comme si tu pointais sur un fichier qui n'existait pas, du coup le index.php est le fichier par défaut.


    Juste comme ça :
    Si tu tape directement dans l'URL un truc du genre : -http://.../bidule.php . Qu'est ce qui se passe ?

Discussions similaires

  1. [MySQL] Formulaire PHP ->MySQL
    Par shub dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 09/02/2010, 22h42
  2. Formulaire PHP-MySQL
    Par fara morgana dans le forum Langage
    Réponses: 11
    Dernier message: 09/05/2006, 15h46
  3. [MySQL] Bug Formulaire PHP-MySQL
    Par Davboc dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 01/03/2006, 15h15
  4. comment inserer les entrée d'une formulaire dans MySQL
    Par horri dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 28/02/2006, 19h16
  5. inserer des donnees issues d'un formulaire dans mysql
    Par sousou207 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 01/12/2005, 23h50

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