Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3240 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Mon script de livre d'or plante

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mon script de livre d'or plante

n°1799666
Giboulding​ue
Ouais, Quoi ?
Posté le 13-10-2008 à 19:22:58  profilanswer
 

Bien le bonjour à tous.
 
Je suis en ce moment en train de fabriquer un site Web, mais forcément, c'est en comptant des bémols, j'en ai eu pas mal, mais là, faudrait vraiment l'aide de quelqu'un qui s'y connaît.
 
Voici le passage de la page de code concernée (c'est le script du ivre d'or, quoi) :
 
 
 
       

Code :
  1. <div id="corps">
  2. <form method="post" action="livre.php">
  3. <p>Une critique ? Une suggestion ? Exposer tout ça içi !</p>
  4. <p>Pseudo :<input name="pseudo"/></p>
  5. <p>Message : <br/>
  6. <textarea name="message" id="description" rows="6" cols="50"></textarea>
  7. <input type="submit" value="Envoyer" />
  8. </p>
  9. </form>
  10. <p>
  11. <?php
  12. mysql_connect ("localhost", "root", "" );
  13. mysql_select_db ("localhost", "root", "" );
  14. if (isset ($_POST['pseudo']) AND isset ($_POST['message']))
  15. {
  16. $pseudo = mysql_real_escape_string(htmlspecialchars($_POST["pseudo"]));
  17. $message = mysql_real_escape_string(htmlspecialchars($_POST["message"]));
  18. $message = nbl2r($message);
  19. mysql_query = ("INSERT INTO livreor VALUES ("'', '" . $pseudo . "', '" . $message . "'" )" );
  20. }
  21. $nombreDeMessagesParPages = 20;
  22. $retour = mysql_query = ('SELECT COUNT (*) AS nb_messages FROM livreor');
  23. $donnees = mysql_fetch_array($retour); $totalDesMessages = $donnees['nb_messages'];
  24. $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPages);
  25. echo ("Page :" );
  26. for ($i = 1 ; $i <= $nombreDePages ; $i++)
  27. {
  28. echo '<a href="livre.php?page=' . $i . '">' . $i . '</a>';
  29. }
  30. if (isset ($_GET['page']))
  31. {
  32. $page = $_GET['page'];
  33. }
  34. else
  35. {
  36. $page = 1;
  37. }
  38. $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  39. $reponse = mysql_query('SELECT FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', . ' $nombreDeMessagesParPage ' . ');
  40. while ($donnees = mysql_fetch_array ($reponse))
  41. {
  42. echo '<p>' . $donnees['pseudo'] . ' a écrit : ' . $donnees['message'] . '</p>';
  43. }
  44. mysql_close = ("" );
  45. ?>
  46.        </div>
  47.        <div id="pied_de_page">
  48.        <p><a href="#haut_de_page">Inutile de rester ici, remonter donc !</a></p>
  49.    <p>The Pixels's World.free.fr, site créer par Gibouldingue.</p>
  50.    <p>Tout droit réserver.</p>
  51.        </div> 
  52.    </body>
  53. </html>


 
Je crois avoir en quelques sortes le problème
(mais naturellement, j'ai pas pu le régler, sinon j'aurais pas posté =p) :
 
Le gros du problèmes (parce que précisément, je suis pas sûr que ça soit utiles) se situe au "echo" ou se trouve le lien en XHTML, à partir de là, le code est afficher comme un  texte (avec son CSS en prime), et c'est pas du tout ce que je, veux
 
Pour couronner le tout, MySQL refuse d'executer mes demandes...
 
C'est un sacré merdier, donc je compte sur vous pour me sortir de là. =D
 
Merçi d'avançe.

mood
Publicité
Posté le 13-10-2008 à 19:22:58  profilanswer
 

n°1799722
yellu
Posté le 13-10-2008 à 21:02:03  profilanswer
 

$retour = mysql_query = ('SELECT COUNT (*) AS nb_messages FROM livreor');
 
hum :)

n°1799907
ouiouioui1​0
ChuckNorris sait diviser par 0
Posté le 14-10-2008 à 12:06:08  profilanswer
 

et mysql_query = ("INSERT INTO livreor VALUES ("'', '" . $pseudo . "', '" . $message . "'" )" );
en mysql_query("INSERT INTO `livreor` VALUES ('', '$pseudo', '$message')" );
 
et mysql_close = ("" );
en mysql_close();

n°1800146
Giboulding​ue
Ouais, Quoi ?
Posté le 14-10-2008 à 19:08:22  profilanswer
 

C'est bizarre, ça n'a strictement rien changer au script...

n°1800224
Profil sup​primé
Posté le 14-10-2008 à 23:24:33  answer
 

Salut !
 
 
beurk ce code ...
 
- htmlspecialchars() est à utiliser UNIQUEMENT à l'affichage (saisie utilisateur, données provenant de la base), pas dans les requêtes SQL
 

Citation :

mysql_query = ("INSERT INTO livreor VALUES ("'', '" . $pseudo . "', '" . $message . "'" )" );


- ce serait nettement plus clair en spécifiant les champs !
- "'', '"  : illisible et inutile
 

Citation :

  • $reponse = mysql_query('SELECT FROM livreor ORDER BY id DESC LIMIT

' . $premierMessageAafficher . ', . ' $nombreDeMessagesParPage ' . ');
 


- SELECT [manquerait pas quelque chose du style nom des champs à récupérer ici ! ] FROM
- utilise au minimum et impérativement error_reporting(E_ALL) quand tu fais du développement, ton post sur HFR aurais pu etre ainsi évité
- tu ne gères pas le cas ou une requete ne retourne rien ou plante...


Message édité par Profil supprimé le 14-10-2008 à 23:25:18
n°1800715
Giboulding​ue
Ouais, Quoi ?
Posté le 15-10-2008 à 20:41:48  profilanswer
 

Bon, je vais paraître certainement chiant, mais dans tes explications, tu n'est pas toujours très clairs, spike.
 
- Quand tu dis que le htmlspecialchars est à utiliser uniquement à l'affichage, ahem, je ne comprend pas très bien...
 
-Spécifier les champs, euh... Ils sont normalement spécifier entre deux  
" ' ' ".
 
-Dans le SELECT, ils fallait spécifier le nom des champs, ouais, mais comment ? Enfin, quoi taper, quoi.
 
-Le error_reporting(E_ALL), ils se met où ?
 
-Et puis, de quoi tu parles pour gérer les erreurs, toussa...
 
Enfin bref, soit plus clairs stp.
 
(C'est chiant les débutants, non ?)

n°1801162
Profil sup​primé
Posté le 16-10-2008 à 21:45:46  answer
 

Gibouldingue a écrit :

Bon, je vais paraître certainement chiant, mais dans tes explications, tu n'est pas toujours très clairs, spike.
 
- Quand tu dis que le htmlspecialchars est à utiliser uniquement à l'affichage, ahem, je ne comprend pas très bien...
 
-Spécifier les champs, euh... Ils sont normalement spécifier entre deux  
" ' ' ".
 
-Dans le SELECT, ils fallait spécifier le nom des champs, ouais, mais comment ? Enfin, quoi taper, quoi.
 
-Le error_reporting(E_ALL), ils se met où ?
 
-Et puis, de quoi tu parles pour gérer les erreurs, toussa...
 
Enfin bref, soit plus clairs stp.
 
(C'est chiant les débutants, non ?)


'lut
 
dans l'ordre :
- htmlspecialchars(et dérivés) sert à protéger l'éventuels caractères indésirables saisis par l'utilisateur :
il ne faut jamais faire confiance à un internaute  
->par exemple :un internaute saisi du contenu HTML ou JS dans un champ, tu l'inseres en base, mais quand tu l'affichera il sera interpretée telle quel au point de te pourrir la mise en page
 
- ("INSERT INTO livreor VALUES ("'', '" . $pseudo . "', '" . $message . "'" )" );   : ca ce sont des valeurs des champs, pas leur nom
 
 
- error_reporting se met en début de script, la première ligne à mettre même (a moins de le configurer correctement dans la conf php)

n°1801625
Giboulding​ue
Ouais, Quoi ?
Posté le 17-10-2008 à 19:34:12  profilanswer
 

Bon, j'ai suivis tes indications (mais au fait, je sais ce qu'est un htmlspecialchars), mais il n'y a toujours pas le moindre changement.
 
En plus, le error_reporting fonctionne pas.
 
Là, je trouve ça bizarre...

n°1801707
Profil sup​primé
Posté le 18-10-2008 à 01:46:00  answer
 

Gibouldingue a écrit :

Bon, j'ai suivis tes indications (mais au fait, je sais ce qu'est un htmlspecialchars), mais il n'y a toujours pas le moindre changement.
 
En plus, le error_reporting fonctionne pas.
 
Là, je trouve ça bizarre...


l'error reporting est censé te dire, si ton php est bien configuré, que cela :
 
mysql_select_db ("localhost", "root", "" )  
 
c'est du jamais vu : http://fr2.php.net/mysql_select_db
t'est loin d'êtres les bons parametres, que tu as confondu avec mysql_connect

n°1801874
Giboulding​ue
Ouais, Quoi ?
Posté le 18-10-2008 à 18:24:39  profilanswer
 

J'ai en effet confondu au mysql_select_db et j'ai mis le nom de ma BDD plutôt que le code qui me sert à me connecter (en gros, c'était une étourderie), mais ça ne marche pas d'avantage, c'est très bizarre.
 
Par contre, quelques chose se produit : La page se recharge de nouveau une fois que j'ai cliqué sur envoyer , ce qui veut dire que la requête est effectué, mais rien ne s'affiche, quand à l'affiche du reste du code, j'en suis toujours au même problème...

mood
Publicité
Posté le 18-10-2008 à 18:24:39  profilanswer
 

n°1802113
ionik
Posté le 19-10-2008 à 17:32:45  profilanswer
 

Je dirai pas que j'en ai fait un sans base de donnée pour un amis ce week-end >.<
 
Tout par gestion sur fichier xml :D


---------------
Recette cookeo Recette de cuisine
n°1802157
Profil sup​primé
Posté le 19-10-2008 à 20:17:41  answer
 

'lut
 
j'ai horreur des messages du genre "ca marche pas" sans chercher à comprendre
 
je t'ai déjà spécifié que tu dois placer error_reporting(E_ALL) en haut de ton script
ainsi que display_errors à on afin d'afficher les erreurs  (cherche du coté ini_set()
 
et la tu verras toutes tes erreurs

n°1802238
l0g4n
Expert en tout :o
Posté le 20-10-2008 à 10:18:34  profilanswer
 

Euh dites, la base de donnée, c'est root ? parceque la ya :
# mysql_connect ("localhost", "root", "" );
# mysql_select_db ("localhost", "root", "" );
Le voila ton problème !
mysql_select_db, faut une base de donnée en argument, pas une connexion !
EDIT : oups, j'ai pas lu ton dernier message.


Message édité par l0g4n le 20-10-2008 à 10:19:09
n°1802798
Giboulding​ue
Ouais, Quoi ?
Posté le 21-10-2008 à 14:02:34  profilanswer
 


 
J'ai placé mon error_reporting(E_ALL) sur le haut du script, et essayer plein d'autres solutions pour régler ce problème, mais rien, donc bon.
 
En plus, tu m'as pas parlé du display_error, de on et tout ça dans ton précédent post, je suis pas devin.
 
En fait, je pense que pour comprendre, faudrait que tu prenne une partie du script que j'ai affiché là-haut pour le modifier en rajoutant tes fonctions de recherches d'erreur, comme ça, ce serait clairs.

n°1802944
Profil sup​primé
Posté le 21-10-2008 à 20:02:16  answer
 

hello
 
- en haut du script :  
ini_set('display_errors','on);
error_reporting(E_ALL);
 
- si ca passe pas, crée un fichier .htaccess à la racine de ton site avec  
php_flag error_reporting E_ALL
php_flag display_errors on
 
- place des "or die(mysql_error())" à la suite de tes fonctions mysql_ pour vérifier que ce ne soit pas simplement un soucis d'identifiants
 
- ligne 19 : t'as inversé des lettres dans la fonction utilisée...


Message édité par Profil supprimé le 21-10-2008 à 20:03:34

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Mon script de livre d'or plante

 

Sujets relatifs
[TUTO] - [Batch Dos] Script changement de mot de passe ADanti spam sur le livre d'or avec frontpage
Probleme script kix32Recherche script gallerie photos !
besoin d'aide par rapport a un action scriptLivre Virtuel Quel logiciel ??
Balise <form> qui ne renvoie rien à mon script PHPlibpq - insert plante
Script pour scanner un réseau et connaitre les hosts connectéPetit question sur le résultat d'une heure dans un script
Plus de sujets relatifs à : Mon script de livre d'or plante


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR