Page 1 sur 1

rien ne s'inscrit dans ma table

Posté : 09 févr. 2010, 21:59
par pacific04
je souhaite que les visiteurs puissent inscrire un lieu de drague.
tout a l'air de fonctionner, mais rien ne s'incrit dans la table de la base de donnée.
pouvez vous m'aider.
voici mes deux script
dites moi ce qui ne va pas merci.

(script 1) rédiger un lieu de drague
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Nouveau lieu de drague</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        h3, form
        {
            text-align:center;
        }
        </style>
    </head>
    
    <body>
<h3><a href="premierepagelieudedrague.php">Retour à la liste des lieux de drague</a></h3>
<?php
mysql_connect("localhost", "name", "password");
mysql_select_db("base");
if (isset($_GET['modifier_lieudedrague'])) // Si on demande de modifier un lieu
{
    // On protège la variable "modifier_lieu de drague" pour éviter une faille SQL
    $_GET['modifier_lieudedrague'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_lieudedrague']));
    // On récupère les infos du lieu correspondant
    $retour = mysql_query('SELECT * FROM lieudedrague WHERE id=\'' . $_GET['modifier_lieudedrague'] . '\'');
    $donnees = mysql_fetch_array($retour);
	
	// on protege les données pour la securité
		$Email = mysql_real_escape_string(htmlspecialchars($_POST['Email']));
		$Pseudo = mysql_real_escape_string(htmlspecialchars($_POST['Pseudo']));
		$Departement_du_lieu = mysql_real_escape_string(htmlspecialchars($_POST['Departement_du_lieu']));
		$Ville = mysql_real_escape_string(htmlspecialchars($_POST['Ville']));
		$Type_de_lieu = mysql_real_escape_string(htmlspecialchars($_POST['Type_de_lieu']));
		$Description = mysql_real_escape_string(htmlspecialchars($_POST['Description']));
		$Acces_au_lieu = mysql_real_escape_string(htmlspecialchars($_POST['Acces_au_lieu']));
		$Commentaire = mysql_real_escape_string(htmlspecialchars($_POST['Commentaire']));
    
    // On place le titre et le contenu dans des variables simples
    $Email = stripslashes($donnees['Email']);
    $Pseudo = stripslashes($donnees['Pseudo']);
	$Departement_du_lieu = stripslashes($donnees['Departement_du_lieu']);
    $Ville = stripslashes($donnees['Ville']);
	$Type_de_lieu = stripslashes($donnees['Type_de_lieu']);
    $Description = stripslashes($donnees['Descrition']);
	$Acces_au_lieu = stripslashes($donnees['Acces_au_lieu']);
    $Commentaire = stripslashes($donnees['Commentaire']);
    $id_lieudedrague = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige un nouveau lieu
{
    // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
    $Email = '';
    $Pseudo = '';
	$Departement_du_lieu = '';
    $Ville = '';
	$Type_de_lieu = '';
    $Description = '';
	$Acces_au_lieu = '';
    $Commentaire = '';
    $id_lieudedrague = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
	
}



?>
<form action="listelieudedrague.php" method="post">
<p>E-MAIL : <input type="text" size="30" name="Email" value="<?php echo $Email; ?>" /></p>
<p>PSEUDO : <input type="text" size="30" name="Pseudo" value="<?php echo $Pseudo; ?>" /></p>
<p>DEPARTEMENT DU LIEU : <input type="text" size="30" name="Departement_du_lieu" value="<?php echo $Departement_du_lieu; ?>" /></p>
<p>VILLE : <input type="text" size="30" name="Ville" value="<?php echo $Ville; ?>" /></p>
<p>TYPE DE LIEU : <select name="choix">
    <option value="choix1">Aire de repos</option>
    <option value="choix2">Nature</option>
    <option value="choix3">Parking</option>
    <option value="choix4">Plage</option>
	<option value="choix5">Toilette publique</option></select></p>
<p>DESCRIPTION : <input type="text" size="30" name="Description" value="<?php echo $Description; ?>" /></p>
<p>ACCES AU LIEU : <input type="text" size="30" name="Acces_au_lieu" value="<?php echo $acces_au_lieu; ?>" /></p>
<p>
    COMMENTAIRE :<br />
    <textarea name="Commentaire" cols="50" rows="10">
    <?php echo $Commentaire; ?>
    </textarea><br />
    
    <input type="hidden" name="id_lieudedrague" value="<?php echo $id_lieudedrague; ?>" />
    <input type="submit" value="Envoyer" />
</p>
</form>
</body>
</html>

(script2) liste des lieu de drague 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Liste des lieux de drague</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        h2, th, td
        {
            text-align:center;
        }
        table
        {
            border-collapse:collapse;
            border:2px solid black;
            margin:auto;
        }
        th, td
        {
            border:1px solid black;
        }
        </style>
    </head>
    
    <body>
 
<h2><a href="redigerlieudedrague.php">Ajouter un lieu</a></h2>
<?php
mysql_connect("localhost", "name", "password");
mysql_select_db("base");
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster un lieu ?
//-----------------------------------------------------
if (isset($_POST['Email']) 
AND isset($_POST['Pseudo']) 
AND isset($_POST['Departement_du_lieu']) 
AND isset($_POST['Ville']) 
AND isset($_POST['Type_de_lieu']) 
AND isset($_POST['Description']) 
AND isset($_POST['Acces_au_lieu'])
AND isset($_POST['Commentaire']))

{
// on securise

		$Email = mysql_real_escape_string(htmlspecialchars($_POST['Email']));
        $Pseudo = mysql_real_escape_string(htmlspecialchars($_POST['Pseudo']));
		$Departement_du_lieu = mysql_real_escape_string(htmlspecialchars($_POST['Departement_du_lieu']));
		$Ville = mysql_real_escape_string(htmlspecialchars($_POST['Ville']));
		$Type_de_lieu = mysql_real_escape_string(htmlspecialchars($_POST['Type_de_lieu']));
		$Description = mysql_real_escape_string(htmlspecialchars($_POST['Description']));
		$Acces_au_lieu = mysql_real_escape_string(htmlspecialchars($_POST['Acces_au_lieu']));
		$Commentaire = mysql_real_escape_string(htmlspecialchars($_POST['Commentaire']));
		
		$Ville = nl2br($Ville); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
		$Type_de_lieu = n12br($Type_de_lieu);
		$Description = n12br($Description);
		$Acces_au_lieu = n12br($Acces_au_lieu);
		$Commentaire = n12br($Commentaire);
 
    $Email = addslashes($_POST['Email']);
    $Pseudo = addslashes($_POST['Pseudo']);
	$Departement_du_lieu = addslashes($_POST['Departement_du_lieu']);
    $Ville = addslashes($_POST['Ville']);
	$Type_de_lieu = addslashes($_POST['Type_de_lieu']);
    $Description = addslashes($_POST['Description']);
	$Acces_au_lieu = addslashes($_POST['Acces_au_lieu']);
    $Commentaire = addslashes($_POST['Commentaire']);
// On se déconnecte de MySQL
        mysql_close();
    // On vérifie si c'est une modification de lieu ou pas
    if ($_POST['id_lieudedrague'] == 0)
    {
   mysql_connect("localhost", "name", "password");
mysql_select_db("base");     
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
        mysql_query("INSERT INTO lieudedrague VALUES('', '$Email', '$Pseudo', '$Departement_du_lieu', '$Ville', '$Type_de_lieu', '$Description', '$Acces_au_lieu', '$Commentaire', 'time()')");
    }
    else
    {
        // On protège la variable "id_lieu de drague" pour éviter une faille SQL
        $_POST['id_lieudedrague'] = addslashes($_POST['id_lieudedrague']);
        // C'est une modification, on met juste à jour le titre et le contenu
        mysql_query("UPDATE lieudedrague SET Email='" . $Email . "',
		Pseudo='" . $Pseudo . "', 
		Departement_du_lieu='" . $Departement_du_lieu . "',
		Ville='" . $Ville . "', 
		Type_de_lieu='" . $Type_de_lieu . "', 
		Description='" . $Description . "', 
		Acces_au_lieu='" . $Acces_au_lieu . "', 
		Commentaire='" . $Commentaire . "', WHERE id='" . $_POST['id_lieudedrague'] . "'");
    }
}
 // On se déconnecte de MySQL
        mysql_close();
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_lieu_de_drague'])) // Si on demande de supprimer un lieu de drague
{
   mysql_connect("localhost", "name", "password");
mysql_select_db("base");   
// Alors on supprime le lieu correspondant
    // On protège la variable "id_lieu_de_drague" pour éviter une faille SQL
    $_GET['supprimer_lieu_de_drague'] = addslashes($_GET['supprimer_lieu_de_drague']);
    mysql_query('DELETE FROM lieudedrague WHERE id=\'' . $_GET['supprimer_lieu_de_drague'] . '\'');
    
	
}

?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Email</th>
<th>Pseudo</th>
<th>Departement du lieu</th>
<th>Ville</th>
<th>Type de lieu</th>
<th>Description</th>
<th>Acces au lieu</th>
<th>Commentaire</th>
<th>Date</th>
</tr>
<?php
mysql_connect("localhost", "name", "password");
mysql_select_db("base");  
$retour = mysql_query('SELECT * FROM lieudedrague ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les lieux de drague
{

?>
<tr>
<td><?php echo '<a href="rediger_lieudedrague.php?modifier_lieu_de_drague=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_lieudedrague.php?supprimer_lieu_de_drague=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['Email']); ?></td>
<td><?php echo stripslashes($donnees['Pseudo']); ?></td>
<td><?php echo stripslashes($donnees['Departement_du_lieu']); ?></td>
<td><?php echo stripslashes($donnees['Ville']); ?></td>
<td><?php echo stripslashes($donnees['Type_de_lieu']); ?></td>
<td><?php echo stripslashes($donnees['Description']); ?></td>
<td><?php echo stripslashes($donnees['Acces_au_lieu']); ?></td>
<td><?php echo stripslashes($donnees['Commentaire']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>

<?php
} // Fin de la boucle qui liste les lieux de dragues
// on créer des pages au fur et a mesure et
// On écrit les liens vers chacune des pages
// -----------------------------------------
 mysql_connect("localhost", "name", "password");
mysql_select_db("base");  
// 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 lieudedrague');
$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="premierepagelieudedrague.php?page=' . $i . '">' . $i . '</a> ';
}
// On se déconnecte de MySQL
        mysql_close();
?>
 
</p>
 
<?php
 mysql_connect("localhost", "name", "password");
mysql_select_db("base"); 
 
// --------------- Etape 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
}
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 lieudedrague ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
 
while ($donnees = mysql_fetch_array($reponse))
{
        echo '<p><strong>' . $donnees['pseudo'] . '</strong> vous invites à visiter :<br />
		' . $donnees['Type_de_lieu'] . 'à ' . $donnees['Ville'] . '</p>';



}
// On se déconnecte de MySQL
        mysql_close();
?>
</table>
</body>
</html>

Re: rien ne s'inscrit dans ma table. help! merçi

Posté : 09 févr. 2010, 22:11
par stealth35
met les balise [ php][/ php] autour de ton code

Re: rien ne s'inscrit dans ma table. help! merçi

Posté : 09 févr. 2010, 22:27
par ooflorent
met les balise [ php][/ php] autour de ton code
Et retire le superflu :priere:

Re: rien ne s'inscrit dans ma table. help! merçi

Posté : 09 févr. 2010, 23:16
par pacific04
merçi pour votre aide, mais suis vraiment debutant, lorsque vous dites mets les balises
 
autour de mon code, cela signifie quoi. desole pour cette question qui dois vous sembler stupide, mais je n'est pas le choix, je dois vous la poser . merçi encore

Re: rien ne s'inscrit dans ma table. help! merçi

Posté : 09 févr. 2010, 23:21
par dunbar
Salut,
Pour la mise en forme des messages c'est ici
Un détail aussi
il faut écrire nl2br et pas n12br :wink:

Pour le reste juste un avis perso recommence tout ton code parce que là c'est une catastrophe 8-|

Re: rien ne s'inscrit dans ma table. help! merçi

Posté : 10 févr. 2010, 07:48
par pacific04
je te remercie. je vais essayer je te tiens au courant. merci

Re: rien ne s'inscrit dans ma table. help! merçi

Posté : 10 févr. 2010, 16:47
par niuxe
Hello,
Pour le reste juste un avis perso recommence tout ton code parce que là c'est une catastrophe 8-|
Un peu dur comme avis, mais c'est vrai qu'il y a de nombreux problèmes.

Je t'invite à lire ou à relire ces cours :
* L'inclusion de fichier
* Les fonctions utilisateurs
* Interroger une table MySQL
* Alimenter une ou plusieurs tables mySQL

J'ai lu ton code en biais, pense à bien indenter, bien espacer et bien commenter (pas de commentaire superflu non plus). Personnellement, je préfère cette mise en forme :
function une_fonction($argument){
    //instruction
}
Je ne comprends pas bien ton histoire de addslashes/stripslashes. Les magic quotes ?
Que vaut ?
echo INSERT INTO lieudedrague VALUES('', '$Email', '$Pseudo', '$Departement_du_lieu', '$Ville', '$Type_de_lieu', '$Description', '$Acces_au_lieu', '$Commentaire', 'time()')
Comme tu me parais un peu débutant, je te recommande plutôt d'écrire :
INSERT INTO ma_table(liste,de,champs,definie,dans,un,ordre,que,je,veux) VALUES('valeurs','de','champs','définies','dans','l','ordre','spécifié','précédemment','dans la paire de parenthèses');

Re: rien ne s'inscrit dans ma table. help! merçi

Posté : 11 févr. 2010, 20:55
par pacific04
merci, je réessai de reécrire mon script. et je trouve que la reponse n'est pas si dure que ça. aumoins je sais ce que je vaux. mais je fais tout pour m'ameliorér. je tiens au courant.

Re: rien ne s'inscrit dans ma table. help! merçi

Posté : 12 mars 2010, 12:45
par pacific04
bonjour, je viens de plancher depuis quelque jour sur mon nouveau script. je t'ai écouté, j'ai tout refait. il me semble que c'est plus clair, mais ca ne marche toujours pas. Je te donne mon nouveau script.Le formulaire apparait normalement, je peux noté tout ce que je veux dedans, mais ca ne s'inscrit toujours pas dans ma table. en esperant que tu pourra me dire ou est mon erreur. merci d'avance.

Code : Tout sélectionner

<?php // on teste si le formulaire a été validé if (isset($_POST['go']) && $_POST['go']=='Poster le lieu') {     // on se connecte à notre base     $base = mysql_connect ('localhost', '', '');     mysql_select_db('', $base);     // on teste la déclaration de nos variables     if (!isset($_POST['Email']) AND !isset($_POST['Pseudo']) AND !isset($_POST['Departement_du_lieu']) AND     !isset($_POST['Ville']) AND !isset($_POST['Acces_au_lieu']) AND     !isset($_POST['Description']) AND !isset($_POST['Commentaire'])) {         $erreur = 'Les variables nécessaires au script ne sont pas définies.';     }     else {         if (empty($_POST['Email']) OR empty($_POST['Pseudo']) OR empty($_POST['Departement_du_lieu']) OR         empty($_POST['Ville']) OR empty($_POST['Acces_au_lieu']) OR         empty($_POST['Description']) OR empty($_POST['Commentaire'])) {             $erreur = 'Au moins un des champs est vide.';         }         // si tout est bon, on peut commencer l'insertion dans la base         else {             // lancement de la requête d'insertion             $sql = 'INSERT INTO lieudedrague VALUES("", "'.mysql_real_escape_string($_POST['Email']).'",             "'.mysql_real_escape_string($_POST['Pseudo']).'",             "'.mysql_real_escape_string($_POST['timestamp']).'",             "'.mysql_real_escape_string($_POST['Departement_du_lieu']).'",             "'.mysql_real_escape_string($_POST['Ville']).'",              "'.mysql_real_escape_string($_POST['Acces_au_lieu']).'",               "'.mysql_real_escape_string($_POST['Commentaire']).'")';             // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)             mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());             // on ferme la connexion à la base de données             mysql_close();             // on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.             header('Location: ../premierepagelieudedrague.php');             // on termine le script courant             exit();         }     } } ?> <html> <head> <title>Insertion d'un nouveau lieu</title> </head> <body> <!-- on fait pointer le formulaire vers la page traitant les données --> <form action="redigerlieudedrague.php" method="post"> <table> <tr><td> <span class="gras">Email :</span> </td> <td> <input type="text" name="Email" maxlength="30" size="20" value="<?php if (isset($_POST['Email']))  echo htmlentities(trim($_POST['Email'])); ?>"> </td></tr> <tr><td> <span class="gras">Pseudo :</span> </td> <td> <input type="text" name="Pseudo" maxlength="50" size="20" value="<?php if (isset($_POST['Pseudo']))  echo htmlentities(trim($_POST['Pseudo'])); ?>"> </td></tr> <tr><td> <span class="gras">Departement du lieu :</span> </td><td> <input type="text" name="Departement_du_lieu" maxlength="10" size="2" value="<?php if (isset($_POST['Departement_du_lieu']))  echo htmlentities(trim($_POST['Departement_du_lieu'])); ?>"> </td></tr> <tr><td> <span class="gras">Ville :</span> </td><td> <input type="text" name="Ville" maxlength="10" size="20" value="<?php if (isset($_POST['Ville']))  echo htmlentities(trim($_POST['Ville'])); ?>"> </td></tr> <tr><td> <span class="gras">Acces :</span> </td><td> <textarea name="Acces_au_lieu" cols="50" rows="10"><?php if (isset($_POST['Acces_au_lieu']))  echo htmlentities(trim($_POST['Acces_au_lieu'])); ?></textarea> </td></tr> <tr><td> <span class="gras">Commentaire :</span> </td><td> <textarea name="Commentaire" cols="50" rows="10"><?php if (isset($_POST['Commentaire']))  echo htmlentities(trim($_POST['Commentaire'])); ?></textarea> </td></tr> <tr><td><td align="right"> <input type="submit" name="go" value="poster le lieu"> </td></tr></table> </form> <?php // on affiche les erreurs éventuelles if (isset($erreur)) echo '<br /><br />',$erreur; ?> </body> </html>
le formulaire appar

Re: rien ne s'inscrit dans ma table

Posté : 12 mars 2010, 16:00
par dunbar
Salut,
A première vue voici déjà ceci
if (isset($_POST['go']) && $_POST['go']=='Poster le lieu') 
Dans ton form c'est poster le lieu et pas Poster le lieu donc comme ca ne correspond pas il n'exécute pas le script normal :wink:

Re: rien ne s'inscrit dans ma table

Posté : 13 mars 2010, 14:37
par pacific04
merçi a toi. l'erreur est bien le p de poster. tout marche tres bien. sur le nombre de site que j'ai demander de l aide, tu as été le seul a trouver cette erreur. encore merci.

Re: rien ne s'inscrit dans ma table

Posté : 13 mars 2010, 14:47
par dunbar
:pouce: