Ankündigung

Einklappen
Keine Ankündigung bisher.

Bei Fehler Daten an Formular zurück, mit Session

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bei Fehler Daten an Formular zurück, mit Session

    Na, es geht nicht! Was mache ich falsch?

    Nach dem Input im Form, resp. dem submit erfasse ich den Inhalt in eine Session
    $_SESSION['veran_erfassen']=$_POST;

    Das funktioniert, ist in der URL erkennbar. Nun habe ich aber verschiedene Fehlerabfragen und jedesmal einen unterschiedlichen fehlertext, dann sollte der User zurück und die bereits eigegebenen Daten weiderfinden. Mit dem JavaScript back geht es zwar, aber nicht auf alles Systemen, so wurde mir zu Sessions geraten. und jetzt bin ich nah....

    Die Abfragen der Fehler lauten
    Code:
    $heute=time();
    if($zeitraum ==='einmalig' and $anfangsdatum<$heute)
    {echo"
    
    $txt_rueckmeldung13</p>
    
    
    $txt_rueckmeldung12</p>";
    exit;}
    Nun, die Abfrage als solches geht, wie komme ich nun mit dem Inhalt der Session zurück, also eben nicht mit dem JavaScript, und wie fülle ich dies in das Formular ein.

    Habe es schon mit einer if-Schlaufe versucht, also

    Code:
    if($_SESSION['veran_erfassen']>0;)
    {
    }
    Aber auch das brachte nichts. Muss ich die Namen der Felder umbenennen? oder soll ich gar nicht auf die erste Seite gehen, sonder auf eine 2. die aber für den User gleich aussieht?

    Eine verzweifelte Sonja dankt


  • #2
    Re: Bei Fehler Daten an Formular zurück, mit Session

    Zitat von Sonja
    Na, es geht nicht! Was mache ich falsch?
    Guck Dir erst mal das Beispiel an:
    http://test.php-help.info/session-3/
    ... und klickere ein wenig darin rum. Quelltext wird angezeigt.

    Kommentar


    • #3
      Die Session muss ja gar nicht mitgegeben werden!

      Irgenwie klappt es nicht. Was ich erst jetzt geschnallt habe, ist dass beim Link die Session gar nicht speziell mitgegeben werdne muss, die geht schon automatisch mit. Es dauerte lange bis ich das merkte, aber jetzt weiss ich es.

      Nun aber doch nochmals. Ich post nun den ganzen Code, resp. den wichtigne Teil des Codes, und hoffe so auf Hilfe.

      Wie bringe ich den Inhalt der Session $_SESSION["veran_erfassen"] in die Felder des Formulares? Vorallem auch in die Radiobuttons? PS: wie ich die Radionbuttons aufgrund des Tabelleninhaltes anzeigen kann kenn ich, doch hier?

      Könnte es sein, dass ich jeden Input abfragen muss, ob der inhal schon in der Session ist? Wenn ja Inhalt des Session ausgeben ansonsten leer lassen? Falls dem so ist, heisst es dann

      if($_SESSION['veran_erfassen´]['oeffentlich']>0)
      {}

      Das probierte ich und es ging nicht!

      Danke



      Code:
      <? session_start();
      require("../language/veranstaltungen_de.php"); 
      require("../lib/header.php"); 
      require("../lib/login_check.php"); 
      ?>
      // HTML-Head
      
      <?
      if(isset($submit))
      {
      $_SESSION["veran_erfassen"] = $_POST; 
      
      // Fehlermeldungen
      if($zeitraum ==='einmalig' and ($d_a=="" or $mo_a=="" ))
      {echo"
      
      $txt_rueckmeldung1</p>
      
      
      $txt_rueckmeldung12</p>";
      exit;}
      
      if($zeitraum =='fortlaufend' and $tag=="")
      {echo"
      
      $txt_rueckmeldung2</p>
      
      
      $txt_rueckmeldung12</p>";
      exit;}
      
      if($zeitraum=='fortlaufend' and ($h3=="" or $mi3==""))
      {echo"
      
      $txt_rueckmeldung3</p>
      
      
      $txt_rueckmeldung12</p>";
      exit;}
      
      }
      
      
      
      // Eintragung in DB
      $query="insert into tabelle
      ()
      values
      ()";
      $result=mysql_query($query);
      
      //Rückmeldung bei erfolgreichem Eintrag
      echo"<p class='text'>$txt_v_erfasst
      
      
      $txt_v_weitere";
      }
      else
      
      //Darstellung bevor Submit abgeschickt wurde
      {
      // Start Form
      session_register("veran_erfassen"); 
      echo"
      <table border='1' cellpadding='0' cellspacing='0' bordercolor='#FF9900' bgcolor='#EEEEEE'>
              <tr> 
                <td>
      <form action='veran_erfassen.php' method='POST'>
      <input type='hidden' name='UIN' value='$UIN'>
      <input type='hidden' name='id_usr' value='$id_usr'>
      		  
                    <table border='0' cellpadding='0' cellspacing='1'>
                  <tr> 
                        <td  class='utitle'></td>
                        <td  class='utitle'>$txt_veranstaltungsart</td>
                        <td > 
                          <input name='zugang' type='radio' value='oeffentlich' checked></td>
                        <td  class='text'>$txt_oeffentlich</td>
                        <td  class='text'> 
                          <input name='v_art' type='radio' value='tagung' checked></td>
                        <td  class='text'>$txt_tagung</td>
                        <td ></td>
                        <td ></td>
                      </tr>
                      <tr> 
                        <td ></td>
                        <td ></td>
                        <td > 
                          <input type='radio' name='zugang' value='Fachleute'></td>
                        <td  class='text'>$txt_fachleute</td>
                        <td  class='text'> 
                          <input type='radio' name='v_art' value='Gruppen'></td>
                        <td  class='text'>$txt_gruppe</td>
                        <td ></td>
                        <td ></td>
                      </tr>
                 </table>
                  </form
      ";}
      ?>

      Kommentar


      • #4
        Re: Die Session muss ja gar nicht mitgegeben werden!

        Zitat von Sonja
        Irgenwie klappt es nicht. Was ich erst jetzt geschnallt habe, ist dass beim Link die Session gar nicht speziell mitgegeben werdne muss, die geht schon automatisch mit. Es dauerte lange bis ich das merkte, aber jetzt weiss ich es.
        Das ist abhängig von der Config.

        Wie bringe ich den Inhalt der Session $_SESSION["veran_erfassen"] in die Felder des Formulares?
        Verstehe ich nicht so ganz. In die Session kommt doch nur das rein, was OK ist und was nicht vergessen werden soll.

        Ansonsten:
        Code:
        $feld = 'zugang';
        printf ('<input type="text" name="%s" value="%s">',
          $feld,
          $_POST[$feld]);
        Vorallem auch in die Radiobuttons? PS: wie ich die Radionbuttons aufgrund des Tabelleninhaltes anzeigen kann kenn ich, doch hier?
        Die Knöppe mit PHP basteln und bei dem ausgewählten Knopf 'checked' dazuPRINTen.

        Könnte es sein, dass ich jeden Input abfragen muss, ob der inhalt schon in der Session ist?
        Wieso? Was via Input reinkommt, ist doch auf jedem Fall was Neues bzw. was Geändertes.

        Kommentar

        Lädt...
        X