logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» [PHP] aide script minichat
Username:
Password:
Pages: [1] 2
  Imprimer  
Auteur Fil de discussion: [PHP] aide script minichat  (Lu 11109 fois)
sago
Profil challenge

Classement : 5690/54390

Membre Junior
**
Hors ligne Hors ligne
Messages: 71


Voir le profil
« le: 21 Octobre 2007 à 18:30:52 »

bonjour,
J'apprend le php et j'en suis a se script, qui est faux

j'aimerai savoir pour quoi, la page web m'indique que l'erreur est ligne 23

Code:
<html>
<body>

<p>
Veuillez entrez votre pseudo et votre mot de pass
</p>
<form action="minichat.php" method="post" target="_blank">
<p><input type="text" name="pseudo"/> <br>
<input type="text" name="message"/> <br> <input type="submit" value="valider" /> </p>
</form>
<?php

mysql_connect
("localhost""sago""passs");
mysql_select_db("sago");


$message mysql_real_escape_string(htmlspecialchars($_POST['message']));
$pseudo mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));

if( 
$pseudo != NULL AND $message != NULL)
{
mysql_query("INSERT INTO mini_chat VALUES('', '$pseudo', '$message'));
$reponse = mysql_query("SELECT FROM mini_chat ORDER BY id DESC"); 

while(
$donnees = mysql_fetch_array($reponse) );
 {
 ?>

 pseudo:  <?php echo $donnees['pseudo']; ?> <br>
 <br>
 message: <br>
 <?php echo $donnees['message']; 
}
else
{
echo 
'ta pas taper ton pseudo/message';
}
mysql_close();


?>


</body>
</html>


merci beaucoup de votre aide
« Dernière édition: 21 Octobre 2007 à 20:52:26 par the lsd » Journalisée

Zze warrior atitude Powaaaaaa
:p
Chilly
Relecteur

Profil challenge

Classement : 266/54390

Membre Senior
*
Hors ligne Hors ligne
Messages: 307


Voir le profil
« #1 le: 21 Octobre 2007 à 18:38:06 »

bonjour,
J'apprend le php et j'en suis a se script, qui est faux

j'aimerai savoir pour quoi, la page web m'indique que l'erreur est ligne 23

alors ce qui est faux :
"j'apprend" : "j'apprends"
"a se script" : "à ce script"
"j'aimerai" : "j'aimerais"
"pour quoi" : "pourquoi"

et dans le code "Veuillez entrez votre pseudo et votre mot de pass" : "Veuillez entrer votre pseudo et votre mot de passe".

Sinon concernant ta véritable question... on voit facilement une erreur avec la coloration syntaxique, tu as oublié de fermer un guillemet.
L'erreur que j'ai vue est sur cette ligne mysql_query("INSERT INTO mini_chat VALUES('', '$pseudo', '$message'));
Je n'ai pas lu plus loin... donc je ne dis pas qu'il n'y a pas d'autre erreur.
Journalisée

Non au langage SMS !!! http://sms.informatiquefrance.com
sago
Profil challenge

Classement : 5690/54390

Membre Junior
**
Hors ligne Hors ligne
Messages: 71


Voir le profil
« #2 le: 21 Octobre 2007 à 19:35:04 »

Merci beaucoup 
Je promet de faire des efforts d'orthographe

merci encore pour la réponse rapide et critique
Journalisée

Zze warrior atitude Powaaaaaa
:p
sago
Profil challenge

Classement : 5690/54390

Membre Junior
**
Hors ligne Hors ligne
Messages: 71


Voir le profil
« #3 le: 24 Octobre 2007 à 15:07:08 »

Rebonjour
J'ai encore un probleme, ça marchait bien et tout puis  j'ai eu l'idée saugrenue de vouloir modifier mon script pour tester les failles SQL j'ai tester au hasard en faisant SELECT * FROM minichat  et ça marche plus... enfin quand on poste un message, car si j'ajoute un message a partir de php my admin
sa l'affiche bien
Code:
<html>
<body>

<?php
if (isset($_POST['pseudo']) AND isset($_POST['message'])) 
{
if( 
$pseudo != NULL AND $message != NULL)
{

mysql_connect("localhost""sago""EDITje lavais laisser");

mysql_select_db("sago");

$message mysql_real_escape_string(htmlspecialchars($_POST['message'])); // j'ai enlever mysql_real_escape_string(htmlspecialchars))

$pseudo mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // là aussi


mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");

mysql_close();

}
}
?>


<p>
Veuillez entrez votre pseudo et votre message
</p>
<form action="minichat.php" method="post">
<p><input type="text" name="pseudo"/> <br>
<input type="text" name="message"/> <br> <input type="submit" value="valider" /> </p>
</form>

<?php

mysql_connect
("localhost""sago""EDITje lavais laisser");

mysql_select_db("sago");

$reponse mysql_query("SELECT * FROM minichat ORDER BY id DESC LIMIT 0,10"); 

while(
$donnees mysql_fetch_array($reponse) )
 {
 
?>

 
<p><strong><?php echo $donnees['pseudo']; ?></strong> : <br> <?php echo $donnees['message']; ?></p>

<?php
}


mysql_close();

?>


</body>
</html>
vous pourriez m'aider svp

merci
« Dernière édition: 24 Octobre 2007 à 15:41:56 par sago » Journalisée

Zze warrior atitude Powaaaaaa
:p
S0410N3
Administrateur

Profil challenge

Classement : 10/54390

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1260


Voir le profil WWW
« #4 le: 24 Octobre 2007 à 15:23:12 »

if( $pseudo != NULL AND $message != NULL)

Ca ne rentre jamais dans le if. $pseudo et $message n'existent pas... $_POST['pseudo'] et $_POST['message'] oui.
Journalisée

Enjoy (copyleft de quelqu'un qui a trop parlé)

S0410N3

-------------------------------------------------------------------------------------
La folie est le prix à payer pour le temps passé à être trop lucide.
-------------------------------------------------------------------------------------
http://forum.hardware.fr/hfr/Discussions/Societe/francais-repere-repaire-sujet_19265_1.htm
sago
Profil challenge

Classement : 5690/54390

Membre Junior
**
Hors ligne Hors ligne
Messages: 71


Voir le profil
« #5 le: 24 Octobre 2007 à 15:26:58 »

Merciiiiiii,
Mais comment tu peux expliquer qu'avant sa marchait bien? 
Journalisée

Zze warrior atitude Powaaaaaa
:p
S0410N3
Administrateur

Profil challenge

Classement : 10/54390

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1260


Voir le profil WWW
« #6 le: 24 Octobre 2007 à 15:30:08 »

Tu devais avoir le register_globals d'activé, ce qui est mal
Journalisée

Enjoy (copyleft de quelqu'un qui a trop parlé)

S0410N3

-------------------------------------------------------------------------------------
La folie est le prix à payer pour le temps passé à être trop lucide.
-------------------------------------------------------------------------------------
http://forum.hardware.fr/hfr/Discussions/Societe/francais-repere-repaire-sujet_19265_1.htm
sago
Profil challenge

Classement : 5690/54390

Membre Junior
**
Hors ligne Hors ligne
Messages: 71


Voir le profil
« #7 le: 24 Octobre 2007 à 15:31:04 »

Sa marche toujours pas...
Voila la page= j'ai enlever pour pas faire de pub (sinon je sent qu'on va m'accuser... :p )
C'est quoi le register global?
EDIT: SA maarcheeeeeeeeeeeeeuh

Millles merciiii   
« Dernière édition: 24 Octobre 2007 à 15:40:14 par sago » Journalisée

Zze warrior atitude Powaaaaaa
:p
the lsd
Administrateur

Profil challenge

Classement : 190/54390

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #8 le: 24 Octobre 2007 à 15:32:49 »

Ben il marche ce script chez moi !

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
sago
Profil challenge

Classement : 5690/54390

Membre Junior
**
Hors ligne Hors ligne
Messages: 71


Voir le profil
« #9 le: 24 Octobre 2007 à 15:43:19 »

  trop content
Comme qui dirait i'am enjoying
edit (j'imagine meme pas quand se sera un plus gros script)

EDIT2: Lool j'ai remarqué, personne m'a dit que j'avais laisser le mdp de sql
Journalisée

Zze warrior atitude Powaaaaaa
:p
sago
Profil challenge

Classement : 5690/54390

Membre Junior
**
Hors ligne Hors ligne
Messages: 71


Voir le profil
« #10 le: 24 Octobre 2007 à 15:56:26 »

Autre question,
J'aimerai hacker mon minichat
Vous pourriez me donner des idées svp en sql je sais pas... je sais juste pour les formulaire

Merci
Journalisée

Zze warrior atitude Powaaaaaa
:p
_o_
Relecteur

Profil challenge

Classement : 42/54390

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #11 le: 24 Octobre 2007 à 18:20:51 »

J'aimerai hacker mon minichat

Oui, alors, justement, là, il y a un truc qui ne va pas dans la démarche. Parce que la véritable manière de faire, c'est justement de prendre en compte la sécurité dès la conception. Après, en général, c'est trop tard. Parce que ça prend plus de temps de patcher après coup, parce que ça dégénère en une somme de verrues plus ou moins contournables, bref, c'est le boxon.

Bien sûr, c'est plus facile à dire qu'à faire, et ça demande un peu d'expérience dans le domaine et le langage de programmation utilisé, et il faut bien débuter un jour. Mais c'est une bonne habitude à prendre.
Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
the lsd
Administrateur

Profil challenge

Classement : 190/54390

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #12 le: 24 Octobre 2007 à 23:08:28 »

Deja, il faut l'optimiser un chouilla :

Code:
if (isset($_POST['pseudo']) AND isset($_POST['message'])) 
{
if( $pseudo != NULL AND $message != NULL)
{
ca fait répétition ces deux boucles.

Il suffit de faire
Code:
if (!empty ($_POST['pseudo']) AND !empty($_POST['message'])) 
{

Ensuite, prends le réflexe de mettre des OR die (ton message d'erreur) apres les requetes SQL, je trouve ca plus pratique pour debuger.

Enleves le premier mysql_close() (en dessous du INSERT INTO), car la BDD doit etre refermée dans tous les cas, vu que meme si tu n'insères pas tu affiches, par conséquent un seul mysql_close() est utile.

Dans le même genre, quand tu postes un message, tu ouvres deux fois la BDD(une fois pour écrire et une fois pour lire), essayes de l'ouvrir une seule fois au début.

Enfin, dans ton while d'affichage, essayes de ne pas ouvrir/fermer les balises php tout le temps, fais un truc du genre :
Code:
echo '<p><strong>'.$donnee['pseudo'].'le reste du message</p></strong>' ;

Enjoy

The lsd

PS : je n'ai regardé que le deuxième script que tu as mis.
« Dernière édition: 24 Octobre 2007 à 23:10:52 par the lsd » Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
sago
Profil challenge

Classement : 5690/54390

Membre Junior
**
Hors ligne Hors ligne
Messages: 71


Voir le profil
« #13 le: 25 Octobre 2007 à 16:27:02 »

Okééééé 

Alors,
EDIT:
1. j'améliore ==edit> je casse
2. je sécurise ==edit> 
3. J'améliore ==edit> Mort de rire                 
4. je vous montre (enfin vous êtes pas obliger de regarder mais sa me fait plaisir d'être corriger) ==edit> Mois je voulais qu'il n'y ai rien a corriger(presque)
5. Je hack  ==edit>  je détruit :'(

C'est bon?
P-S : lsd tant mieux, c'est l'amélioration du premier

« Dernière édition: 25 Octobre 2007 à 17:59:23 par sago » Journalisée

Zze warrior atitude Powaaaaaa
:p
sago
Profil challenge

Classement : 5690/54390

Membre Junior
**
Hors ligne Hors ligne
Messages: 71


Voir le profil
« #14 le: 25 Octobre 2007 à 18:21:54 »

Snifffr
après pleins de tentatives d'amélioration j'ai toujours pas trouvé

Et j'ai essayer pourtant

regardez , j'ai bien modifier, j'ai fait avec 1 seul <?php  ?> j'ai mis stripslashes() mi les or die(mysql_error()) j'ai enlever des trucs etc
jusqu' a avoir sa     
 
Code:
<?php




if( !empty ($_POST['pseudo']) AND !empty ($_POST ['message']))
{

mysql_connect("localhost""sago""aaaaaaaaaa");

mysql_select_db("sago");

$message stripslashes(mysql_real_escape_string(htmlspecialchars($_POST['message'])));

$pseudo stripslashes(mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])));


mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')")or die(mysql_error());


}


echo 
"<p>
Veuillez entrez votre pseudo et votre message merci
</p>
<form action='minichatv1-2-2.php' method='post>
<p><input type='text' name='pseudo'/> <br> 
<input type='text' name='message'/> <br> <input type='submit' value='valider' /> </p>
</form>\n"
;


$reponse mysql_query("SELECT * FROM minichat ORDER BY id DESC LIMIT 0,10")or die(mysql_error()); 

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



}


mysql_close();

?>

Et le méchant php me dit:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'www-data'@'localhost' (using password: NO) in /web2/sago/www/sago/minichatv1-2-2.php on line 33

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /web2/sago/www/sago/minichatv1-2-2.php on line 33
Access denied for user 'www-data'@'localhost' (using password: NO)

La ligne 33 est :
Code:
<?php
$reponse 
mysql_query("SELECT * FROM minichat ORDER BY id DESC LIMIT 0,10")or die(mysql_error()); 
?>

merci de votre aide

« Dernière édition: 25 Octobre 2007 à 18:24:47 par sago » Journalisée

Zze warrior atitude Powaaaaaa
:p
Pages: [1] 2
  Imprimer  
 
Aller à: