Page 1 sur 1

mon message d'erreur ne s'affiche pas

Posté : 23 janv. 2017, 21:29
par ytzmi
bonjour

tout fonctionne sauf que mon message dit d'erreur ne s'affiche pas, disant que l'enregistrement a été effectuée.
<!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" lang="fr">

<?php

	// on se connecte à notre base
				mysql_connect ("localhost", "bdd", "mdp");
				mysql_select_db ("table");	
								
if(isset($_POST['forminscription']))
	{	
		$page = htmlspecialchars($_POST['page']);
		$urlpage = htmlspecialchars($_POST['urlpage']);			
		if(!empty($_POST['page']) AND !empty($_POST['urlpage']))	
			
			{
				$sql = "INSERT INTO table VALUES ('','" . $page . "','" . $urlpage . "')";
			
			}
			else
			{
				$erreur = "la page a été enregistrée";
			}
				// on lance la requête et on impose un message d'erreur
				mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
		// on ferme la connexion à la base de données
				mysql_close();
	}				
	
				
?>


<html>
<head>
	<title>Enregistrement page</title>
	<meta charset="utf-8" />
</head>

<body>

<div align="center">Enregistrer une page

<br /><br />

<form method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES); ?>">
	<table>
		<tr>
		<td align="right"><label for="page">Nom de la page : </label>
		</td>
		<td align="right"><input type="text" placeholder="entrer le nom de la page" name="page" size="40" value="<?php if(!empty($_POST['page'])) : echo htmlspecialchars($_POST['page'], ENT_QUOTES); endif; ?>" />
		</td>
		</tr>
		<tr>
		<td align="right"><label for="urlpage">adresse url de la page : </label>
		</td>
		<td align="right"><input type="text" placeholder="entrer l'url" name="urlpage" size="40" value="<?php if(!empty($_POST['urlpage'])) : echo htmlspecialchars($_POST['urlpage'], ENT_QUOTES); endif; ?>" />
		</td>
		</tr>
	</table>
	<br /><br />
		<input type="submit" value="J'ajoute la page" name="forminscription">
</form>
<?php
	if(isset($erreur))
	{
	echo "la page a été enregistrée";
	}


?>
</div>

</body>

</html>
j'ai essayé le PDO, mon serveur est free, ça ne fonctionne pas...

merci pour votre aide et surtout votre oeil avertit.

Re: mon message d'erreur ne s'affiche pas

Posté : 23 janv. 2017, 21:46
par or 1
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
cette ligne est exécutée dans les 2 cas, ce qui ne me parait pas une bonne idée. quand $erreur comprend quelque chose, le die se déclenche donc il ne s'affichera jamais vu que la suite du code ne s’exécute pas.

Re: mon message d'erreur ne s'affiche pas

Posté : 25 janv. 2017, 20:02
par ytzmi
merci pour cette réponse

j'ai clarifier par un exit et un retour à la page précédente.
ce n'est pas très heureux mais ça ira