Probleme livre or php/mysql
Tags :
- MySQL
- Programmation
Dernière réponse : dans Programmation
wahhh
30 Août 2009 12:12:49
Bonjour a tous
Je fais appelle a vous car j'ai besoin de votre aide. Je suis en train de creer un livre d'or mais je rencontre un probleme que je n'arrive pas a résoudre.
Lorsque les 20 messages sont affichés la page 1 (qui doit normalement se creer) n'apparait pas et je ne comprend pas pourquoi. En modifiant un peu, le probleme s'aggrave c'est a dire que lorsque a la place de
je met
soit 20 page se creer soit des pages se creer mais de maniere pas logique ( au lieu d'avoir 123 j'ai 294)
j'ai essayer de chercher mes erreurs, je sais qu'il y en a et ou precisement (de la ligne 44 a la ligne 58)
mais je n'arrive pas a les resoudres ...je fais donc appelle a vous.
Dans l'attente d'une reponse de votre part, je vous dit merci.
Voici le script :
PS : je vous demande de ne pas me donner la solution directement mais de m'expliquer mes erreurs.
Merci de votre comprehension
Je fais appelle a vous car j'ai besoin de votre aide. Je suis en train de creer un livre d'or mais je rencontre un probleme que je n'arrive pas a résoudre.
Lorsque les 20 messages sont affichés la page 1 (qui doit normalement se creer) n'apparait pas et je ne comprend pas pourquoi. En modifiant un peu, le probleme s'aggrave c'est a dire que lorsque a la place de
for ($i = 0; $i == $nombre_de_message_par_page ; $i++)
je met
for ($i = 0; $i <= $nombre_de_message_par_page ; $i++)
soit 20 page se creer soit des pages se creer mais de maniere pas logique ( au lieu d'avoir 123 j'ai 294)
j'ai essayer de chercher mes erreurs, je sais qu'il y en a et ou precisement (de la ligne 44 a la ligne 58)
mais je n'arrive pas a les resoudres ...je fais donc appelle a vous.
Dans l'attente d'une reponse de votre part, je vous dit merci.
Voici le script :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
<html xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" >
<head>
<title>Bienvenue sur le future site de momo-ben2A </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
mysql_connect ('localhost', 'momo-ben2A', 'vegeta191090');
mysql_select_db ('entrainement');
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
mysql_query ("INSERT INTO livreor VALUES ('', '$pseudo', '$message')")or die (mysql_error());
mysql_close();
?>
<?php
mysql_connect ('localhost', 'momo-ben2A', 'vegeta191090');
mysql_select_db ('entrainement');
$recup = mysql_query ("SELECT * FROM livreor ORDER BY id DESC LIMIT 0,20") or die (mysql_error());
while ($donnees = mysql_fetch_array($recup))
{
echo $donnees['pseudo'].' a dit : '.$donnees['message'].'<br/>';
}
mysql_close();
}
else
{
?>
<form method="post" action="livreor.php">
<label for="pseudo">pseudo</label> : <input type="text" id="pseudo" name="pseudo" maxlength="15"/><br/>
<textarea name="message">Votre commentaire</textarea><br/>
<input type="submit" value="Valider"/><input type="reset" value="Effacer"/>
</form>
<?php
}
?>
<?php
mysql_connect ('localhost', 'momo-ben2A', 'vegeta191090');
mysql_select_db ('entrainement');
$nombre_de_message_par_page = 20;
$nombre_de_message_total = mysql_query("SELECT id FROM livreor");
$nombre_de_page = ceil($nombre_de_message_total/$nombre_de_message_par_page);
echo '<a href="livreor.php"> page initiale </a><br/>';
echo 'page : ';
for ($i = 0; $i == $nombre_de_message_par_page ; $i++)
{
echo '<a href="livreor.php?page='.$i.'>'.$i.'</a>';
}
mysql_close();
?>
</body>
</html>
PS : je vous demande de ne pas me donner la solution directement mais de m'expliquer mes erreurs.
Merci de votre comprehension
Autres pages sur : probleme livre php mysql
SiM07
30 Août 2009 12:58:33
Des erreurs, oui mais quoi ?
Sinon il y a un truc que je comprend pas, tu créés un $_GET['page'] pour ta pagination, c'est bien sauf que dans ton code tu n'as rien derrière qui suit. Ce n'est pas un SELECT if FROM livreor qu'il faut faire, tu risques d'avoir de gros problème d'incohérence sinon. Il faut faire un SELECT COUNT(*) FROM livreor;
Sinon $nombre_de_message_total n'est pas le nombre de message mais une ressource sql. Le résultat est
Pour connaitre la page tu fait un petit code genre :
if(is_numeric($_GET['page'])) $page=$_GET['page']
else $page=0;
Ensuite ta requête de sélection doit être :
Il est toujours préférable de lister l'ensemble des champs que tu souhaites sélectionner en bannir le *
Dans le même genre d'erreur tu as ta requête d'insertion qui devrait être qqchose comme :
Sinon si un jour tu souhaites rajouter une colonne dans ta table alors ton code ne marchera plus sans être modifier ... Et au bout de plusieurs requête un peu partout dans le code cela devient invivable.
Sinon le code me semble relativement correct, même si 2 mysql_connect() c'est un peu bizarre, théoriquement dans du code, on ne doit jamais avoir 2 portions de code qui ont été copier/coller (bon ça c'est l'idéal et lorsqu'on est débutant c'est quasi impossible).
Sinon il y a un truc que je comprend pas, tu créés un $_GET['page'] pour ta pagination, c'est bien sauf que dans ton code tu n'as rien derrière qui suit. Ce n'est pas un SELECT if FROM livreor qu'il faut faire, tu risques d'avoir de gros problème d'incohérence sinon. Il faut faire un SELECT COUNT(*) FROM livreor;
Sinon $nombre_de_message_total n'est pas le nombre de message mais une ressource sql. Le résultat est
$nombre_de_message_total = mysql_fetch_row($nombre_de_message_total);
$nombre_de_message_total = $nombre_de_message_total [0];
Pour connaitre la page tu fait un petit code genre :
if(is_numeric($_GET['page'])) $page=$_GET['page']
else $page=0;
Ensuite ta requête de sélection doit être :
$sql = "SELECT pseudo, message FROM livreor ORDER BY id DESC LIMIT $page,20"
Il est toujours préférable de lister l'ensemble des champs que tu souhaites sélectionner en bannir le *
Dans le même genre d'erreur tu as ta requête d'insertion qui devrait être qqchose comme :
$sql = "INSERT INTO livreor (pseudo, message) VALUES ('$pseudo', '$message')"
Sinon si un jour tu souhaites rajouter une colonne dans ta table alors ton code ne marchera plus sans être modifier ... Et au bout de plusieurs requête un peu partout dans le code cela devient invivable.
Sinon le code me semble relativement correct, même si 2 mysql_connect() c'est un peu bizarre, théoriquement dans du code, on ne doit jamais avoir 2 portions de code qui ont été copier/coller (bon ça c'est l'idéal et lorsqu'on est débutant c'est quasi impossible).
m
0
l
wahhh
30 Août 2009 17:45:52
Contenus similaires
- probleme script php livre d'or - Forum
- un livre d'or sur mon site modeles et codes - Solutions
- Problème Modification et affichage contenu site via formulaire php/mysql - Forum
- [Tuto]Ajouter un livre d'or à son site gratuitement ! - Forum
- Probleme de INSERT INTO (php/mysql) - Forum
- Création de livre d'or en html?? - Forum
SiM07
30 Août 2009 18:02:23
C'est pas le principe de la documentation d'expliquer ça ?
is_numeric() sur php.net
En bref, tu lui passes n'importe quoi en paramètre (parfait donc pour une variable venant de $_GET, $8POST, $_SERVER ... qui sont non sécurisée et modifiable par l'utilisateur (oui $_SERVER)) et il te répond vrai ou faut.
is_numeric() sur php.net
En bref, tu lui passes n'importe quoi en paramètre (parfait donc pour une variable venant de $_GET, $8POST, $_SERVER ... qui sont non sécurisée et modifiable par l'utilisateur (oui $_SERVER)) et il te répond vrai ou faut.
m
0
l
wahhh
30 Août 2009 18:07:59
G31
30 Août 2009 23:41:03
C'est pas très très propre ça... Déjà, je te conseil de mettre une connexion pour toute la page (mysql_connect en tout en haut et mysql_close en tout en bas). Puis après, indente bien tes codes (http://fr.wikipedia.org/wiki/Style_d%27indentation#Styles_d.27indentation_en_C). Et question peut être bête : pourquoi tu ne fais afficher les messages du livre d'or seulement si on en envoie un ? Tu te fatigues pour rien.
Où as-tu appris ton PHP ?
Et voici une page qui pourrais bien t'aider : http://www.siteduzero.com/tutoriel-3-14547-tp-un-livre-...
Où as-tu appris ton PHP ?
Et voici une page qui pourrais bien t'aider : http://www.siteduzero.com/tutoriel-3-14547-tp-un-livre-...
m
0
l
wahhh
30 Août 2009 23:50:30
wahhh
30 Août 2009 23:50:56
wahhh
30 Août 2009 23:52:22
allstar27
31 Août 2009 00:20:25
m
0
l
G31
31 Août 2009 00:30:15
wahhh a dit :
il est pas bien mon php ? en meme temps sa fait meme pas 1 mois que j'ai commencé le php ...Pour tout te dire, il n'est pas terrible. Parce que moi aussi ça fait pas plus de 2 mois que je l'ai commencé, tu peux déjà voir un site à mon nom. (myhorse.fr.nf) Il faudrait que tu suives les conseils de Mateo sur SdZ et le miens que j'ai donnés plus haut, tu sauveras tes codes d'un bon nombre d'erreurs, tu verras.
m
0
l
SiM07
31 Août 2009 08:08:35
wahhh
31 Août 2009 10:50:45
en même temps je trouve cela normal qu'il y ait un peu le foutoire je suis seul et je ne reçois aucune aide sauf sur les forums de toute maniere cette année je rentre en bts je pense que sa ira bcp mieux apres pour tout tout ce qui est script, le SDZ et super genial je m'en sert tout le temps mais il 'y a pas l'aide que j'attend (des explications personnalisées) mais sa sera reglera a la rentrée sa. en tout cas je vous remercie a tous pour le soutient que vous m'apportez a chaque fois que je post ici. Ici les reponses sont bien expliqués et sont serieuses. Perso je n'ose plus trop posté sur le SDZ, on m'allume a la premiere occasion lorsque je dit une erreur. L'erreur est humaine apres tout, pourquoi on me bombarde alors ? sa je ne sais pas et apres tout c'est en faisant des erreurs qu'on apprend
m
0
l
SiM07
31 Août 2009 11:37:11
G31
31 Août 2009 11:45:07
Si tu le dis, j'ai le choix entre tout ça ou payer 15 000 €. T'as choisi quoi, toi ?
m
0
l
SiM07
31 Août 2009 14:42:52
Apprendre-PHP est un très bon site une fois qu'on a des petites bases, perso j'ai tendance à beaucoup apprécié lephpfacile même si il y a quelques points moyens dans les cours (genre les or die() ou les requête sql INSERT INTO toto VALUES).
Sinon il y a le bouquin PHP5 avancé qui est comme son nom de l'indique pas aussi pour les débutant et est une très bonne bible à 50€.
Sinon il y a le bouquin PHP5 avancé qui est comme son nom de l'indique pas aussi pour les débutant et est une très bonne bible à 50€.
m
0
l
G31
31 Août 2009 15:59:20
SiM07
31 Août 2009 16:02:23
Il est assez pédagogique mais pousse à un grand nombre de mauvaise pratique. Il se concentre que sur ce qui est visible et absolument pas sur des points très important comme la sécurité, gérer les erreurs, les validations du contenu etc ... Résultat on retrouve des sites passoires.
Et c'est souvent ces gens qui codent qui sont là à dire, utiliser Firefox, IE n'est pas sécurisé ! Pourtant la plus grosse faille de sécu c'est eux.
Et c'est souvent ces gens qui codent qui sont là à dire, utiliser Firefox, IE n'est pas sécurisé ! Pourtant la plus grosse faille de sécu c'est eux.
m
0
l
G31
31 Août 2009 16:55:48
SiM07 a dit :
Il est assez pédagogique mais pousse à un grand nombre de mauvaise pratique. Il se concentre que sur ce qui est visible et absolument pas sur des points très important comme la sécurité, gérer les erreurs, les validations du contenu etc ... Résultat on retrouve des sites passoires.Et c'est souvent ces gens qui codent qui sont là à dire, utiliser Firefox, IE n'est pas sécurisé ! Pourtant la plus grosse faille de sécu c'est eux.
Pourtant, j'ai appris à sécuriser. J'avoue, mon site est optimisé pour Firefox, c'est le HTML/CSS qui ne s'affiche pas complètement sur les autres navigateurs (et je préfère firefox

m
0
l
SiM07
31 Août 2009 17:08:53
Je parle sécurité, genre attaque XSS, XSRF, régénération des session_id etc ... Ton site peut être complètement laid, ne passer que sur un seul navigateur mais dans tous les cas il doit être sécurisé.
Ne pas apprendre dès le début à une personne qu'on ne stock pas en clair des mots de passe, qu'on sale le mot de passe avant de le passer dans une fonction de hachage, ça c'est prudent.
Après je ne sais pas si on peut dire qu'une personne qui dans sa 404 à je ne sais combien de balise <html> ouvrant et de déclaration de DOCTYPE connaisse le HTML ...
Ne pas apprendre dès le début à une personne qu'on ne stock pas en clair des mots de passe, qu'on sale le mot de passe avant de le passer dans une fonction de hachage, ça c'est prudent.
Après je ne sais pas si on peut dire qu'une personne qui dans sa 404 à je ne sais combien de balise <html> ouvrant et de déclaration de DOCTYPE connaisse le HTML ...
m
0
l
G31
31 Août 2009 22:44:44
SiM07 a dit :
Je parle sécurité, genre attaque XSS, XSRF, régénération des session_id etc ... Ton site peut être complètement laid, ne passer que sur un seul navigateur mais dans tous les cas il doit être sécurisé. Ne pas apprendre dès le début à une personne qu'on ne stock pas en clair des mots de passe, qu'on sale le mot de passe avant de le passer dans une fonction de hachage, ça c'est prudent.
Après je ne sais pas si on peut dire qu'une personne qui dans sa 404 à je ne sais combien de balise <html> ouvrant et de déclaration de DOCTYPE connaisse le HTML ...
OK. T'as raison pour les mots de passe, on a du me l'expliquer sur le forum du SdZ. Et t'as raison aussi pour le premier paragraphe, c'est tout à fait inconnu pour moi. Un petit cours s'impose.
m
0
l
SiM07
31 Août 2009 22:50:36
wahhh
1 Septembre 2009 12:17:48
en parlant de securité j'ai appris a faire des fichiers .htaccess et .htpasswd mon probleme et que pour ce qui est de montrer le chemin de .htpasswd dans .htaccess je suis vraiment limité, je m'explique, je veux mettre mes 2 fichiers sur le disque dur, mais je ne peux pas car quand je clique sur le fichier qui permet de donner le chemin du fichier dans lequel il est situé (disque dur), sa ne marche pas, la seul maniere que j'ai trouvé et de mettre le fichier dans le repertoire de wamp et ainsi il m'indique le chemin du fichier de serveur. Si je sors le fichier du repertoir wamp, cela ne marche pas je suis donc obliger de mettre mes 2 fichiers dans le repertoire .
Vous pouvez m'aider a résoudre ce probleme ?
Vous pouvez m'aider a résoudre ce probleme ?
m
0
l
SiM07
1 Septembre 2009 12:31:52
Bah c'est tout à fait logique ... le .htaccess est une surcouche de configuration Apache. Si tu mets le fichier ailleurs que dans un répertoire "mappé" par apache alors ça ne marche plus.
Par défaut, sur un système type debian le répertoire par défaut est /var/www/ c'est donc le répertoire le plus bas ou tu peu placer un fichier .htaccess quis'appliquera ensuite à toute la branche à partir de là.
Par défaut, sur un système type debian le répertoire par défaut est /var/www/ c'est donc le répertoire le plus bas ou tu peu placer un fichier .htaccess quis'appliquera ensuite à toute la branche à partir de là.
m
0
l
wahhh
1 Septembre 2009 12:41:28
SiM07
1 Septembre 2009 13:51:11
Ah bah non ! Après tu peux configurer ton serveur ftp pour qu'il ai un rayon d'action limité en fonction des utilisateurs etc. le .htaccess est je le répète spécifique au serveur Apache httpd (à ne pas confondre avec mon avatar par exemple).
Pour le disque dur, une majorité des systèmes de fichier permettent de gérer les droits. Sous Windows le NTFS le permet. Sous Unix like c'est très simple.
Pour le disque dur, une majorité des systèmes de fichier permettent de gérer les droits. Sous Windows le NTFS le permet. Sous Unix like c'est très simple.
m
0
l
Contenus similaires
- Comment inclure un livre d'or sur mon site ? Forum
- installation d'un livre d'or ou forum sur mon site web Forum
- Installer un livre d'or Free Forum
- Script livre d'or + email Forum
- Html==>Livre d'or et compteur Forum
- Créer un livre d'or Forum
- Voir plus