jantonazzo
Messages postés46Date d'inscriptionlundi 24 janvier 2005StatutMembreDernière intervention 7 avril 2010
-
26 mai 2006 à 19:21
jantonazzo
Messages postés46Date d'inscriptionlundi 24 janvier 2005StatutMembreDernière intervention 7 avril 2010
-
29 mai 2006 à 11:15
Bonjour à tous.
J'ai un petit probleme pour concerver les champs envoyé si une erreur s'est produite.
En gros j'ai un formulaire à 7 champs, si les 7 champs sont rensseignés tout ce passe bien
et la page est redirigée vers insertDoc.php.
Par contre si 1 des 4 champs importants est manquant la page n'est pas redirigée mais elle affiche le message d'erreur.
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 26 mai 2006 à 19:56
A partir du moment où tu changes de page, $_POST[] redevient vide.
Le header() fait partie de genre de situation.
Solution ? Mettre le formulaire et le traitement sur la même page, et si y'a une erreur, tu fais un : $erreur = 'file'; ou autre, et dans ton formulaire :
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 27 mai 2006 à 19:31
Salut,
Personnellement, je changerais ça :
<?php
if (isset($_POST['provenance']))
{
$typedoc = $_POST['typedoc'];
$comment = $_POST['commentaire'];
$list = $_POST [ 'societe' ];
$file = $_FILES["monfichier"]["name"];
$from = $_POST['provenance'];
$date = $_POST['ddd'];
$truc = isset( $_POST['typedoc'] );
if (empty($typedoc)) {
header("Location:indexdoc.php?erreur=typedoc");
}
else if (empty($comment)) {
header("Location:indexdoc.php?erreur=comment");
}
else if (empty($list)) {
header("Location:indexdoc.php?erreur=society");
}
else if (empty($file)) {
header("Location:indexdoc.php?erreur=file");
}
else
{
header("Location:ajout_doc.php");
}
}
?>
Par ça :
<?php
// Un joli raccourci pour jamais ce tromper...function post( $key, $default false, $error false ) {
if( !isset( $_POST[$key] ) ) {
if( $error !== false ) {
trigger_error( $error ); // Bon là, il faudra que tu gère toi même les erreurs de type E_USER_NOTICE
}
return $default;
}
return $_POST[$key];
// moi je fais return addslashes($_POST[$key]); mais rien n'oblige...
}
if( post('provenance') )
{
$typedoc = post('typedoc', false, 'Vous devez spécifier un typedoc');
$comment = post('commentaire', '', 'Pourquoi y\'a pas de commentaire?');
$list = post('societe', '', 'La sociétée est manquante');
$file = $_FILES["monfichier"]["name"]; /// !!! faire une fnoction équivalente avec $_FILES
$from = post('provenance');
$date = post('ddd');
$truc = $typedoc!==false;
// header("Location:ajout_doc.php"); <= perte des valeurs de POST si ça...
require 'ajout_doc.php'; < = Là, tu as encore les POST disponible (ainsi que les variables déclarées ci-dessus
}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?