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 :

Souci sur la réalisation d'un livre d'or


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 31
    Par défaut Souci sur la réalisation d'un livre d'or
    Bonjour à tous

    J'ai un petit souci sur l'affichage d'une page PHP au sujet de la réalisation d'un Livre d'or . J'ai bien parcouru le tutoriel de sorte que mon formulaire s'affiche correctement mais lorsque je tape l'adresse de la page(tout le code complet) dans mon navigateur je n'obtiens qu'une page vide. L'ennui est que j'ai aucun message d'erreur qui me signale quoi que ce soit.

    J'ai une bonne configuration de mon serveur Apache (à travers les fichiers httpd.conf, php.ini, config.inc.php) qui utilise PHP comme module.J'arrive à accéder directement à PHPMYDMIN sans problème et je peux me connecter à MySQL vie le prompt. D'ailleurs d'autres pages de mon site s'affichent sans problème à l'exception livre_dor.php.J'ai fait plusieurs vérifications : Affichage du formulaire seul, puis ajout du reste du code pour les requêtes à MySQL.(C'est là que j'ai rien) Mais je vois pas d'éventuelles erreurs. Je ne crois pas que des noms de tables ou de bases de données contenant le caractère _ posent problème .Ce n'est que là que j'ai un doute.L'impression que j'ai est que mon code PHP n'est pas exécuté;ce qui m'amène à cette question :
    <question>est ce que ça a quelque chose à voir avec le fait que PHP soit installé comme module d'Apache. Y a-t-il autre chose dont je devais tenir compte? </question>
    Pour le reste voici le code de mon fichier livre_dor.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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    		 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    	    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    	    <!-- link rel="stylesheet" type="text/css" href="style_div.css"/> -->
    	    <title>Livre d'or - Page d'encodage de vos avis</title>
    	    <style type="text/css">
    	   form, .page
    	   {
    		background-color: F2C8BC;
    		text-align :center;
    	   }
    	   </style>
    	</head>
    	<body>
    	Si ce site vous plaît, veuillez me laisser un message : 
    	<!-- form method="post" -->
    	   <form action="livred_or.php" method="post">
    		<fieldset>
    			<legend>Formulaire pour le livre dor </legend>
    			<label for="pseudo"> Date du jour </label>: 
    			<input type="text" id="pseudo" name="pseudo" /> 
                            <br /><br />
    			<label for="message"> Message </label>: 
    			<textarea row="5" col="25" id="message"  name="message" > </textarea>
    			<br />
    			<input type="submit" value="Envoyer" />
    		</fieldset>
    	  </form>
     
    <p class="page"> 
    <?php
    	mysql_connect("localhost", "usernonroot", "passwdfordb");
    	mysql_select_db("databasename_db");
    	/* 1) Enregistrement d'un message envoyé :  */
    	if(isset($_POST['pseudo']) AND isset($_POST['message'])
    	{
    	     $pseudo = $_POST['pseudo'];
    	     $message = $_POST['message';
    	     $message = nl2br($message);
    	     mysql_query("INSERT INTO livre_dor VALUES ('', '" . $pseudo . "', '" . $message . "')") or die(mysql_error());
    	}	
    	/* 2) Ecriture des liens vers les pages : */
    	// Fixation du nombre de message par page :  
    	$message_number_per_page = 20;
    	// Récupération du nombre total de message : 
    	$contened_message = mysql_query('SELECT COUNT(*) AS nbr_message FROM livre_dor') or die(mysql_error());
    	$message_number_temp = mysql_fetch_array($contened_message);
    	$total_message_number = $message_number_temp['nbr_message'];
    	// Détermination du nombre total de page : 
    	$page_number = ceil($total_message_number/$message_number_per_page );
    	// Affichage des pages 
    	echo 'Page : ';
    	for($i = 1; $i < $page_number; $i++)
    	{
    	   echo '<a href="livre_dor.php?page=' . $i. '">' . $i . '</a>';
    	}
    ?>
    </p>
     
    	<!-- 3) Ecriture des messages  : -->
    <?php
    	if(isset($_GET['page'])
    	{
    		$page = $_GET['page'];		// Récupération du numéro de la page : 
    	}
    	else
    	{
    		$page = 1;	// Si y a pas de page c'est que on se connecte la première fois 
    	}
    	// Recherche du nombre de message à afficher tout en limitant ce nombre par mysql LIMIT
    	$limit_message = ($page - 1)*$message_number_per_page;
    	$message_to_display = mysql_query('SELECT * FROM livre_dor ORDER By id DESC LIMIT ' .  $limit_message. ',' . $message_number_per_page) or die(mysql_error());
    	while($resultat = mysql_fetch_array($message_to_display))
    	{
    		echo '<p><strong>' . $resultat['pseudo'].'</strong> a ecrit : <br />' . $resultat['message'].'</p>';
    	}
    	mysql_close();
    ?>
     
    </body>
    </html>
    Je remercie chacun pour sa disponibilité et son aide pour cette solution.

  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
    Par défaut
    Bonjour,

    Il te manque une parenthese et un crochet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(isset($_POST['pseudo']) AND isset($_POST['message']))
    	{
    	     $pseudo = $_POST['pseudo'];
    	     $message = $_POST['message'];
    Et encore une parenthese :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	if(isset($_GET['page']))
    	{
    D'habitude les erreurs PHP s'affichent bien ?
    Regarde dans ton php.ini comment elles sont configurées.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 31
    Par défaut Souci sur la réalisation d'un livre d'or - partiellement résolu
    Merci pour votre reponse. Ces erreurs avaient effectivement une influence. La page s'affiche correctement maintenant. Cependant j'ai pas de résultat correspondant à l'affichage des messages encodés dans la table. J'ai mis ces variables à ces valeurs dans le ficheir php.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     error_reporting = E_ALL
     display_errors = On
     log_errors = On
    J'ai obtenu un message d'erreur sur la page retournée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    Fatal error: Call to undefined function mysql_connect() in G:\projets\devweb\php\tutos\livre_dor.php on line xx
    
    la ligne indiquée correspond au code PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     mysql_connect("localhost", "usernonroot", "passwdfordb");
    Là je ne comprends pas très bien. Avec le prompt MySQL j'arrive à me connecter en tant que utilisateur usernonroot

    Et la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     mysql> SHOW DATABASES;
    me liste bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     ...
     information_schema
     databasename_db
     test_db
     ...
    Est-ce qu'il y aurait des problèmes de droit d'accès pour usernonroot? Bref où y aurait-il une anomalie dans mon code?

    Merci à tous.

  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
    Par défaut
    Call to undefined function mysql_connect()
    Cela signifie surement que tu n'as pas l'extension mysql, vérifie dans ton php.ini puis dans phpinfo()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/10/2013, 23h20
  2. Réalisation d'un livre interactif sur un site web
    Par jujoluca dans le forum Webdesign & Ergonomie
    Réponses: 2
    Dernier message: 15/05/2012, 11h50
  3. Problème sur la réalisation d'une requête
    Par soso78 dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2005, 13h17
  4. souci sur ajout de données de zone de liste
    Par Tierisa dans le forum IHM
    Réponses: 6
    Dernier message: 27/09/2005, 08h30

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