Réponse de formulaire avec retour à la ligne

gintoxic Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   -  
gintoxic Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
sur mon site perso https://www.sfr.fr/fermeture-des-pages-perso.html j'ai mis en ligne un formulaire de commentaire (livre d'or)
2 choses me turlupinent

- je voudrais savoir comment les personnes qui interagissent sur cette partie de site peuvent voir leur commentaire de la même manière qu'il l'écrivent dans la textarea (c'est a dire avec des retour à la ligne), car pour le moment l'affichage fais que tout se suis et c'est pas le top au niveau esthétique...

- la mise en page des commentaires : j'aimerais que chaque commentaire soit séparé à la manière d'un forum. c'est a dire a chacun son encadrement (je me chargerais des couleur de fond et des cadres. dois-je passer par un tableau en xHTML ou un array en php ?
dans les deux cas une explication m'est nécessaire (pour au moins situer les balises ou le script)

ps : peut-être aussi j'ajouterais un droit à l'utilisateur de pouvoir effacer son message, si toute fois il n'est pas suivi d'un autre (pas d'effacement entre deux messages)

merci par avance pour votre aide, si précieuse soit-elle

cordialement
kriss




A voir également:

4 réponses

__construct
 
Bonsoir,
Normalement pour gérer les entrées clavier, à l'affichage du message il faut utiliser la fonction PHP nl2br($message). Je te laisse examiner plus précisément la doc officielle PHP de cette fonction : http://fr.php.net/manual/fr/function.nl2br.php
Pour la mise en page du message dans la page web c'est tout simplement des propriétés CSS comme border, background, etc...
1
gintoxic Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   10
 
ah oui aussi les guillemets apparaissent come ceci \"... comment éviter l'anti-slash dans l'affichage
svp,
merci encore
0
gintoxic Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   10
 
et encore une chose, comment rendre le champs pseudo obligatoire... j'ai recherché et testé des scripts js et php, mais rien n'y fait...
je ne sais où placer ou alors je ne sais pas attribuer la valeur "pseudo"

merci
dsl je demande bcp
0
gintoxic Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   10
 
le souci là c'est que je ne sais pas gérer. ce que j'entends par mise en page, c'est que l'tilisateur laissant un message avec un "entrer" pour aller a la ligne voit son message de la meme façon et non en une chaine... une mise en forme de texte serait peut etre le terme plus approprié...
0
__construct
 
Bizarre ça?
J'utilise régulièrement la fonction PHP nl2br() pour afficher la même présentation à l'écran de ce que l'utilisateur a entré dans un champ de formulaire (textarea) et ça fonctionne à merveille!
Je n'ai pas dû bien comprendre ton problème alors, désolé de ne pas pouvoir plus t'aider sur ce sujet...
0
gintoxic Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   10
 
j'ai sûrement mal du m'exprimer... novice dans le php, je ne connais pas les fonctionnalités..
en fait où dois-je disposer ce nl2br() afin de faire ce que toi tu réussi a faire ? stp
merci
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Quand ton formulaire est envoyé, tu récupères les données avec la variable $_POST.
Exemple:
<textarea name="champ"></textarea>

Tu récupères le texte avec la variable $_POST['champ'].
Pour afficher le texte, tu fais donc un truc du genre:
<?php
echo $_POST['champ'];
?>

Pour récupérer correctement les sauts de ligne du textarea, il faut utiliser comme indiqué par mes prédécesseurs la fonction nl2br().
<?php
echo nl2br($_POST['champ']);
?>

J'espère t'avoir un peu plus éclairé.
0
gintoxic Messages postés 524 Date d'inscription   Statut Membre Dernière intervention   10
 
j'avoue comprendre, mais mon script donne ça :
if (isset($_POST['pseudo']) AND isset($_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 . "')");
}

// --------------- Étape 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;
// 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
 
 
// --------------- Étape 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><u>' . $donnees['pseudo'] . ' a écrit :</u></strong><br />' . $donnees['message'] . '</p>';
}
 
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>

alors là par contre je ne sais où le mettre....
mais je te remercie évidemment
0