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 :

affichage apres insertion mysql [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut affichage apres insertion mysql
    Bonjour

    J'ai un formulaire (qui fonctionne) avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method="post" action="add_news_FR.php">
    <table style="width:100%; border-width: 1px;border-style: solid; border-color: #7F221A;">
    .....mon formulaire.....
    </table>
    </form>
    et une page add_news_FR.php pour rentrer l'enregistrement

    Quand je clic sur le bouton enregistrer, l'enregistrement se fait, mais par contre j'ai une erreur 500 car url devient www.monsite.com/add_news_FR.php

    Pouvez-vous me dire pourquoi
    D'autre part je voudrais afficher "Enregistrement effectué avec succes", comment faire

    Merci pour vos réponses

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    j'ai une erreur 500 car url devient www.monsite.com/add_news_FR.php
    Pourquoi penses-tu que le changement de page provoque l'erreur ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    aucune idée sinon j'aurais régle de problème

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Erreur 500 est une erreur générique du serveur.
    Cela peut provenir d'un problème de configuration du serveur (une erreur sur un fichier .htaccess par exemple) et c'est aussi ce qu'on obtient lorsqu'une erreur PHP survient sur un serveur configuré pour ne pas afficher les erreurs.

    Si ton serveur est configuré pour ne pas afficher les erreurs, ce n'est pas très pratique pour developper mais il possède surement un fichier de log des erreurs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Je ne comprends pas, cela se produit uniquement quand je rentre mon formulaire dans ma table mysql
    et pas sur les autres pages

    quand l'enregistrement est fait cela me dirige vers http://www.monsite.com/add_news_FR.php

    avec HTTP500

    J'ai le meme formulaire sur un autre site, et je n'ai pas ce problème, de quoi cela peut-il provenir

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2010
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 144
    Points : 241
    Points
    241
    Par défaut
    Il faudrait voir à quoi ressemble le code du fichier add_news_FR.php pour pouvoir répondre à la question.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Voici mon code :

    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
    <?php
    session_start();
    // variables
    $cejour=date("d/m/Y"); 
    $year=date("Y");
    $mois=date("m");
    // On commence par récupérer les champs 
    if(isset($_POST['titre_FR']))      $titre_FR=$_POST['titre_FR'];
    else      $titre_FR="";
     
    if(isset($_POST['texte_FR']))      $texte_FR=$_POST['texte_FR'];
    else      $texte_FR="";
     
    // On vérifie si les champs sont vides 
    if(empty($titre_FR) OR empty($texte_FR)) 
        { 
     
        } 
    // Aucun champ n'est vide, on peut enregistrer dans la table 
    else      
        { 
           // connexion à la base
    	try {
    	$pdo_options[PDO::ATTR_ERRMODE]=PDO::ERRMODE_EXCEPTION;
    	$bdd=new PDO('mysql:host=localhost;dbname=mabase','','',$pdo_options);	
     
    	} catch (Exception $e) {
    	die('Erreur:'.$e->getMessage());
    	}
    	// On recherche le dernier enregistrement
        	$sql = $bdd->query( "SELECT num_ordre FROM LesNews_FR" );
    	while($data=$sql->fetch())
    	{
    	$dernierID=$data['num_ordre'];
    	}
    	// On ajoute une news dans la table
    	$new_num=$dernierID+1;
    	$req = $bdd->prepare('INSERT INTO LesNews_FR(num_ordre, lan, lemois, ladate, date_evenement, la_new) VALUES(:lenum, :v_lan, :v_lemois, :v_ladate, :v_dte, :v_news)');
    	$req->execute(array(
    	'lenum' => $new_num,
    	'v_lan' => $year,
    	'v_lemois' => $mois,
    	'v_ladate' => $cejour,
    	'v_dte' => $titre_FR,    
    	'v_news' => $texte_FR)); 
    	$bdd->closeCursor();
     	echo "<p style=\"text-align: center;\">".$titre_FR." est enregistrée</p>"; 
        } 
     
    ?>

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    As-tu consulté ton log d'erreurs PHP comme je t'ai indiqué ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    je ne sais comment proceder

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    un grand classique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	$req = $bdd->prepare('INSERT INTO LesNews_FR (num_ordre, lan, lemois, ladate, date_evenement, la_new) VALUES (:lenum, :v_lan, :v_lemois, :v_ladate, :v_dte, :v_news)');
    	$req->execute(array(
    	':lenum' => $new_num,
    	':v_lan' => $year,
    	':v_lemois' => $mois,
    	':v_ladate' => $cejour,
    	':v_dte' => $titre_FR,    
    	':v_news' => $texte_FR));
    Les ":" font partie intégrante du paramètre.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    toujours meme probleme
    je ne sais pas comment y acceder

  12. #12
    Invité
    Invité(e)
    Par défaut
    Nous n'avons pas accès à ton ordinateur, ni à ton cerveau.

    Si tu ne nous donnes pas suffisamment d'informations, on ne peut que faire des suppositions.
    • tu es en local ?
    • via Wampserver ? easyPHP ? ...
    • as-tu une page en ligne à montrer ?
    • ...

    Essaie aussi ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    try {
    	$req = $bdd->prepare('INSERT INTO LesNews_FR (num_ordre, lan, lemois, ladate, date_evenement, la_new) VALUES (:lenum, :v_lan, :v_lemois, :v_ladate, :v_dte, :v_news)');
    	$req->execute(array(
    	':lenum' => $new_num,
    	':v_lan' => $year,
    	':v_lemois' => $mois,
    	':v_ladate' => $cejour,
    	':v_dte' => $titre_FR,    
    	':v_news' => $texte_FR));
    	$bdd->closeCursor();
    } catch (Exception $e) {
    die('Erreur SQL :'.$e->getMessage());
    }
    Est-ce qu'une erreur/alerte s'affiche ?

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Sur quoi fais-tu ton développement ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    je fais mon développement avec PHP eclipse

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Dans le log j'ai ce message :
    [04-Sep-2013 13:47:34 UTC] PHP Fatal error: Call to undefined method PDO::closeCursor() in /srv/data/web/vhosts/www.monsite.com/htdocs/add_news_FR.php on line 45

  16. #16
    Invité
    Invité(e)
    Par défaut
    Je crois que c'est clair.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    pour moi ca ne l'est pas

  18. #18
    Invité
    Invité(e)
    Par défaut
    $bdd->closeCursor();
    D'où l'intérêt d'afficher/montrer les messages d'erreur, qui indiquent aussi où elle se trouve ("line 45").

    N.B. On peut même très bien se passer de cette instruction closeCursor(), pas forcément utile.

    Avais-tu au moins testé avec ce que j'ai proposé ici ?

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Merci, apres cette modif l'enregistrement se fait, je n'ai plus l'erreur 500
    mais par contre cela m'affiche la page add_news_FR et ne revient pas sur la page du formulaire
    Pourquoi ?

  20. #20
    Invité
    Invité(e)
    Par défaut
    Parce que tu ne lui as pas demandé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="page_form.php">Retour au formulaire</a>
    OU voici une technique : Formulaire et Traitement sur la même page
    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
    <?php if(session_id()=='') { session_start(); }
    // TRAITEMENT SI LE FORM A ETE POSTE
    if (isset($_SESSION['random_OK'], $_POST['randomformOK'])
    	&& $_POST['randomformOK']==$_SESSION['random_OK']) {
    	include('./form-traiter.php'); // FICHIER DE TRAITEMENT
    }
    // Protection contre "actualiser la page" ou envoi depuis l'extérieur (vol de formulaire)
    unset($_POST);
    $_SESSION['random_OK'] = rand(100000,999999); // nombre aléatoire
    // -----------------------
    // AFFICHAGE DU FORMULAIRE
    ?>
    	<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    		<input type="hidden" name="randomformOK" value="<?php echo $_SESSION['random_OK']; ?>" />
    	..........
    	</form>
    • $_SESSION['random_OK'] contient un nombre aléatoire
    • il est mis dans un input hidden du formulaire => il sera alors récupéré via $_POST['randomformOK']

    SI on recharge la page (F5):
    • $_SESSION['random_OK'] est modifié
    • MAIS $_POST['randomformOK'] NON.

    Ils sont différents => le traitement ne se fait pas (une 2ème fois).
    Dernière modification par Invité ; 05/09/2013 à 09h30.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Affichage popup après insertion dans une table
    Par PowerGel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/03/2012, 12h08
  2. [PowerBuilder] Prob. d'affichage après insertion de contrôle
    Par Oakenshield dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 30/01/2006, 14h37
  3. Affichage d'une image après insertion dans une base
    Par leloup84 dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2006, 16h34
  4. [VB.NET] [ADO.NET] Récupérer id après insertion
    Par nashouille dans le forum Accès aux données
    Réponses: 9
    Dernier message: 09/01/2005, 15h54
  5. récupérer valeur d'un ID après insertion
    Par rikidi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/08/2003, 22h21

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