Page 1 sur 1

Pseudo dans une shootbox

Posté : 29 nov. 2006, 17:55
par Tachikoma
Bonjour,
Donc voila mon probleme, j'ai scripté une shootbox ( Php/MySql) mais j'aimerais que l'on ait pas besoin de remettre son pseudo a chaque fois, si vous pouviez m'aider :).

Amicalement Tachikoma

Posté : 29 nov. 2006, 18:17
par Ryle
Tout dépend du "chaque fois" :)

Si c'est à chaque message (et selon la façon dont est construit ton mur), il te suffit de ne pas vider le champ lorsque tu soumets le message
Si c'est à chaque passage sur la page, tu peux la stocker en session quand tu là reçois, et l'afficher par défaut.
Enfin si c'est à chaque passage sur le site, c'est vers les cookies qu'il faut te tourner :)

Posté : 29 nov. 2006, 18:23
par Tachikoma
Ok, c'est pour chaque message que je ne veux pas que l'on soit obligé de retaper le pseudo

Posté : 29 nov. 2006, 18:27
par Ryle
Oki :)

Et tu envois les données en ajax ou en actualisant la page ?

dans le premier cas, tu dois avoir une commande qui vide le champ pseudo (et qu'il suffit donc de dégager violement, sans sommation, ou en la commentant simplement :))

dans le second, tu dois donc récupérer la valeur du pseudo dans $_GET ou $_POST, il te suffit de la réafficher dans l'attribut value de ton input :
<input ... value="<?php echo (isSet($_GET['pseudo'])) ? $_GET['pseudo'] : ''; ?>" />

Posté : 29 nov. 2006, 19:21
par Tachikoma
sa doit etre en affichage voila le script
<!-- Début du formulaire d'envoi -->
<div align="center">
<table id="Tableau_01" border="0" cellpadding="0" cellspacing="0">
	<tr>
		<td>
			<img src="images/gfx_shoot__01.jpg" width="7" height="26" alt=""></td>
		<td background="images/gfx_shoot__02.jpg" ></td>
		<td>
			<img src="images/gfx_shoot__03.jpg" width="6" height="26" alt=""></td>
	</tr>
	<tr>
		<td background="images/gfx_shoot__05.jpg" ></td>
<td valign="top">
<div align="left">
<?
require("ad_conf.inc.php");


if (!empty($_POST['pseudo']) AND !empty($_POST['textarea'])) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['textarea'] != NULL) // Si on a quelque chose à enregistrer
    {
        mysql_connect("$host", "$user", "$mdp");
        mysql_select_db("$user");          
        mysql_query("INSERT INTO blog_br VALUES('', '". htmlentities($_POST['pseudo']) ."','". htmlentities($_POST['textarea']) ."', '" . time() . "')");
        mysql_close();
     }
}
        
?>
<form method="post" action="index.php" name="formulaire">
Pseudo :: <input name="pseudo" /><br />

<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[gras]', '[/gras]');return(false)" />
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[italic]', '[/italic]');return(false)" />
<input type="button" id="image" name="image" value="Image" onClick="javascript:bbcode('[image]', '[/image]');return(false)" />
<br />
<img src="http://gregory.devilliers.free.fr/images/smilies/icon_mrgreen.png" title="" alt="" onClick="javascript:smilies(':D');return(false)" />
<img src="http://gregory.devilliers.free.fr/images/smilies/icon_redface.png" title="" alt="" onClick="javascript:smilies(':S');return(false)" />
<img src="http://gregory.devilliers.free.fr/images/smilies/icon_twisted.png" title="" alt="" onClick="javascript:smilies(':6:');return(false)" />
<img src="http://gregory.devilliers.free.fr/images/smilies/icon_confused.png" title="" alt="" onClick="javascript:smilies(':s');return(false)" />
<img src="http://gregory.devilliers.free.fr/images/smilies/icon_cool.png" title="" alt="" onClick="javascript:smilies('8D');return(false)" />
<img src="http://gregory.devilliers.free.fr/images/smilies/icon_frown.png" title="" alt="" onClick="javascript:smilies(':C');return(false)" />
<img src="http://gregory.devilliers.free.fr/images/smilies/icon_mad.png" title="" alt="" onClick="javascript:smilies(':@');return(false)" />
<img src="http://gregory.devilliers.free.fr/images/smilies/icon_mdr.png" title="" alt="" onClick="javascript:smilies(':mdr:');return(false)" />
<img src="http://gregory.devilliers.free.fr/images/smilies/icon_shock.png" title="" alt="" onClick="javascript:smilies(':o');return(false)" />
<img src="http://gregory.devilliers.free.fr/images/smilies/icon_wink.png" title="" alt="" onClick="javascript:smilies(';D');return(false)" />
<img src="http://gregory.devilliers.free.fr/images/smilies/p.png" title="" alt="" onClick="javascript:smilies('>>');return(false)" />

<br />
<br />
Message ::<br>
<textarea cols="30" rows="4" id="textarea" name="textarea"></textarea>
<br />

<input src="images/send.jpg" name="submit" value="Envoyer" border="0" type="image"> <a href="http://brisfree.free.fr/2mel1/index.php" class="lien"><img src="images/raf.jpg" border="0" alt=""></a>
</form>
</div>
</td>
		<td background="images/gfx_shoot__07.jpg"></td>
	</tr>
	<tr>
		<td>
			<img src="images/gfx_shoot__08.jpg" width="7" height="24" alt=""></td>
		<td background="images/gfx_shoot__09.jpg"></td>
		<td>
			<img src="images/gfx_shoot__10.jpg" width="6" height="24" alt=""></td>
	</tr>
</table>
</div>
<!-- Fin du formulaire d'envoi -->
<br><br><br>
<!-- Début de laffichage -->
<div align="center" >
<table id="Tableau_01" width="600" border="0" cellpadding="0" cellspacing="0">
	<tr>
		<td>
			<img src="images/gfx_shoot__01.jpg" width="7" height="26" alt=""></td>
		<td background="images/gfx_shoot__02.jpg" ><div align="center">
<script language="Javascript">
days = new Array(
"Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"
);
months = new Array(
"Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"
);

function renderDate(){
	var mydate = new Date();
	var year = mydate.getYear();
	if (year < 2000) {
		if (document.all)
			year = "19" + year;
		else
			year += 1900;
	}
	var day = mydate.getDay();
	var month = mydate.getMonth();
	var daym = mydate.getDate();
	if (daym < 10)
		daym = "0" + daym;
	var hours = mydate.getHours();
	var minutes = mydate.getMinutes();
var dn = "";
	if (hours >= 12) {
		dn = "";
		hours = hours - 0;
	}
	if (hours == 0)
		hours = 12;
	if (minutes <= 9)
		minutes = "0" + minutes;
	document.writeln("<FONT COLOR=\"#000000\" FACE=\"Verdana,arial,helvetica,sans serif\" size=\"1\"><B>&nbsp;",days[day]," ",daym," ",months[month]," ",year,"</B> | ",hours,":",minutes," ",dn,"</FONT><BR>");
}

renderDate();
</script></div>
</td>
		<td><img src="images/gfx_shoot__03.jpg" width="6" height="26" alt=""></td>
	</tr>
	<tr>
		<td background="images/gfx_shoot__05.jpg" ></td>
<td valign="TOP" >
<div align="left">
<? 
require("ad_conf.inc.php");
?>
<?
$serveur="$host";
$utilisateur="$user";
$motdepasse="$mdp";
$database="$user";

// ------ NE PAS TOUCHER ---------------- //

@mysql_connect($serveur,$utilisateur,$motdepasse) or die("<CENTER><A style='color:white;background-color:red'> Désolé, problème de serveur !");
@mysql_select_db($database);

?>
<?php
$textarea = preg_replace('!\[url\](.+)\[/url\]!isU', '<a href="$1" target="_blank" class="lien">$2</a>', $textarea);

$textarea = preg_replace('!\[gras\](.+)\[/gras\]!isU', '<strong>$1</strong>', $textarea);
$textarea = preg_replace('!\[italic\](.+)\[/italic\]!isU', '<i>$1</i>', $textarea);
$textarea = preg_replace('!\[image\](.+)\[/image\]!isU', '<img src="$1" >', $textarea);
$textarea = preg_replace('!:D!', '<img src="http://gregory.devilliers.free.fr/images/smilies/icon_mrgreen.png" alt="smile"',  $textarea);
$textarea = preg_replace('!:S!', '<img src="http://gregory.devilliers.free.fr/images/smilies/icon_redface.png" alt="smile"',  $textarea);
$textarea = preg_replace('!:6:!', '<img src="http://gregory.devilliers.free.fr/images/smilies/icon_twisted.png" alt="smile"',  $textarea);
$textarea = preg_replace('!:s!', '<img src="http://gregory.devilliers.free.fr/images/smilies/icon_confused.png" alt="smile"',  $textarea);
$textarea = preg_replace('!8D!', '<img src="http://gregory.devilliers.free.fr/images/smilies/icon_cool.png" alt="smile"',  $textarea);
$textarea = preg_replace('!:C!', '<img src="http://gregory.devilliers.free.fr/images/smilies/icon_frown.png" alt="smile"',  $textarea);
$textarea = preg_replace('!:@!', '<img src="http://gregory.devilliers.free.fr/images/smilies/icon_mad.png" alt="smile"',  $textarea);
$textarea = preg_replace('!:mdr:!', '<img src="http://gregory.devilliers.free.fr/images/smilies/icon_mdr.png" alt="smile"',  $textarea);
$textarea = preg_replace('!:o!', '<img src="http://gregory.devilliers.free.fr/images/smilies/icon_shock.png" alt="smile"',  $textarea);
$textarea = preg_replace('!;D!', '<img src="http://gregory.devilliers.free.fr/images/smilies/icon_wink.png" alt="smile"',  $textarea);
$textarea = preg_replace('!>>!', '<img src="http://gregory.devilliers.free.fr/images/smilies/p.png" alt="smile"',  $textarea);


// --------------- Etape 1 -----------------
// Si un textarea est envoyé, on l'enregistre
// -----------------------------------------

if (isset($_POST['pseudo']) AND isset($_POST['textarea']))
{
   
    $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);
    $textarea = nl2br($textarea);
    mysql_query("INSERT INTO shootbox_br VALUES('', '" . $pseudo . "', '" . $textarea . "', '" . time() . "')");
}

// --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------

// On met dans une variable le nombre de textareas qu'on veut par page
$nombreDetextareasParPage = 20; // Essayez de changer ce nombre pour voir :o)

// On récupère le nombre total de textareas
$retour = mysql_query('SELECT COUNT(*) AS nb_textareas FROM shootbox_br');
$donnees = mysql_fetch_array($retour);
$totalDestextareas = $donnees['nb_textareas'];

// On calcule le nombre de pages à créer
$nombreDePages  = ceil($totalDestextareas / $nombreDetextareasParPage);

// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    echo '<a href="index.php?page=' . $i . '">' . $i . '</a> ';
}

?>

</p>

<?php
// --------------- Etape 3 ---------------
// Maintenant, on va afficher les textareas
// ---------------------------------------

if (isset($_GET['page']))
{
    $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (index.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 textarea qu'on prend pour le LIMIT de MySQL
$premiertextareaAafficher = ($page - 1) * $nombreDetextareasParPage;

$reponse = mysql_query('SELECT * FROM shootbox_br ORDER BY id DESC LIMIT ' . $premiertextareaAafficher . ', ' . $nombreDetextareasParPage);

while ($donnees = mysql_fetch_array($reponse))
{
    echo '<br>

<font color="#8797cb"><strong><u>' . $donnees['pseudo'] . '</u><i></i></strong></font> dit :<br>' . $donnees['textarea'] . '

<br>';
}

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>

</div>
</td>
		<td background="images/gfx_shoot__07.jpg" ></td>
	</tr>
	<tr>
		<td>
			<img src="images/gfx_shoot__08.jpg" width="7" height="24" alt=""></td>
		<td background="images/gfx_shoot__09.jpg" ></td>
		<td>
			<img src="images/gfx_shoot__10.jpg" width="6" height="24" alt=""></td>
	</tr>
</table>
</div>
<!-- Fin de laffichage -->

Posté : 30 nov. 2006, 18:21
par Tachikoma
oui mais si je le met dans la page de ressu il va pas me sortir la liste de tout les membres ayant posté ?

Posté : 30 nov. 2006, 18:49
par Ryle
Pas si tu récupères le pseudo qui a été envoyé par le formulaire comme valeur par défaut, pas besoin d'aller chercher un résultat spécifique :)

Essayes ceci, modifie la ligne :

Code : Tout sélectionner

Pseudo :: <input name="pseudo" /><br />
Et ajoute :
Pseudo :: <input name="pseudo" value="<?php echo (isSet($_POST['pseudo'])) ? $_POST['pseudo'] : ''; ?>"/><br /> 
Ca devrait correspondre à ce que tu attends :)

Posté : 30 nov. 2006, 20:05
par Tachikoma
mais si on fais rafraichir la page le pseudo sera toujours en memoire ou si on recharge la page ?

Posté : 01 déc. 2006, 11:31
par Ryle
En principe l'utilisateur n'a pas de raison de recharger/actualiser la page. En effet, s'il le fait, il va avoir un joli message lui demandant s'il veut reposter les données (et donc son message en double), et s'il accepte, cela renvoi également son pseudo qui sera ainsi par défaut affiché dans le champ.... le plus simple pour vérifier ne serait-il pas d'essayer ? ;)

Sinon pour être sur, tu peux également le stocker en session (et le retrouver même s'il quitte la page et reste sur le site) ou dans un cookie (et le retrouver même s'il ferme son navigateur et revient)

Posté : 01 déc. 2006, 19:11
par Tachikoma
Si obligé de recharger sinon sa naffiche pas les nouveaux messages

Posté : 01 déc. 2006, 23:49
par charabia
Utilises les sessions comme te le conseille Ryle, ça devrait marcher sans souci ;)