[php/sql] Problème pour insérer des données
                    
        
     
             
                    aimincorps
    
        
    
                    Messages postés
            
                
     
             
            5
        
            
                                    Statut
            Membre
                    
                -
                                     
mouf13 Messages postés 146 Statut Membre -
        mouf13 Messages postés 146 Statut Membre -
        Bonjour, j'ai un problème avec ma base de données mysql, je vous explique.
Ce petit script est censé insérer des données dans ma bdd, mais quand j'envoie le formulaire, rien ne se passe, j'ai pourtant revérifié pas mal de fois la config de connexion ainsi que mes variables d'envoie de formulaire mais sans plus...
$avertirs = array('0', '1');
$accs = array('0', '1', '2', '3');
if($_POST['forum']) {
if($_POST['avertir'] AND in_array($_POST['avertir'], $avertirs)) {
if($_POST['acces'] AND in_array($_POST['acces'], $accs)) {
mysql_connect($host,$user,$pass);
mysql_select_db($bdd);
$forum = addslashes($_POST['forum']);
$moderateur = addslashes($_POST['moderateur']);
$avertir = $_POST['avertir'];
$acces = $_POST['acces'];
$description = preg_replace('/\n(\r)?/', '<br />', htmlspecialchars(addslashes($_POST['description'])));
$requete = "INSERT INTO forums VALUES('','$forum','$description','$acces','$moderateur','$avertir')";
mysql_query($requete);
mysql_close();
}
}
}
Et voici le html :
<form method="post">
<table>
<caption><b>Ajouter un forum</b></caption>
<tr>
<td>Nom du forum :</td>
<td><input type="text" name="forum" /></td>
</tr>
<tr>
<td>Accès au forum :</td>
<td><select name="acces">
<option value="0">Vérouillé</option>
<option value="1" selected="selected">Membres</option>
<option value="2">Modérateurs</option>
<option value="3">Admins</option>
</select></td>
</tr>
<tr>
<td>Modérateur :</td>
<td><select name="moderateur">
<option value="Aimincorp">Aimincorp</option>
</select></td>
</tr>
<tr>
<td>Fonction avertir :</td>
<td>ON <input type="radio" name="avertir" value="1" checked="checked" />
OFF <input type="radio" name="avertir" value="0" /></td>
</tr>
<tr>
<td>Description du forum :</td>
<td><textarea name="description" cols="40" rows="10"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Valider" /></td>
</tr>
</table>
Voila comme vous pouvez le constater ce code semble n'avoir aucun inconvéniant... Cependant il ne fonctionne pas. xD
Voila merci d'une réponse nette et précise svp, cordialement.
                
            
                
    
    
    
        Ce petit script est censé insérer des données dans ma bdd, mais quand j'envoie le formulaire, rien ne se passe, j'ai pourtant revérifié pas mal de fois la config de connexion ainsi que mes variables d'envoie de formulaire mais sans plus...
$avertirs = array('0', '1');
$accs = array('0', '1', '2', '3');
if($_POST['forum']) {
if($_POST['avertir'] AND in_array($_POST['avertir'], $avertirs)) {
if($_POST['acces'] AND in_array($_POST['acces'], $accs)) {
mysql_connect($host,$user,$pass);
mysql_select_db($bdd);
$forum = addslashes($_POST['forum']);
$moderateur = addslashes($_POST['moderateur']);
$avertir = $_POST['avertir'];
$acces = $_POST['acces'];
$description = preg_replace('/\n(\r)?/', '<br />', htmlspecialchars(addslashes($_POST['description'])));
$requete = "INSERT INTO forums VALUES('','$forum','$description','$acces','$moderateur','$avertir')";
mysql_query($requete);
mysql_close();
}
}
}
Et voici le html :
<form method="post">
<table>
<caption><b>Ajouter un forum</b></caption>
<tr>
<td>Nom du forum :</td>
<td><input type="text" name="forum" /></td>
</tr>
<tr>
<td>Accès au forum :</td>
<td><select name="acces">
<option value="0">Vérouillé</option>
<option value="1" selected="selected">Membres</option>
<option value="2">Modérateurs</option>
<option value="3">Admins</option>
</select></td>
</tr>
<tr>
<td>Modérateur :</td>
<td><select name="moderateur">
<option value="Aimincorp">Aimincorp</option>
</select></td>
</tr>
<tr>
<td>Fonction avertir :</td>
<td>ON <input type="radio" name="avertir" value="1" checked="checked" />
OFF <input type="radio" name="avertir" value="0" /></td>
</tr>
<tr>
<td>Description du forum :</td>
<td><textarea name="description" cols="40" rows="10"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Valider" /></td>
</tr>
</table>
Voila comme vous pouvez le constater ce code semble n'avoir aucun inconvéniant... Cependant il ne fonctionne pas. xD
Voila merci d'une réponse nette et précise svp, cordialement.
        A voir également:         
- [php/sql] Problème pour insérer des données
- Fuite données maif - Guide
- Insérer video powerpoint - Guide
- Insérer signature word - Guide
- Comment insérer des points de suite sur word - Guide
- Trier des données excel - Guide
10 réponses
                        
                    Bonjour
est tu certain que le script passe tes 3 IF ?
if($_POST['forum']) {
if($_POST['avertir'] AND in_array($_POST['avertir'], $avertirs)) {
if($_POST['acces'] AND in_array($_POST['acces'], $accs)) {
tu devrai faire un petit "echo" de test juste apres pour verifier
    
                est tu certain que le script passe tes 3 IF ?
if($_POST['forum']) {
if($_POST['avertir'] AND in_array($_POST['avertir'], $avertirs)) {
if($_POST['acces'] AND in_array($_POST['acces'], $accs)) {
tu devrai faire un petit "echo" de test juste apres pour verifier
                        
                    je suis pas specialement douée en php mais on devrai pas mettre un isset kke part pour voir si la variable existe?
                
                
    
                
                        
                    Mimiste, oui je suis absolument certain d'avoir complèter tous les champs et donc les if ne devraient pas posés de problème. :-(
sakura250006, cela revient au même, même sans le isset si tu met un if de toute manière cela vérifira si la variable existe quoi qu'il arrive. ^^
    
                sakura250006, cela revient au même, même sans le isset si tu met un if de toute manière cela vérifira si la variable existe quoi qu'il arrive. ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
                        
                    Bah a 2h du mat y a un peu moins de monde pour voir le forum ^^
Bon pour savoir ou il ce plante c'est simple il faut rajouter "or die(mysql_error());" apres chaques actions mysql
mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_select_db($bdd) or die(mysql_error());
et ensuite (et c'est la que sa plante je pense)
mysql_query($requete) or die(mysql_error());
du coup il forcera l'arret du script avec un message d'erreur a l'endroit ou il plante
    
                Bon pour savoir ou il ce plante c'est simple il faut rajouter "or die(mysql_error());" apres chaques actions mysql
mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_select_db($bdd) or die(mysql_error());
et ensuite (et c'est la que sa plante je pense)
mysql_query($requete) or die(mysql_error());
du coup il forcera l'arret du script avec un message d'erreur a l'endroit ou il plante
                        
                    1. Je ne voit pas de balise action dans ton formulaire...
ex : <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
2. Verifier les variables proprement :
Si la variable existe et qu'elle n'est pas vide
if(isset($_POST['forum']) && !empty($_POST['forum'])) {
blabla
}
3. mort au double quotes dans des chaines contenant des variables
echo "salut john"; OK
echo 'salut '.$nom; OK
le reste ça pue
4. insert propre
$requete = 'INSERT INTO forums (titre, descriptionn, acces) '.
'VALUES(\''.$forum.'\',\''.$description.'\',\''.$acces.'\')';
    
                ex : <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
2. Verifier les variables proprement :
Si la variable existe et qu'elle n'est pas vide
if(isset($_POST['forum']) && !empty($_POST['forum'])) {
blabla
}
3. mort au double quotes dans des chaines contenant des variables
echo "salut john"; OK
echo 'salut '.$nom; OK
le reste ça pue
4. insert propre
$requete = 'INSERT INTO forums (titre, descriptionn, acces) '.
'VALUES(\''.$forum.'\',\''.$description.'\',\''.$acces.'\')';
