Danamel
Messages postés9Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention 4 novembre 2008
-
3 nov. 2008 à 12:08
Danamel
Messages postés9Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention 4 novembre 2008
-
4 nov. 2008 à 14:07
Bonjour à tous
J'ai actuellement sur mon site un livre d'or qui fonctionne mais désirant le modifier afin de changer sa présentation je fait un script pour l'afficher sur 2 pages.
1 fichier livredor.php qui affiche les messages avec pagination qui fonctionne très bien avec les données déjà dans la table 'livredor' de ma base.
+ 1 fichier formulaire.php qui affiche le formulaire et effectue les vérifications et qui ne fonctionne pas.
Si tous les champs sont remplis et le code bon ou faux, le code rentré s'efface et s'affiche l'erreur "Vous n'avez pas mis le bon code".
Si un des champs est vide mais le code bon, le code rentré s'efface et s'affiche l'erreur "Au moins un des champs est vide".
Débutant en PHP je n'arrive pas à trouver ce qui ne fonctionne pas bien dans les vérifications.
Voici le code de la page formulaire.php <?php
session_start();
$nombre1 = mt_rand(2, 19);
$nombre2 = mt_rand(2, 9);
$resultat = $nombre1 + $nombre2;
$_SESSION['captcha'] = $resultat;
if(isset($_POST['go']) AND $_POST['go'] == 'Envoyer') {//Si le formulaire à été reçu
if((isset($_POST['pseudo']) AND !empty($_POST['pseudo'])) AND (isset($_POST['captcha']) AND !empty($_POST['captcha'])) AND (isset($_POST['message']) AND !empty($_POST['message']))) {
// Si les 2 variables ne sont pas vides, et si le résultat du champ du code antispam est égal au code généré par la session, alors, et seulement dans ce cas, on fera notre insertion dans la base
//On vérifie que le code antispam est bon
if(isset($_SESSION['captcha']) AND $_POST['captcha'] == $_SESSION['captcha']) {
// On peut enfin enregistrer :o)
// on se connecte à notre base
$base=mysql_connect("localhost", "root", "");
mysql_select_db ('jardinamel', $base);
// On prépare la requête d'insertion des données
$sql = 'INSERT INTO livredor VALUES("", "'.mysql_escape_string($_POST['pseudo']).'", "'.time("").'", "'.mysql_escape_string($_POST['message']).'")';
// On utilise mysql_real_escape_string par mesure de sécurité et pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error()); // On lance la requête
mysql_close(); // On ferme la connexion à la base de données
header('location: livredor.php'); // On redirige le visiteur vers l'accueil du livre d'or
exit(); // On termine le script courant
}
else {
$erreur = ' Vous n\'avez pas mis le bon code ';// Si le résultat est faux, on renvoie le visiteur...
}
}
else {
$erreur = 'Au moins un des champs est vide';
}
}
// On commence le formulaire
//On inclut le début du doctype en haut de page
include("includes/header_debut.php"); ?>
<title>Insertion d'un nouveau message</title>
<?php
//On inclut la fin du doctype et la banière en haut de page
include("includes/header_fin.php");
//On inclut le sommaire gauche de la page
include("includes/menu_livredor.php"); ?>
<!-- début du contenu de la page -->
Le Livre d'Or
<!-- On commence le formulaire-->
Utilisez le formulaire "CONTACT" pour posez une question
Danamel
Messages postés9Date d'inscriptiondimanche 25 novembre 2007StatutMembreDernière intervention 4 novembre 2008 4 nov. 2008 à 14:07
Bonjour
Personne n'a une petite idée pour au moins m'orienter dans la bonne direction pour chercher ce qui cloche dans mon code. N'étant pas très expert, même débutant en PHP je suis conscient qu'il n'est très bien présenté mais une peu d'aide serait bienvenue.
merci d'avance