Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL Webou Webou Pro
Recherche avancée  
*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
15 Septembre 2019, 07:46:01


Connexion avec identifiant, mot de passe et durée de la session


Pages: [1]   Bas de page
  Imprimer  
Auteur Fil de discussion: Systeme de commentaire.  (Lu 6034 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Rainbow
Invité
« le: 25 Octobre 2008, 09:41:47 »

Bonjour je voudrais faire un système de commentaire. J'ai créer le formulaire et la partie mysql cependant je n'arrive à pas à faire un truc dans le genre:
Si le commentaire à était envoyer: Le commentaire à bien était envoyer.
Si le commentaire n'a pas était envoyer: Le commentaire n'a pas était envoyer.

Le formulaire:
Code:
<form method="post" action="trtmcommentaire.php">

<p>
<label for="pseudo"> Pseudo: </label>
<input type="text" name="pseudo" id="pseudo" size="29"/>
</p>

<p>
<label for="email">E.mail : </label>
<input type="text" name="email" value="exemple@exemple.exemple" id="email" size="29" />
</p>

<p>
<label for="objet">Objet : </label>
<input type="text" name="objet" id="objet" size="29" />
</p>

<p>
<label for="commentaire">Commentaire :</label>
<textarea name="commentaire" id="commentaire" cols="50" rows="8"  tabindex="80"></textarea>
<input type="hidden" name="page" value="page"/>
<input type="hidden" name="visibilitecommentaire" value="offline"/>
</p>

<p class="center" >
<input type="submit" value="Enregistrer" /> <input type="reset" value="Effacer" />
</p>
</form>

MySQL :
Code:
<?php
if(isset($_POST['pseudo']) AND isset($_POST['email']) AND isset($_POST['objet']) AND isset($_POST['commentaire']))
{
if(
$_POST['pseudo']!=NULL AND $_POST['email']!=NULL AND $_POST['objet']!=NULL AND $_POST['commentaire']!=NULL)
{
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("rainbow_rainbow") or die(mysql_error());

$pseudo=mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$email=mysql_real_escape_string(htmlspecialchars($_POST['email']));
$objet=mysql_real_escape_string(htmlspecialchars($_POST['objet']));
$commentaire=mysql_real_escape_string(htmlspecialchars($_POST['commentaire']));
$page=mysql_real_escape_string(htmlspecialchars($_POST['page']));
$visibilitecommentaire=mysql_real_escape_string(htmlspecialchars($_POST['visibilitecommentaire']));
 
mysql_query("INSERT INTO commentaire( id , pseudo , email, objet, commentaire, page, visibilitecommentaire ) VALUES('' , '" $pseudo ."' , '" $email ."' , '" $objet ."' , '" $commentaire ."' , '" $page ."' , '" $visibilitecommentaire ."')") or die(mysql_error());
mysql_close();
}
}
?>

Journalisée
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
« le: 25 Octobre 2008, 09:41:47 »

 Journalisée
zezipper
Nouveau
*
Hors ligne Hors ligne

Messages: 30



Voir le profil WWW
« Répondre #1 le: 25 Octobre 2008, 14:45:32 »

Personnellement, cela n'engage que moi, (pléonasme) mais je n'ai rien compris, serait il possible que tu formule ta requête autrement ?

Essaies avec If else.
« Dernière édition: 25 Octobre 2008, 14:56:28 par zezipper » Journalisée
K@cem
Never trust user input
Big boss
*****
Hors ligne Hors ligne

Messages: 2 724



Voir le profil WWW
« Répondre #2 le: 25 Octobre 2008, 22:15:51 »

Salut,
Tu n'as pas besoin de faire 2 tests sur tes variables, enlève les "$_POST[]!=NULL", et remplace les "isset($_POST[])" par "!empty($_POST[])" !
Au final tu aura un seul if() Clin d'oeil
A l'intérieur de ton "if", tu affiche le message que tu veux (le commentaire a été envoyé ...), et après tu mets un else dans lequel tu affiche ton message d'erreur ...
J'espère que j'ai été clair ^^
k@cem
Journalisée

Le support ne se fait pas par MP, merci de le respecter !
Rainbow
Invité
« Répondre #3 le: 26 Octobre 2008, 21:06:39 »

J'ai fais cela:

Code:
<?php
if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['objet']) AND !empty($_POST['commentaire']))
{
mysql_connect("localhost","root","");
mysql_select_db("rainbow_rainbow");

$pseudo=mysql_real_escape_string($_POST['pseudo']);
$email=mysql_real_escape_string($_POST['email']);
$objet=mysql_real_escape_string($_POST['objet']);
$commentaire=mysql_real_escape_string($_POST['commentaire']);
$page=mysql_real_escape_string($_POST['page']);
$visibilitecommentaire=mysql_real_escape_string($_POST['visibilitecommentaire']);
 
mysql_query("INSERT INTO commentaire( id , pseudo , email, objet, commentaire, page, visibilitecommentaire ) VALUES('' , '" $pseudo ."' , '" $email ."' , '" $objet ."' , '" $commentaire ."' , '" $page ."' , '" $visibilitecommentaire ."')") or die(mysql_error());
mysql_close();
?>


<p>Le commentaire à était envoyer.</p>

<?php
}
else
{
?>

<p>Le commentaire et refuser </p>
<?php
}
?>

tous et bon Sourire


J'ai une demande à vous demander. Je sais pas si c'est bien. Je suis en train de lire le tutoriel destiner à créer un forum. Utiliser les scripts peut-être considérer comme du vol?
« Dernière édition: 26 Octobre 2008, 22:00:55 par Rainbow » Journalisée
Arkhena
Bavard
***
Hors ligne Hors ligne

Messages: 232



Voir le profil
« Répondre #4 le: 27 Octobre 2008, 10:11:30 »

ça dépend de la licence mise sur ce code... Le mieux est de contacter l'auteur pour lui demander...
Journalisée
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
« Répondre #4 le: 27 Octobre 2008, 10:11:30 »

 Journalisée
Rainbow
Invité
« Répondre #5 le: 27 Octobre 2008, 11:41:43 »

C'est un code mis en ligne sur le site du zero.

J'ai une autre question. Et il possible de créer un seul système de commentaire mais qui classe les commentaire en fonction de la age ou c'est poster ou dois-je a chaque fois crée un formulaire et changer le script du formulaire.
Personellement justilise des page de se style ==>
http://localhost/rainbow/index.php?page=equipe

 donc avec l'utilisation de get?
Journalisée
K@cem
Never trust user input
Big boss
*****
Hors ligne Hors ligne

Messages: 2 724



Voir le profil WWW
« Répondre #6 le: 27 Octobre 2008, 21:10:42 »

Salut,
Pour ta première question je te déconseille d'utiliser un script que tu ne comprends pas, tu peux créer des failles de sécurité sans y faire attention Clin d'oeil
Si tu as besoin d'un forum, utilise un script déjà fait (SMF, Connectix Board, punBB ...)
Pour ta 2ème question je n'ai pas trop compris ce que tu veux dire, tu peux la
reformuler stp ?
k@cem
Journalisée

Le support ne se fait pas par MP, merci de le respecter !
Rainbow
Invité
« Répondre #7 le: 27 Octobre 2008, 21:22:51 »

en gros le formulaire que j'ai créer et utile que pour une page "sauf la partie MYSQL" cependant je voulais savoir si l'on pouvais utiliser le même formulaire pour toute les page? Et si je peux en utilisent le get que j'ai créer?
Journalisée
Rainbow
Invité
« Répondre #8 le: 30 Octobre 2008, 10:32:55 »

Help me please Triste. Je profite des vacance pour avancer un maximum mon site :$.
Journalisée
Drambam
Nouveau
*
Hors ligne Hors ligne

Messages: 34



Voir le profil WWW
« Répondre #9 le: 30 Octobre 2008, 12:01:16 »

Je vais tenter de t'aider.
Voila ce que je ferais si je devais faire une page pour insérer des commentaires...

Code:
<?php
if ( isset($_POST["titre"]) and isset($_POST["commentaire"]) and isset($_POST["pseudo"]) )
    {
    if ( 
$_POST["commentaire"] != NULL and $_POST["titre"] != NULL and $_POST["pseudo"] != NULL  )
        {
        
$pseudo htmlspecialchars($_POST["pseudo"]);
        
$titre htmlspecialchars($_POST["titre"]);
        
$commentaire htmlspecialchars($_POST["commentaire"]);
        
$commentaire nl2br($commentaire);
        
$commentaire stripslashes($commentaire);
        
$date date("d/m/Y");

        
mysql_connect("","","");
        
mysql_select_db("");
        
mysql_query("INSERT INTO nom_table VALUES ('', '$titre', '$pseudo','$commentaire', '$date')");
        
$phrase "<b style = color:green;>Commentaire posté</b>"
        
}
    else
        {
        
$phrase "<b style = color:red;>Vous devez remplir tous les champs!</b>";
        }
    }
?>


<html>
<!--Imaginons que ta page contiennent un formulaire avec un champ pour le texte du commentaire, un autre pour son contenu, encore un autre pour la date.)-->
<head>

</head>

<body>
<center>
<form method = "POST">
Pseudo: <input type = "text" name = "pseudo">
<br /><br />
Titre:<input type = "text" name = "titre">
<br /><br />
Commentaire:<br />
<textarea cols=50 rows=10 name = "commentaire"></textarea>
<br /><br />
<input type = "submit" value = "Envoyer le commentaire!">
</form>
</center>
</body>


<!--Voila pour la partie HTML.-->
</html>



Je pense que c'est correct. (j'ai fait ça en direct donc pas toutafait sûr). Il faudra si tu veux utiliser ce code le modifier selon ta base de données et les choses que tu veux y apporter.

Bonnes vaccances!
Journalisée

Rainbow
Invité
« Répondre #10 le: 30 Octobre 2008, 12:21:22 »

Je suis d'accord avec ton code qui ressemble fortement au mien. Cependant il m'aidera à apporter certaines modifications. Cependant deux champs sont nécessaires :

Code:
$page=mysql_real_escape_string($_POST['page']);
$visibilitecommentaire=mysql_real_escape_string($_POST['visibilitecommentaire']);

Ce que je voudrais moi c'est savoir si c'est possible de mettre automatiquement la page d'où j'ai cliqué dans le champ $page pour accéder au formulaire de commentaire?

P.S: Si mon message n'est pas clair faites le moi savoir Clin d'oeil.
 
Journalisée
Rainbow
Invité
« Répondre #11 le: 08 Novembre 2008, 12:34:00 »

apres multe reflection de test d'essais de cassage de crayon. Enfin quand même pas j'aboutie à quelque chose qui marche youpiiiiiiiiiiiii. "Clap Clap Clap"
le code:

Code:
<?php
if(!empty($_POST['pseudo']) AND !empty($_POST['objet']) AND !empty($_POST['commentaire']) AND !empty($_POST['page']))
{
include(
"panneauadministration/adminidentifiants.php");
mysql_connect($adresse$nom$motdepasse);
mysql_select_db($database);

$pseudo=mysql_real_escape_string($_POST['pseudo']);
$email=mysql_real_escape_string($_POST['email']);
$objet=mysql_real_escape_string($_POST['objet']);
$commentaire=mysql_real_escape_string($_POST['commentaire']);
$page=mysql_real_escape_string($_POST['page']);
$visibilitecommentaire=mysql_real_escape_string($_POST['visibilitecommentaire']);
 
mysql_query("INSERT INTO commentaire( id , pseudo , email, objet, commentaire, page, visibilitecommentaire, timestamp ) VALUES('' , '" $pseudo ."' , '" $email ."' , '" $objet ."' , '" $commentaire ."' , '" $page ."' , '" $visibilitecommentaire ."' , '" time() . "')") or die(mysql_error());
?>

<p class="center"><img src="picture/commentaire.bmp" alt="separcom"/></p>
<p class="center">Ton commentaire a bien été envoyé.<br /><strong>Il sera visible une fois que le propriétaire de ce site l'aura validé...</strong><br />
Cliques <a href="index.php?page=<?php echo"$page"?>">ici</a> pour revenir au formulaire.</p>
<?php
}
else
{
?>

<p><img src="picture/commentaire.bmp" alt="separcom"/></p>

<h2>Laisser un commentaire</h2>

<p><strong>Rappel :</strong> Ne communique jamais tes données personnelles (nom, adresse, n° de téléphone...) !</p>

<form method="POST" action="index.php?page=<?php echo $_GET['page']; ?>">

<p>
<label for="pseudo"> Pseudo: </label>
<input type="text" name="pseudo" id="pseudo" size="29"/>
</p>
<p>
<label for="email">*E.mail : ( * Champ facultatif ) </label>
<input type="text" name="email" id="email" size="29" />
</p>
<p>
<label for="objet">Objet : </label>
<input type="text" name="objet" id="objet" size="29" />
</p>
<p>
<label for="commentaire">Commentaire :</label>
<textarea name="commentaire" id="commentaire" cols="50" rows="8"  tabindex="80"></textarea><br />
<input type="hidden" name="page" value="<?php echo $_GET['page']; ?>"/>
<input type="hidden" name="visibilitecommentaire" value="Hors Ligne"/>
</p>
<p class="center" >
<input type="submit" value="Enregistrer" /> <input type="reset" value="Effacer" />
</p>
</form>
<?php
}
?>




<?php
//fin première partie du code soit l'enregistrement. 
//Debut de l'affichage.
include("panneauadministration/adminidentifiants.php");
mysql_connect($adresse$nom$motdepasse);
mysql_select_db($database);

$nombreDeMessagesParPage 5
$retour mysql_query('SELECT COUNT(*) AS nb_messages FROM commentaire WHERE page=\'' $_GET['page'] . '\' AND visibilitecommentaire="En Ligne"');
$donnees mysql_fetch_array($retour);$totalDesMessages $donnees['nb_messages'];
$nombreDePages  ceil($totalDesMessages $nombreDeMessagesParPage);
?>

<p class="center">
<?php
echo '<strong>Page :</strong> ';
for (
$i $i <= $nombreDePages $i++)
{
echo 
'<a href="index.php?page='$_GET['page'] .'&affichage=' $i '">' $i '</a> ';
}
?>

</p>
 
<?php
if (isset($_GET['affichage']))
{
$affichage $_GET['affichage'];
}
else
{
$affichage 1;
}
 

$premierMessageAafficher = ($affichage 1) * $nombreDeMessagesParPage;
$reponse mysql_query('SELECT * FROM commentaire WHERE page=\'' $_GET['page'] . '\' AND visibilitecommentaire="En Ligne" ORDER BY id DESC LIMIT ' $premierMessageAafficher ', ' $nombreDeMessagesParPage);
 
while (
$donnees mysql_fetch_array($reponse))
{
?>


<p><strong><?php echo $donnees['pseudo']; ?></strong> à écrit le <strong><?php echo date('d/m/Y à H\hi'$donnees['timestamp']); ?></strong><br />
<?php echo $donnees['commentaire']; ?></p>

<?php
}
mysql_close();
?>


Journalisée
Pages: [1]   Haut de page
  Imprimer  
 
Aller à:  

Propulsé par MySQL Propulsé par PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Dilber MC Theme by HarzeM
Page générée en 0.155 secondes avec 22 requêtes.