Envoi formulaire vers base de donnée ?

Résolu/Fermé
Utilisateur anonyme - 2 nov. 2012 à 18:10
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 3 nov. 2012 à 17:28
Bonjour,

J'ai créé un BDD en ligne et j'ai fais un formulaire qui permetterait d'envoyer des infos vers cette BDD. Toutes fois, mon code ne fonctionne pas...
Il y a deux pages PHP. La 1ère c'est "form.php" (c'est le formulaire), la 2ème c'est "php-form-processor.php" (c'est l'action qu'execute le bouton "Submit" dans le formulaire et qui est censé inscrire les infos dans la BDD. Malheureusement ça ne le fait pas... voici le code de "form.php" :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulaire</title>
</head>
<body>
<form action="php-form-processor.php" method="post">
  <p>Quel est votre film préféré ?</p>
    <input type="text" name="formMovie" maxlength="50" value="<?=$varMovie;?>" />
  <p>Quel est votre nom ?</p>
    <input type="text" name="formName" maxlength="50" value="<?=$varName;?>" />
  <p>Selectionnez votre sexe</p>
    <select name="formGender">
      <option value="">Selectionnez...</option>
      <option value="M">Masculin</option>
      <option value="F">Féminin</option>
    </select>
  <br />
  <br />
    <input type="submit" name="formSubmit" value="Submit" />
</form>
</body>
</html>



Et voici le code de "php-form-processor.php" :

<?php
	if($_POST['formSubmit'] == "Submit") 
    {
		$errorMessage = "";
		
		if(empty($_POST['formMovie'])) 
        {
			$errorMessage .= "<li>You forgot to enter a movie!</li>";
		}
		if(empty($_POST['formName'])) 
        {
			$errorMessage .= "<li>You forgot to enter a name!</li>";
		}
		if(empty($_POST['formGender'])) 
        {
			$errorMessage .= "<li>You forgot to select your Gender!</li>";
		}

        $varMovie = $_POST['formMovie'];
		$varName = $_POST['formName'];
		$varGender = $_POST['formGender'];

		if(empty($errorMessage)) 
        {
			$db = mysql_connect("**********","**********","************");
			if(!$db) die("Error connecting to MySQL database.");
			mysql_select_db("***************" ,$db);

			$sql = "INSERT INTO **************** (moviename,yourname,gender) VALUES (".
							PrepSQL($varMovie) . ", " .
							PrepSQL($varName) . ", " .
							PrepSQL($varGender) . ")";
			mysql_query($sql);
			
			header("Location: thank-you.html");
			exit();
		}
	}
            
    // function: PrepSQL()
    // use stripslashes and mysql_real_escape_string PHP functions
    // to sanitize a string for use in an SQL query
    //
    // also puts single quotes around the string
    //
    function PrepSQL($value)
    {
        // Stripslashes
        if(get_magic_quotes_gpc()) 
        {
            $value = stripslashes($value);
        }

        // Quote
        $value = "'" . mysql_real_escape_string($value) . "'";

        return($value);
    }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<title>PHP Form processing example</title>
<!-- define some style elements-->
<style>
label,a 
{
	font-family : Arial, Helvetica, sans-serif;
	font-size : 12px; 
}

</style>	
</head>

<body>

       <?php
		    if(!empty($errorMessage)) 
		    {
			    echo("<p>There was an error with your form:</p>\n");
			    echo("<ul>" . $errorMessage . "</ul>\n");
            }
        ?>

		<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
			<p>
				<label for='formMovie'>Which is your favorite movie?</label><br/>
				<input type="text" name="formMovie" maxlength="50" value="<?=$varMovie;?>" />
			</p>
			<p>
				<label for='formName'>What is your name?</label><br/>
				<input type="text" name="formName" maxlength="50" value="<?=$varName;?>" />
			</p>
			<p>
				<label for='formGender'>What is your Gender?</label><br/>
				<select name="formGender">
					<option value="">Select...</option>
					<option value="M"<? if($varGender=="M") echo(" selected=\"selected\"");?>>Male</option>
					<option value="F"<? if($varGender=="F") echo(" selected=\"selected\"");?>>Female</option>
				</select>
			</p>
			<input type="submit" name="formSubmit" value="Submit" />
		</form>
		
<p>
<a href='http://www.html-form-guide.com/php-form/php-form-processing.html'
>'PHP form processing' article page</a>
</p>

</body>
</html>



Donc voilà tout ça ne marche pas... HELP PLEASE !


MERCI D'AVANCE !!!
Chris.


1 réponse

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
3 nov. 2012 à 11:27
Hum, le plus simple pour chercher l'erreur, c'est déjà d'essayer de faire un echo sur ta requête ($sql) (Il faut donc enlever le header location temporairement), tu verra donc si tu arrive bien jusque là, et si ta requête n'est pas mauvaise.
ça permettra aussi aux erreur de s'afficher.
0
Utilisateur anonyme
3 nov. 2012 à 14:37
J'enlève quelle ligne donc ?
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
3 nov. 2012 à 16:09
tu enlève le exit et le header location, juste le temps de faire un echo $sql;
tu verra ainsi si comment php interprète ta requête, si elle s'affiche, met là dans phpmyadmin pour savoir ce qui cloche, si rien ne s'affiche, c'est que tu n'arrive même pas à la requête et que l'un des if avant n'est pas bon.
0
Utilisateur anonyme
3 nov. 2012 à 17:21
Ca marche dans phpmyadmin...
1
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
3 nov. 2012 à 17:28
Hum, alors là, je ne vois pas, si l'écho fonctionne, que le requête une fois interprété par php est bonne il ne devrait pas y avoir de soucis pour l'insertion :/
0