Ankündigung

Einklappen
Keine Ankündigung bisher.

Session-Problem...

Einklappen

Neue Werbung 2019

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

  • Session-Problem...

    Morgen...

    Nach dem ich das Problem mit der Verbindung zu meiner Datenbank hinbekommen habe habe ich ein neues Problem bei dem ich selber nicht mehr weiter komme...

    Ich soll als Übungsprojekt eine Kursverwaltung schreiben, bei der der User über die Page Kurse abfragen kann. Das ganze läuft über PHP und MySQL. Das ganze könnt ihr euch

    > hier <

    mal anschauen.

    Das ganze klappt bis jetzt auch ganz gut...nur eine Sache bekomme ich nicht hin.

    Nach der Kursauswahl (unten) bekommt der User Infos über den gewählten Kurs. Danach soll er mit einem Link wieder zu seiner Auswahl kommen...

    Ich bin mittlerweile so weit dass ich weiss das ich das nur über eine Session lösen kann. Das hat mit Testvariablen auch wunderbar geklappt. Auch das übliche Header-Problem hab ich in den Griff bekommen (habe das session_start() direkt in die erste Zeile gesetzt weil ich gelesen habe dass davor nichts kommen darf...so funzt das dann auch, nur ob es ein eleganter Programiertstil ist kann ich nicht beurteilen....).

    Nun das Problem: Leider bekomme ich es nicht hin dass nach Betätigung des "Rück"-Links die vorherige Auswahl erscheint...

    Ich poste mal die Scripts dafür. Nicht wundern wegen der mysql_connect(); , das Script ist von der Localen Variante...

    Die Linkreihenfolge sieht wie folgt aus:

    Zuerst wird die Seite auswahl_kurs.php aufgerufen. Von ihr aus wird auf der rechten Seite ein iframe (iframe_kursauswahl_neu.php) gestartet. Nach auswahl da wird unten die Seite iframe_kursauswahl.php angezeigt. Nach auswahl des Kurses werden die Infos in iframe_kursbeschreibung.php angezeigt. Mit dem "Rück"-Link soll der User wieder zurück zu iframe_kursauswahl.php kommen, wobei die vorherige Auswahl wieder angezeigt werden soll. Nur das funzt halt nicht, es kommt eine Fehlermeldung. Also denke ich dass die Variable nicht übergeben werden.

    Hier die Scripts:

    auswahl_kurs.php

    Code:
    <?php 
    session_start();
    $session = 0;
    session_register("session");
    // Session wird eingeleitet
    ?>
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Auswahl Kurs</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    
    
    <table width="750" height="200"  border="1" cellpadding="0" cellspacing="0">
      <tr>
        <td width="300" height="200" align="left" valign="top">
    	
    	<?php
    		
    		
    		// Verbindung zur Datenbank wird hergestellt
    		mysql_connect();
    		mysql_select_db("schulungen");
    		
    		// Datenbankabfrage
    		$mysql_abfrage = "SELECT * FROM kurskategorie";
    		$mysql_ergebnis = mysql_query($mysql_abfrage);
    		$num = mysql_num_rows($mysql_ergebnis);
    		
    		if ($num == 0) echo "Keine Datensätze gefunden";
    		
    		// Auswahl der Kurskategorie
    		echo "
    Bitte wählen Sie eine Kurskategorie aus: 
    
    ";
    		
    		echo "<form action='iframe_kursauswahl_neu.php?<?=SID?>' target='iframe_rechts' method = 'post'>";
    		
    		echo "<select name='kurs_kat_nr_send'>";
    		
    		// Ausgabe der gesuchten Datenbankinhalte
    		while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
    		{
    			echo "<option value='" . $datensatz["kurs_kat_nr"] . "'>" . $datensatz["kurs_kat_nr"] . " " . $datensatz["kurs_kat"] . "</option>";
    			
    		}
    		
    		
    		echo "</select>";
    	
    		echo "
    
    ";
    		
    		echo "<input type='submit' name='gesendet'>";
    		echo "<input type='reset'>";
    		
    		
    		echo "</form>";
    		
    		// Schließung der Datenbank
    		mysql_close();
    
    ?>
    	
    	
    	</td>
        <td width="300" height="100" align="left" valign="top">
    		
    		
    		<div align="left">
    			<iframe name=iframe_rechts src="iframe_blank.php" frameborder=0 width=300 height=140></iframe>
    		</div>	
    	</td>
      </tr>
      <tr align="left" valign="top">
        <td height="400" colspan="2">
    		
    		
    		<div align="left">
    			<iframe name=iframe_unten src="iframe_blank.php" frameborder=0 width=600 height=400></iframe>
    		</div>	
    	
    	</td>
      </tr>
    </table>
    </body>
    </html>

    iframe_kursauswahhl_neu.php

    Code:
    <?php
    session_start();
    // Session wird eingeleitet
    ?>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Kursauswahl_neu</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    
    
    Bitte wählen Sie die Kursart aus:
    	
    	<?php
    	
    
    		
    		// Verbindung zur Datenbank wird hergestellt
    		mysql_connect();
    		mysql_select_db("schulungen");
    		
    		// Abfrage der Datenbank
    		$mysql_abfrage = "SELECT DISTINCT kurs_art_nr, kurs_art FROM kursbeschreibung WHERE kurs_kat_nr = $kurs_kat_nr_send";
    		
    		$mysql_ergebnis = mysql_query($mysql_abfrage);
    		$num = mysql_num_rows($mysql_ergebnis);
    		
    		
    
    ?>
    
    
    
    	
    	<form action="iframe_kursauswahl.php?<?=SID?>" target="iframe_unten" method="post">
    	<select name="kurs_art_nr_send">
    
    <?php 
    		
    		// Ausgabe der abgefragten Inhalte
    		if ($num == 0) echo "Keine passenden Datensätze gefunden
    
    ";
    		
    		while($datensatz = mysql_fetch_assoc($mysql_ergebnis))
    		
    		{
    		echo "<option value='" . $datensatz["kurs_art_nr"] . "'>" . $datensatz["kurs_art_nr"] . " " . $datensatz["kurs_art"] . "</option>";
    		}
    
    
    ?>
    	</select>
    	
    	
    
    
    	
    	<input type="submit"><input type="reset">
    
    
    	</form>	
    
    	
    
    </body>
    </html>

    iframe_kursauswahl.php

    Code:
    <?php
    session_start();
    // Session wird eingeleitet
    
    $session = $kurs_art_nr_send;
    // Session-Wert wird auf Wert der Kursart-Abfrage gesetzt
    
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Kursauswahl</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    <table width="180" height="15" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td>
    	
    	<?php
    
    		// Verbindung zur Datenbank wird hergestellt
    		mysql_connect();
    		mysql_select_db("schulungen");
    		
    		// Abfrage Datenbank
    		$mysql_abfrage = "SELECT * FROM kursbeschreibung WHERE kurs_art_nr = $session";
    		
    		$mysql_ergebnis = mysql_query($mysql_abfrage);
    		$num = mysql_num_rows($mysql_ergebnis);
    		
    		
    
    		echo '<table width="580" height="360" border="0" cellpadding="0" cellspacing="0">';
    		  echo '<tr>';
    			echo '<td align="left" valign="top">';
    		
    		
    			
    			
    			echo '<form action="iframe_kursbeschreibung.php?<?=SID?> method="post">';
    				
    				echo "Folgende Kurse können sie bei uns belegen: 
    
    ";
    					echo '<table   border="1" cellspacing="0" cellpadding="0">';
    						echo "<tr>";
    							echo "<th></th><th>Kursnummer</th> <th>Kurbezeichnung</th></tr>";
    						
    						
    				// Ausgabe der Inhalte aus der Datenbank
    								while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
    								{
    									
    									echo "<tr><td><input type='radio' name='kurs_nr_send' value='" . $datensatz["kurs_nr"] . " 'checked></td><td>"  . $datensatz["kurs_nr"] . "</td><td>" . $datensatz["kurs"] . "</td></th> ";
    								}
    						
    								
    						echo "</tr>";
    					echo "</table>";
    		
    			echo'
    ';
    			echo'<input type="submit"> <input type="reset">';
    	?>
    	</form>
    	
    	
    	
    	</td>
      </tr>
    </table>
    </body>
    </html>

    iframe_kursbeschreibung

    Code:
    <?php
    session_start();
    // Session wird eingeleitet
    ?>
    
    
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Unbenanntes Dokument</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    
    <body>
    
    
    <?php
    
    	// Verbindung zur Datenbank wird hergestellt
    	mysql_connect();
    	mysql_select_db("schulungen");
    	
    	// Abfrage der Datenbank
    	$mysql_abfrage = "SELECT * FROM kursbeschreibung WHERE kurs_nr = $kurs_nr_send";
    	
    	$mysql_ergebnis = mysql_query($mysql_abfrage);
    	
    	$num = mysql_num_rows($mysql_ergebnis);
    	
    	echo "Test Session $kurs_art_nr";
    	
    	// Ausgabe der Inhalte der Datenbank
    	while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
    	{
    		echo '<table border="0" width="400" cellspacing="0" cellpadding="0">';
    			
    			echo '<tr>';
    				echo '<td width="150">Kursnummer:
     <u>' . $datensatz["kurs_nr"] . '</u></td>';
    				echo '<td width="300">Kursbezeichnung:
     <u>' . $datensatz["kurs"] . '</u></td>';
    			echo '</tr>';
    			
    			echo '<tr>';
    			
    				echo '<td width="400">
    
    
    Kursbeschreibung:
     ' . $datensatz["kursbeschreibung"] . '</td>';
    			echo '<tr>';
    			
    		echo '</table>';
    				
    	}
    
    
    
    
    
    echo '
    
    zur&uuml;ck zur Auswahl </p>';
    ?>
    </body>
    </html>
    besten Dank...

    Lapje

  • #2
    statt <?=SID?> probier mal <?php=SID ?>

    Kommentar


    • #3
      wäre das dann nicht ein php-tag in einem php-tag ? Also was ich meine ist, das ich in HTML ja auch mit <?php einen php-Bereich öffne und ihn mit ?> wieder schließe...ist dass dann icht das gleiche???

      Nur mal dum gefragt, aber ich probier es mal aus...

      danke

      Nachtrag:

      Also....das funzt auch nicht...im Prinzip das gleiche Problem wie vorher auch...

      Kommentar


      • #4
        <? ist die Kurzform von <?php und lässt sich in der PHP-Konfiguration ausschalten. Meine Vermutung war, dass das bei dir zutrifft. Du solltest generell die Langform wählen, weil du die Konfigurationen der Webspace-Anbieter nicht kennst.

        Mir ist gerade aufgefallen, dass dieses Ding bei dir im echo steht, also einfach ausgegeben wird. Du willst aber doch, dass es vom PHP-Parser interpretiert wird. Aus

        Code:
        echo 'bla bla <?php=SID?>bla bla';
        mach folgendes:

        Code:
        echo 'bla bla '.SID.'bla bla';

        Kommentar


        • #5
          statt <?=SID?> probier mal <?php=SID ?>
          So ein Blödsinn ...

          Kommentar


          • #6
            Zitat von CIX88
            statt <?=SID?> probier mal <?php=SID ?>
            So ein Blödsinn ...
            Du bist ganz schön arrogant und unkonstruktiv. Hast dich gerade selbst disqualifiziert

            Kommentar


            • #7
              Zitat von Saraneus
              statt <?=SID?> probier mal <?php=SID ?>
              Wenn du nicht die Kurzform verwenden willst, musst du natürlich auch echo bzw. print statt = verwenden:
              PHP-Code:
              <?php echo SID?>

              Kommentar


              • #8
                Das ist wahr, ich hab diese Kurzform noch nie verwendet, deshalb angenommen, dass =SID und die Tags unabhängig voneinander sind.

                Kommentar


                • #9
                  Hab das ganze jetzt so umgeändert:

                  Code:
                  echo '<form action="iframe_kursauswahl_neu.php?'.SID.'" target="iframe_rechts" method = "post">';
                  und

                  Code:
                  <form action="iframe_kursauswahl.php?<?php echo SID ?>" target="iframe_unten" method="post">
                  habe das auch online geändert...hat sich aber nichts getan...

                  @CIX88

                  Warum ist dsa Blödsin? Wenn Du keine Vernünftige Erkärung zu Deinen Post's geben kannst dann verschone uns bitte damit, ich hasse solche neunmalklugen Post die im Grunde nichts zur Problemlösung beitragen...

                  allen anderen besten dank...

                  Kommentar


                  • #10
                    Was soll eigentlich dieses SID? Wo definierst du das und warum hängst dus einfach so per ? an die URL? Müsste es nicht

                    ?PHPSESSID=<?php print session_id(); ?>

                    heißen?

                    Kommentar


                    • #11
                      Da fragst Du mich zuviel...ich habe das so gemacht weil ich es so gelesen habe...

                      definiert werden müsste dass direkt in den ersten Zeilen im Code...dachte dass das so richtig wäre...

                      Lapje

                      Kommentar


                      • #12
                        Zitat von Zergling
                        Was soll eigentlich dieses SID?
                        SID ist eine Konstante, die PHP beim Aufruf von session_start() generiert. Der Inhalt der Konstanten variiert abhängig davon, ob der Client das Sessioncookie akzeptiert oder nicht.
                        Wenn er es akzeptiert enthält SID lediglich eine leere Zeichenkette, ansonsten eine Zeichenkette im Format session_name() . '=' . session_id().

                        Kommentar


                        • #13
                          was ich mich nur frage:

                          <form action="iframe_kursauswahl.php?<?php echo $SID ?>" target="iframe_unten" method="post">

                          wieso dieses echo ? ich möchte ja nichts ausgeben, sondern einfach nur dass die ID mit übermittelt wird...

                          Kommentar


                          • #14
                            Dann pfefferst du es aber in den leeren Raum.

                            Kommentar


                            • #15
                              Und wie soll das Deiner Meinung nach geschehen?
                              Welche Übertragungswege php<->Webserver<->Browser stehen Dir sonst noch zur Verfügung?

                              Kommentar

                              Lädt...
                              X