PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 17-06-2009 11:59:24

billyrose
Membre
Inscription : 17-06-2009
Messages : 22

[Résolu] message de session ne s'affiche pas

Bonjour a tous,

J'ai une formulaire , appele create_br.php, qui permet de remplir la table d'une base de donnees.
Mais voila, je souhaite eviter que la la reactualisation en renvoie des donnees dans la table alors j'ai utilise la redirection vers mon formulaire create_br.php. Mais je souhaite afficher a l'utilisateur que les informations qu'il a saisies ont ete effectivement enregistrees dans la table. Pour cela je cree une session $_SESSION ['success'] et que j'affiche apres la redirection.

<?php
// This page allows a user to create a business rule
session_start();
if (isset($_POST['cancel'])){
  if (! empty($_POST)) {
  $_POST=array();
  }
} // End of Cancel

elseif (isset($_POST['submitted'])) { // Handle the form.
  require_once ('../mysqli_connect.php');
  include ('includes/login_functions.inc.php');
 
  if (isset($_SESSION['success'])){
    echo "<p>{$_SESSION['success']}</p>; You can add a new one";
   
  }
  //empty $errors
  //unset ($_SESSION['success']);
  $errors=array();
 
  // Trim all the incoming data:
  $trimmed = array_map('trim', $_POST);
 
  if (strlen($_POST['brulecode']) != 3){
    $errors[]= 'Please enter a Business code or the Business Rule you enter has less than 3 characters.';
  } else {
    $brc=$_POST['brulecode'];
  }
 
  if (empty($_POST['bruletype'])){
    $errors[]= 'Please enter a Business type. It is a mandatory field';
  } else {
    $brt=$_POST['bruletype'];
  }
 
  if (empty($_POST['brulecontent'])){
    $errors[]= 'Please enter a Field in Rule Content. It is a mandatory field';
  } else {
    $frc=$_POST['brulecontent'];
  }
 
  $brd=$_POST['bruledescription'];
 
  if (empty($errors)) {
   
    $q = "INSERT INTO business_rules (Biz_rule_code, Rule_type, Rule_content, BR_description) VALUES ('$brc', '$brt', '$frc', '$brd')";
    $r = mysqli_query ($dbc, $q);
    //or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));

      if (mysqli_affected_rows($dbc) == 1) { // If it ran OK.
        $_SESSION['success']='The business rule has been added in the system.';
       
        $url = absolute_url ('create_br.php');
        header("Location: $url");
        exit();
        mysqli_close($dbc);
       
      } else { //Not OK
        echo '<p class="error">You could not be registered due to a system error. We apologize for any inconvenience.</p>';
      }
  } else {
    echo '<h1>Error!</h1>
    <p class="error">The following error(s) occurred:<br />'
;
    foreach ($errors as $msg) {
      echo " - $msg<br />\n";
    }
    echo '</p><p>Please try again.</p>';
  }
 
} // End of form submitted         

?>
<h1> > Create a Business Rule </h1>
<form action="create_br.php" method="post">
  <fieldset style="width: 500px" >
  <legend>CBR</legend>
 
  <table align="left" border = "0" cellspacing ="0" cellpadding="3">
 
  <tr><td><b>Business Rule Code:</b></td> <td><input type="text" name="brulecode" style="background:#FFFFCC" size="20" maxlength="20" value="<?php if (isset($trimmed['brulecode'])) echo $trimmed['brulecode']; ?>" /></td></tr>
 
  <tr><td><b>Business Rule Type:</b></td> <td> <input type="text" name="bruletype" style="background:#FFFFCC" size="20" maxlength="40" value="<?php if (isset($trimmed['bruletype'])) echo $trimmed['bruletype']; ?>" /></td></tr>
 
  <tr><td><b>Field in Rule Content:</b></td> <td> <input type="text" name="brulecontent" style="background:#FFFFCC" size="20" maxlength="40" value="<?php if (isset($trimmed['brulecontent'])) echo $trimmed['brulecontent']; ?>" /></td></tr>
 
  <tr><td><b>Description:</b></td> <td> <textarea name="bruledescription" rows="5" cols="30" wrap="hard" ><?php if (isset($_POST['bruledescription'])) echo $_POST['bruledescription']; ?></textarea> </td></tr>
 
  <tr>
    <td></td>
    <td><div align="center"><input type="submit" name="submit" value="Register" /></div></td>
    <td><div align="center"><input type="submit" name="cancel" value="Cancel" /></div></td>
  </tr>
 
  <input type="hidden" name="submitted" value="TRUE" />
  </table>
  </fieldset>
</form>

Probleme: je suis redirige vers mon formulaire mais le message qui est dans la session ne s'affiche pas. J'ai verifie et la session existe bien dans le dossier tmp de Wampserver.
Comment puis afficher mon resultat?

Merci

Hors ligne

#2 17-06-2009 12:22:12

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] message de session ne s'affiche pas

Saluton,
Je ne vois nulle part dans ce script d'affectation d'une valeur quelconque à $_SESSION['success']
Ah si, ligne 52.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 17-06-2009 17:42:29

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : [Résolu] message de session ne s'affiche pas

Bonsoir,

humm...
Que donne un print_r($_SESSION); juste après le SESSION_START() ?


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#4 18-06-2009 07:57:21

billyrose
Membre
Inscription : 17-06-2009
Messages : 22

Re : [Résolu] message de session ne s'affiche pas

Salut a tous,

j'ai trouve le probleme. En fait l'affichage du $_SESSION['success'] doit se faire a l'exterieur de la boucle

 if (isset($_SESSION['success'])){
    echo "<p>{$_SESSION['success']}</p>; You can add a new one";
    }
if (isset($_POST['cancel'])){

} // End of Cancel
 
elseif (isset($_POST['submitted']))

}// End of form submitted

Merci a tous

Hors ligne

#5 18-06-2009 08:50:35

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] message de session ne s'affiche pas

Quelle boucle ?
Je ne vois aucun for, foreach ou while dans ce script.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#6 18-06-2009 09:36:40

billyrose
Membre
Inscription : 17-06-2009
Messages : 22

Re : [Résolu] message de session ne s'affiche pas

je parlais en fait du if {} elseif {}

Hors ligne

#7 18-06-2009 10:07:16

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : [Résolu] message de session ne s'affiche pas

Alors il s'agit d'une structure alternative et non pas d'une structure répétitive.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#8 18-06-2009 10:09:57

billyrose
Membre
Inscription : 17-06-2009
Messages : 22

Re : [Résolu] message de session ne s'affiche pas

ok. merci. jai  resolu mon probleme. Merci pour vos reponses

Hors ligne

Pied de page des forums