begin process at 2012 05 30 15:51:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Livre d'or (site du zero)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Livre d'or (site du zero)

mercredi 9 juillet 2008 à 22:14:29 | Livre d'or (site du zero)

sjcbboy

Bonjour à tous. Je voudrais mettre un livre d'or sur le site que je suis en train de faire. J'ai suivi le TP du site du zero dont voici le code:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="fr">
<head>
<title>Livre d'or</title>
<metahttp-equiv="Content-Type"content="text/html; charset=iso-8859-1"/>

<style type="text/css">
form,.pages
{
text-align:center;
}
</style>
</head>
<body>

<formmethod="post"action="livreor.php">
<p>Mon site vous plaît ? Laissez-moi un message !</p>
<p>
Pseudo : <inputname="pseudo"/><br/>
Message :<br/>
<textareaname="message"rows="8"cols="35"></textarea><br/>
<inputtype="submit"value="Envoyer"/>
</p>
</form>

<pclass="pages">

<?php
mysql_connect("localhost","sdz","mot_de_passe");
mysql_select_db("coursphp");

// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------

if(isset($_POST['pseudo'])ANDisset($_POST['message']))
{
$pseudo=mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));// On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$message=mysql_real_escape_string(htmlspecialchars($_POST['message']));// De même pour le message
$message=nl2br($message);// Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

// On peut enfin enregistrer :o)
mysql_query("INSERT INTO livreor VALUES('', '".$pseudo."', '".$message."')");
}

// --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------

// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage=20;// Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages
$retour=mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees=mysql_fetch_array($retour);$totalDesMessages=$donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages=ceil($totalDesMessages/$nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo'Page : ';
for($i=1;$i<=$nombreDePages;$i++)
{
echo'<a href="livreor.php?page='.$i.'">'.$i.'</a> ';
}
?>

</p>

<?php


// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------

if(isset($_GET['page']))
{
$page=$_GET['page'];// On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else// La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page=1;// On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher=($page-1)*$nombreDeMessagesParPage;

$reponse=mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT '.$premierMessageAafficher.', '.$nombreDeMessagesParPage);

while($donnees=mysql_fetch_array($reponse))
{
echo'<p><strong>'.$donnees['pseudo'].'</strong> a écrit :<br />'.$donnees['message'].'</p>';
}

mysql_close();// On n'oublie pas de fermer la connexion à MySQL ;o)
?>

</body>
</html>


au niveau de cette ligne mysql_connect("localhost","sdz","mot_de_passe"); je l'ai remplacé par mysql_connect("localhost", "root", "");
et au niveau de cette ligne mysql_select_db("coursphp") j'ai mis le nom de ma BDD en place de "coursphp"

et j'obtiens le message d'erreur suivant :


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\****\pages\livreor.php on line 89

Voici la ligne 89 :
while($donnees=mysql_fetch_array($reponse))
{

}

Sinon je peux taper un message et je le retrouve bien dans ma BDD, ms je ne peux pas le voir sur la page. Quelqu'un aurait une idée. Désolé pour la longueur du post. Merci

mercredi 9 juillet 2008 à 23:57:11 | Re : Livre d'or (site du zero)

Bling 182

Réponse acceptée !
remplace ton mysql_query(...) par mysql_query(...) or die ("Erreur sql" . mysql_error())

--
Développeur web freelance - Bling182 Dev : http://freelancedev.ovh.org - http://www.bling182.fr
jeudi 10 juillet 2008 à 11:38:36 | Re : Livre d'or (site du zero)

sjcbboy

Bonjour Bling 182. Merci de venir encore m'aider, mais le php j'ai vraiment du mal...

A quelle ligne je dois faire la modif? J'ai essayé d'echanger au niveau de l'etape 1:

 // On peut enfin enregistrer :o)
    mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");

et j'ai le meme message d'erreur

ensuite j'ai essayé d'echanger au niveau de l'étape 3 :
$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

et j'ai le message d'erreur suivant :
Erreur sqlChamp 'id' inconnu dans order clause

Une idée



 

jeudi 10 juillet 2008 à 13:49:19 | Re : Livre d'or (site du zero)

JoJo738

Membre Club
Réponse acceptée !
Lu',

D'après l'erreur ... "Erreur sqlChamp 'id' inconnu dans order clause" le champ id n'existe pas dans ta table livreor ...
Verifie le nom de id (majuscule/minuscule, nom entier, ...) dans ta table

Sinon, le or die(mysql_error()); est à mettre à toutes tes fonctions mysql_query(), et celà à chaque fois. Cela te eprmettra d'avoir une meilleur gestion des erreurs, et un gain de temps non négligeable :p

Si ma reponse te convient, merci de l'accepter ! 
jeudi 10 juillet 2008 à 13:57:03 | Re : Livre d'or (site du zero)

sjcbboy

Ca y est ça marche!!!!!! Dans ma table j'avais mis id_livreor!!!! Ca y c'est modifié et ça fonctionne nickel. C'est un livre d'or simple mais bon ca me suffit. Encore merci Blink 182 et Jojo738!!!!
jeudi 10 juillet 2008 à 17:03:11 | Re : Livre d'or (site du zero)

sjcbboy

Je reviens!!! LOL! Pourriez vous me dire comment je peux faire pour afficher la date et l heure a laquelle le message a été ecrit? Actuellement ça met juste:
pseudo a écrit: message

J'aimerai mettre :
pseudo a écrit le 09 juillet 2008 à 17h02: message

 

Et je voudrais également savoir comment faire pour qu'il y ai retour a la ligne automatiquement pour éviter qu'il y ai une scrollbar horizontale?

Merci

jeudi 10 juillet 2008 à 17:19:18 | Re : Livre d'or (site du zero)

Bling 182

Si t'as un champ 'timestamp' dans ta table, tu peux.
Sinon... Ca va etre plus compliqué.

--
Développeur web freelance - Bling182 Dev : http://freelancedev.ovh.org - http://www.bling182.fr
jeudi 10 juillet 2008 à 17:32:59 | Re : Livre d'or (site du zero)

sjcbboy

et si je rajoute un champ 'timestamp' comment je dois faire?

et pour ce qui est du retour a la ligne automatique tu sais comment je dois faire?

Merci

jeudi 10 juillet 2008 à 18:34:42 | Re : Livre d'or (site du zero)

Bling 182

Bah avec un champ timestamp, suffit d'utiliser la fonction date() avec les bon parametres.
Pour le retour a la ligne, il faut fixer la largeur en CSS, le retour devrait se faire automatiquement.
vendredi 11 juillet 2008 à 10:08:49 | Re : Livre d'or (site du zero)

sjcbboy

je crois que je vais mettre le 'timestamp' de coté car ça a l'air trop compliqué pour moi. Par contre comment je dois faire pour le retour à la ligne automatique. Quelle fonction en CSS je dois appliquer?

1 2

Cette discussion est classée dans : message, page, mysql, post, pseudo


Répondre à ce message

Sujets en rapport avec ce message

Modifier les enregistrements d'une base donée [ par GillesWebmaster ] Bonjour,j'aimerais savoir comment on fait pour créer un petit "module" qui modifie les enregsitrement d'un livre d'or:2pages: -livreor.php             Parse error [ par CCJ ] bonjour voila mon code : if (isset($_POST['pseudo']) AND isset($_POST['message'])) // Si les variables existent {     if ($_POST['pseudo'] != NULL AN Textarea [ par CCJ ] bonjour.je fais actuellement un site et g kelkes blemes pour etre plus calir voici l'adresse : http://assembleur.perso.ados.fr/Acceuil.php?Page=Tchatl Formulaire : La requête MySQL n'est pas exécutée [ par Kevin_fr75 ] Bonjour, J'ai un petit problème avec un formulaire que je fais pour mon site. En fait le formulaire est sur une page, en ensuite envoie vers une autr recuperer dernier message d'une BDD avec requete [ par blinix123 ] Bonjour à tous,Voila, j'ai un mini-chat, dans le quel les gens poste des messages, or lorsque l'on tape sur F5,c'est a dire la touche rafraichir, le d un mini chat [ par mouniklo ] Bonjour à tous je voudrais intégrer un minichat à mon site.Mais, et oui il y à toujours un mais j'ai une fabuleuse erreur qui fait que ça ne fonctionn date problème [ par sphynx666 ] method= Condition [ par Lobb88 ] Bonjour, je voudrais savoir comment empêcher l'écriture dans la base MYSQL si deux même valeur y sont rentré à la suite:                               problème formulaire de contac [ par seldgine ] bonjour,j'aurai besoin de votre aide svp!!voilà j'ai créé un formulaire de contact en html et css puis en php sur une autre page.En se qui concerne le


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales