Controle php & redirection
Bonjour je vais essayer d'être assez claire dans mes explications pour poser mes 2-3 questions :
J'ai une page index.php avec un lien livre d'or (fonction ajax)
Code:
<li><a href="" onclick="envoieRequete('livre_dor/livredor.php','ajaxBox');" >Livre d'or</a></li>
celle-ci permet de modifier juste la partie du site.
Fonction Ajax
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| function envoieRequete(url,id)
{
var xhr_object = null;
var position = id;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function(){
if ( xhr_object.readyState == 4 )
{
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(position).innerHTML = xhr_object.responseText;
}
}
// dans le cas du get
xhr_object.send(null);
} |
livredor.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| <?php
include('../configuration/config.php');
mysql_connect($db_server, $db_username, $db_password);
mysql_select_db($db_name);
?>
<form method="post" action="livre_dor/verif_livredor.php">
<p> Laissez nous une trâce de votre passage .... </p>
<p> * Pseudo : <input name="pseudo" /><?php if ((isset($err_pseudo)) AND (empty($POST[$err_pseudo]))) echo $err_pseudo; ?><br /> </p>
<p> Site web : www.<input name="siteweb" /><br /></p>
* Message :<br />
<textarea name="message" maxlength="256" rows="3" cols="50"></textarea><br />
<input type="submit" value="Envoyer" />
<p> (*) Champ obligatoire</p>
</p>
</form>
<?php
/* test champ pseudo */
if (empty($POST['pseudo']))
$err_pseudo = "Champ pseudo vide";
$tot_message = mysql_query("SELECT id,pseudo,siteweb,message,date_heure FROM livre_dor ORDER BY date_heure DESC") or die(mysql_error());
$nb = mysql_num_rows($tot_message);
if ($nb == 0) {
echo "<p>Soyez le premier à laisser un message !!!</p>";
} else { ?>
<?php
/*echo "<p>Nombre de messages : $nb</p>";*/
while ($enreg = mysql_fetch_array($tot_message)) {
echo '<p> Le '. $enreg['date_heure'] .'<br /><strong>' . $enreg['pseudo'] . '</strong> a écrit
:<br />' . $enreg['message'] . '<br />';
if ($enreg['siteweb'] <> "") {
echo 'Site web : <a href=www.'.$enreg['siteweb'].'>www.' . $enreg['siteweb'] . '</a></p>';
}
}
}
?>
</div> |
Cette page propose un formulaire qui insere les champs ds la base de donnée avec verif_livredor.php.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?php
include('../configuration/config.php');
mysql_connect($db_server, $db_username, $db_password);
mysql_select_db($db_name);
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é
$siteweb =
mysql_real_escape_string(htmlspecialchars($_POST['siteweb']));
$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)
$DateHeure= date("Y-m-d H:i:s");
$req = "INSERT INTO livre_dor (pseudo,siteweb,message,date_heure) VALUES('$pseudo','$siteweb','$message','".$DateHeure."')";
//echo $req;
mysql_query($req) or die(mysql_error()) ;
}
?> |
Maintenant que tous est présenté, je me permet de poser 2-3 questions:
Dans mon formulaire je désire que mon champ pseudo et message soit obligatoire et que ci ceux-ci sont vide je voudrais afficher un p'tit message d'information j'ai éssayé mais sa ne marche pas ? j'attend votre aide :mrgreen:
De plus, quand un message est validé enregistré dans la base je voudrai retombé sur ma page index.php mais la zone changeante livredor.php ??? (je sais pas si je suis clair)