Aller au contenu

Sujets conseillés

Posté

Bonjour j'ai un petit problème avec le code de cette page :

<?php

function sqlval($text){
$text = (!get_magic_quotes_gpc())?addslashes($text):$text;
return $text;
}

include("../connect.php");

if(isset($_POST['ajout'])){

$id = intval($_GET['id']);
$nom_port = $_POST['nom'];
$adresse = $_POST['adresse'];
$codepostal = $_POST['codepostal'];
$ville = $_POST['ville'];

$requete_ins = mysql_query("INSERT INTO $tablePort(nom_port,adresse,codepostal,ville) VALUES(\"".sqlval($nom_port)."\", \"".sqlval($adresse)."\", \"".sqlval($codepostal)."\", \"".sqlval($ville)."\")") or die(mysql_error());

header("Location: list_port.php");
}

?>

<html>
<head>
<title>Naviland - Administration</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../styles.css" type="text/css">
<script language="Javascript" src="fonctions.js"></script>
<script language="Javascript" src="barreoutils.js"></script>
</head>

<body>

<br>
<fieldset>
<legend><img src="../imgs/nav/fd.gif" width="6" height="9"> <a href="list_port.php" class="Lpage">Retour</a> - Ajouter un port de départ</legend>
<br>

<table width="100%" border="0" cellpadding="0" cellspacing="1">
<form name="form_ajout" method="post" action="ajout_port.php" onSubmit="return fnVerifPort();">
<tr>
<td class="barreProd2" colspan="4" align="left" background="../imgs/nav/apBarre.gif">
<b>Ajouter un nouveau port :</b>
</td>
</tr>
<tr>
<td class="barreProd2" bgcolor="#E8E8D9"><b><img src="../imgs/nav/f.gif" width="6" height="9"> Nom :</b></td>
<td class="barreProd2" bgcolor="#F3F3E9" colspan="3"><input type=text name="nom" size="20"></td>
</tr>
<tr>
<td class="barreProd2" bgcolor="#E8E8D9"><b><img src="../imgs/nav/f.gif" width="6" height="9"> Adresse :</b></td>
<td class="barreProd2" bgcolor="#F3F3E9" colspan="3"><input type=text name="adresse" size="30"></td>
</tr>
<tr>
<td class="barreProd2" bgcolor="#E8E8D9"><b><img src="../imgs/nav/f.gif" width="6" height="9"> Code Postal :</b></td>
<td class="barreProd2" bgcolor="#F3F3E9" colspan="3"><input type=text name="codepostal" size="10"></td>
</tr>
<tr>
<td class="barreProd2" bgcolor="#E8E8D9"><b><img src="../imgs/nav/f.gif" width="6" height="9"> Ville :</b></td>
<td class="barreProd2" bgcolor="#F3F3E9" colspan="3"><input type=text name="ville" size="10"></td>
</tr>
<tr>
<td class="barreProd2" colspan="4" align="center" background="../imgs/nav/apBarre.gif">
<img src="../imgs/nav/f.gif" width="6" height="9">
<input type="button" class="bouton" name="ajout" value="Terminer" onClick="document.location.href='ajout_port.php'">
</td>
</tr>
</form>
</table>
<br><br>
</fieldset>
</body>
</html>

Quand j'arrive sur cette page, je veux rentrer un nouveau port mais quand je clique sur le bouton Terminer, rien ne se passe, ou plutôt la page se recharge sans ajouter le port dans la bdd (donc j'imagine que ça ne rentre pas dans le if(isset($_POST['nom'])) mais là j'ai un peu de mal à trouver d'où vient mon oubli

EDIT TheRec/Modérateur: L'utilisation de la balise BBCode CODEBOX est plus appropriée lorsque le code à présenter est aussi long. Merci de l'utiliser dans ces cas.

Posté

:blink: Le code !

Hum, déjà, mets des guillemets pour tous les attributs, même type=text, il a le droit à des guillemets décents pour lui...

Bon, je ne parle pas des tableaux, des attributs de couleurs, etc qui sont en trop.

Tu vas me dire hors-sujet ? Non, pas spécialement, plus le code est lourd, plus débuguer et trouver des erreurs est difficile, c'est pour ça qu'il faut aller au plus simple normalement.

Dernière chose, tu peux utiliser un bouton submit pour valider ton formulaire, là tu le valides en Javascript, ce qui n'est pas une bonne chose !

<input type="submit" name="valider" value="Envoyer" />

Quand tu sais pas si un if est bien pris en compte, ce que tu peux faire, c'est mettre un echo tout au début de ton if.. Par exemple, mets ce code :

if(isset($_POST['ajout'])){
echo "Test";
exit();

Tu testes ta page, tu regardes si le Test a été marqué.

Si oui, alors teste au niveau de la connexion à ta BDD, fais un echo de ta requète, etc...

Si non, alors teste la valeur de $_POST['ajout'] avant ton if, pour voir ce qui est retourné, etc, etc...

Débuguer une page, c'est avant tout tester par où passe ton programme, quelle ligne pose problème, puis trouver le problème dans cette ligne. Voilà le raisonnement à apprendre pour s'en sortir ;)

Posté (modifié)
Hum, déjà, mets des guillemets pour tous les attributs, même type=text, il a le droit à des guillemets décents pour lui...

En fait j'en met tout le temps, là c'était un oubli sur le 1er et avec le copier-coller ben... :)

Dernière chose, tu peux utiliser un bouton submit pour valider ton formulaire, là tu le valides en Javascript, ce qui n'est pas une bonne chose !

<input type="submit" name="valider" value="Envoyer" />

Si je met ça, ça va me recharger automatiquement la page en vue de rentrer dans le "if" (et de passer par le header après) ?

Edit : c'est bon j'ai réussi. Merci bien pour tes conseils ;)

Modifié par WhiskyWalker

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...