kostenloser Webspace werbefrei: lima-city


Session nicht global

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    vaterbesuch

    vaterbesuch hat kostenlosen Webspace.

    Hallo tag/re">ref="/tag/liebe gemeinde">liebe Gemeinde,
    Ich will Session() nutzen um auf jeder neuen Seite die Passwortabfrage zu prüfen.

    <?php
     session_start();
    
    $name1 = $_POST["nike"] ;
    $name2= $_POST["passw"] ;
    $name3 ="Frank" ;
    $_SESSION["nike"] = $name1;
    $datumheute = date("Y.m.d",time());
      ?>


    Hier auf der Seite kann ich mit Session auf die Variable anzeigen und nutzen.

    dann wechsel ich auf die nächste Seite:
    und öffne wie gefordert als erstes mit:

    <?php
     session_start();
    
    $_SESSION["nike"];
    
    $datumheute = date("Y.m.d",time());
      ?>


    dann ist aber die Variable leer.
    Auch hier wieder, komischer Weise funktioniert es auf dem Apache XAMPP.

    Vielen Dank für eure Mühen,
    einen schönen Sonntag abend,
    Frank
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. vaterbesuch schrieb:
    $_SESSION["nike"];
    Die Variable steht hier nur da und tut nichts. Ich denke mal, du weißt dass du sie auch ausgeben musst (mit echo)

    Dann bliebe noch zu erwähnen, dass Sessions nur auf der gleichen Domain funktionieren.
    Beispiel: vaterbesuch.lima-city.de hat eine andere Session als www.vaterbesuch.lima-city.de

    Falls das nicht hilft, dann poste mal ein vollständiges Skript und dazu einen Link, wo es steht.
  4. Autor dieses Themas

    vaterbesuch

    vaterbesuch hat kostenlosen Webspace.

    Hallo fuerderer,
    ja das weiß ich, dass zur Ausgabe dann ein Echo dazu gehört :thumb:

    Beispiel: vaterbesuch.lima-city.de hat eine andere Session als www.vaterbesuch.lima-city.de :
    Ich verlassen den Ordner ja garnicht, wechsel innerhalb der Adresse.

    Vielen Dank erst mal für die Mühen,
    Frank
  5. Schreib mal
    var_dump($_SESSION);
    nach dem Speichern und (vor oder nach) dem Lesen.
    Wird der Name überhaupt nicht ausgegeben -> Fehler beim Speichern.
    Wird er nur beim Speichern ausgegeben -> Fehler bei der Übertragung, wie gesagt: prüfe die Domain. Oder du hast Cookies deaktiviert.
    Wird er in beiden Fällen ausgegeben -> Fehler bei der Ausgabe.

    Und wenn du nicht weiterkommst, dann poste das vollständige Skript oder den fehlerhaften Teil.
    Bei dem was ich bisher sehe ist der Fehler nicht erkennbar.
  6. Autor dieses Themas

    vaterbesuch

    vaterbesuch hat kostenlosen Webspace.

    Hab var_dump eingegeben. Auf der Startsessionseite und am ende dieser und am Start der Seite, wohin er springt.
    Auf der Startseite zeigt er am Anfang und zum Ende :
    array(1) { ["nike"]=> string(5) "Frank" }
    an.
    Und auf der nächsten dann. : array(0) { }

    Da ist er dann leer.

    Irgendwo geht das verloren.

    Hier mal das Script. Hoffe es ist nicht zu viel. Versteht sich bitte von selbst, dass der Kalenderteil nicht von mir ist. :king: ,

    <?php 
     session_start();
    
    $name1 = $_POST["nike"] ;
    $name2= $_POST["passw"] ;
    $name3 ="Frank" ;
    $_SESSION['nike'] = $name1;
    $datumheute = date("Y.m.d",time());
    
    var_dump($_SESSION);
    
      ?>
    <html>
    
    <head>
        <title>Eintrag eins</title>
    
        <meta charset="iso-8859-1"/>
        <meta name="description" content=""/>
        <meta name="author" content="Frank Kohser"/>
        <meta name="keywords" content=""/>
        <meta name="generator" content="Webocton - Scriptly (www.scriptly.de)"/>
        <meta name="viewport" content="width=150" />
    	<!-- Kalender-Dateien einbinden -->
    		<script type="text/javascript" src="inc/calendar.js"></script>
    		<link rel="stylesheet" type="text/css" href="inc/calendar.css" />
    
    
            <link href="style.css" type="text/css" rel="stylesheet"/>
    
            <style type="text/css">
        body {
         background-color:#FFFFC0;
         font-style: italic ;
         text-align: center;
      
         width: auto;
         }
    
        h1 {
       
         font-size:25pt;
         background-color:#ccffff;
         color:#0A0092;
         border:10px double navy;
         height:35px;
         width: 100%;
        }
    
        h3 {
    
         font-size:25pt;
         background-color:#ffb2b2;
         color:#0A0092;
         border:10px double navy;
         height:35px;
         width: 100%;
        }
    
    
        p { font-size:30pt;
            color: #000f80}
        div.urot {
         background-color: #ff0000;
         color: #ffff00;
        }
        a:link { color:#0A0092; }
        a:visited { color:#FF0000; }
        a:hover { color:#FFFF00; background-color: #ff00FF; }
        a:active { color: #000000; }
       </style>
    </head>
    
    <style type="text/css">
    a:link { text-decoration:none; font-weight:bold; color:#e00000; }
    a:visited { text-decoration:none; font-weight:bold; color:#800000; }
    a:hover { text-decoration:none; font-weight:bold; background-color:#ff0; }
    a:active { text-decoration:none; font-weight:bold; background-color:#cff; }
    a:focus { text-decoration:none; font-weight:bold; background-color:#080; }
    </style>
    </head>
    <body>
    <div align="center">
    
        
    <?php
    
    if ( die Passwortabfrage steht hier drin
        )
    {
    ?>         
    <img src="Vater.png" style="float:center;" width="50%" alt="JPEG-Datei jpeg muss sein"  />
    
    <p align="center">
    <table border="0" style="float:center;" bgcolor="#C5C586" cellpadding="2" cellspacing="3" summary="" width="50%" style="font-size:100%">
        <tr>
            <td  align="center" valign="middle" style="width: 20%;"><a href="++++++++.php">Startseite</a></td>
            <td align="center" valign="middle" style="width: 20%;"><a href="+++++++.php">Daten &auml;ndern</a></td>
            <td align="center" valign="middle" style="width: 20%;"><a href="++++++++.php">Nachricht<br />eingeben</a></td>
            <td align="center" valign="middle" style="width: 20%;"><a href="++++.html">Admin<br />bereich</a></td>
    
        </tr>
    </table>
    
    <?php
    
       echo "<br />";
       include 'host.php' ;
    
       //Beginn der Tabellenabfrage für Nachrichten
    
    $con = mysqli_connect ($_db_host,$_db_username,$_db_passwort);
    mysqli_select_db($con,$_db_datenbank) ;
    $sql = "SELECT * FROM vaternachricht ORDER BY id DESC" ;
    
    $res = mysqli_query( $con, $sql )OR die("Error: $res <br>".mysql_error());
    $num = mysqli_num_rows($res);
    
    #echo " Datens&auml;ze :$num<br /><br />" ;
    
     echo "<font size='5'>Hallo,".$_SESSION['nike'].", es gibt Nachrichten :". $num."<br /><br /></font>" ;
     if ($num >0)
      {
           // Tabellenbeginn
         echo "<table border='3' cellpadding='3' style='font-size: 15px;' width='50%'>";
    
         // Überschrift
    
         echo "     <tr bgcolor='#11ff33' size='+2' >
                    <td size='+2'>Id</td>
                    <td size='+2'>Datum</td>
    
                    <td size='+2'>Verfasser</td>
                    </tr>
    
                    <tr>
                    <th colspan='4'bgcolor='#11ff33'  align='left' size='+2' >Nachricht</th>
                    </tr>";
         $lf = 1;
               while ($zeile = mysqli_fetch_array( $res))
             {
    
                  if ($lf<=4)
                {
                 $id        = $zeile['id'];
                 $Datum     =$zeile['datum'];
                 $Verfasser = $zeile['verfasser'];
                 $Nachricht = $zeile['nachricht'];
    
                    //echo "<td>$lf</td>";
                    echo "<tr>
                    <td bgcolor='#cccccc' width='10%'>".$id."</td>
    
                    <td bgcolor='#cccccc' size='+2'>".$Datum."</td>
                    <td bgcolor='#cccccc' size='+2'>".$Verfasser."</td>
    
                    </tr>
                    <tr>
                    <th bgcolor='#eeeeee' colspan='4' align='left'size='+2'>".$Nachricht.$lf."</th>
                    </tr>" ;
                    $lf = $lf + 1;
                    }
             }
                   echo "</table>"  ;
    
    
            // ende der Tabelle Nachrichtenabfrage
     }
    
    mysqli_free_result( $res );
    mysqli_close($con);
    
    //Beginn der Tabellenabfrage
    
    
    $con = mysqli_connect ($_db_host,$_db_username,$_db_passwort);
    mysqli_select_db($con,$_db_datenbank) ;
    $sql = "SELECT * FROM vatertage ORDER BY datum ASC" ;
    
    $res = mysqli_query( $con, $sql )OR die("Error: $res <br>".mysql_error());
    $num = mysqli_num_rows($res);
    
    #echo " Datens&auml;ze :$num<br /><br />" ;
    
     echo " Hallo, es gibt Eintr&auml;ge :". $num."<br /><br />" ;
     if ($num >0)
      {
           // Tabellenbeginn
         echo "<table border='3' cellpadding='3' style='font-size: 15px;' width='50%'>";
    
         // Überschrift
    
         echo "     <tr bgcolor='#11ff33' size='+2' >
                    <td size='+2'>Id</td>
                    <td size='+2'>Datum</td>
                    <td size='+2'>Wochentag</td>
                    <td size='+2'>Besucher</td>
                    </tr>
    
                    <tr>
                    <th colspan='4'bgcolor='#11ff33'  align='left' size='+2' >Notizen</th>
                    </tr>";
         $lf = 1;
                while ($zeile = mysqli_fetch_array( $res))
             {
    
                 $id        = $zeile['id'];
                 $Datum     = $zeile['datum'];
                 $DatumDe   = substr ($Datum,8,2).substr ($Datum,4,4).substr ($Datum,0,4);
                 $Besucher     =$zeile['besucher'];
                 $Nachricht = $zeile['nachrichten'];
    
                  if ($datumheute<=$Datum)
                  {
    
                 $tag = date("l",strtotime($DatumDe));
                switch($tag)
                        {
            	case "Monday":
    		      $tag = "Montag";
    		      break;
    	       case "Tuesday":
    	          $tag = "Dienstag";
    		      break;
    	       case "Wednesday":
    		      $tag = "Mittwoch";
    		      break;
    	       case "Thursday":
    		      $tag = "Donnerstag";
    		      break;
    	       case "Friday":
    		      $tag = "Freitag";
    		      break;
    	       case "Saturday":
    		      $tag = "Samstag";
    		      break;
    	       case "Sunday":
    		      $tag = "Sonntag";
    		      break;
                    }
    
    
                    //echo "<td>$lf</td>";
                    echo "<tr>
                    <td bgcolor='#cccccc' width='10%'>".$id."</td>
    
                    <td bgcolor='#cccccc' size='+2'>".$DatumDe."</td>
                    <td bgcolor='#cccccc' size='+2'>".$tag."</td>
                    <td bgcolor='#cccccc' size='+2'>".$Besucher."</td>
                    </tr>
                    <tr>
                    <th bgcolor='#eeeeee' colspan='4' align='left'size='+2'>".$Nachricht."</th>
                    </tr>" ;
                    $lf = $lf + 1;
            }
    
             }
    
                    echo "</table>"  ;
                    echo "<hr />"    ;
     }
    
        else
    {
    
    }
    mysqli_free_result( $res );
    mysqli_close($con);
    
    ?>
    </p>
    <p align="center">
    
    	<table border=1 id='calendar' width='50%'>
    		<tr style='visibility:collapse;' hidden>
    			<td colspan=7 id='date_memory'>---</td>
    		</tr>
    		<tr>
    			<td class='calendar_head'><a class='calendar_link'
    				href='javascript:prevMonth()'> &laquo;</a></td>
    			<td colspan=5 class='calendar_head_month' id='calendar_month'>
    				---</td>
    			<td class='calendar_head'><a class='calendar_link'
    				href='javascript:nextMonth()'> &raquo;</a></td>
    		</tr>
    		<tr>
    			<td class='calendar_day'>Mo</td>
    			<td class='calendar_day'>Di</td>
    			<td class='calendar_day'>Mi</td>
    			<td class='calendar_day'>Do</td>
    			<td class='calendar_day'>Fr</td>
    			<td class='calendar_day'>Sa</td>
    			<td class='calendar_day'>So</td>
    		</tr>
    		<tr>
    			<td class='calendar_entry' id='calendar_entry_1'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_2'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_3'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_4'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_5'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_6'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_7'>-x-</td>
    		</tr>
    		<tr>
    			<td class='calendar_entry' id='calendar_entry_8'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_9'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_10'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_11'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_12'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_13'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_14'>-x-</td>
    		</tr>
    		<tr>
    			<td class='calendar_entry' id='calendar_entry_15'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_16'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_17'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_18'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_19'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_20'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_21'>-x-</td>
    		</tr>
    		<tr>
    			<td class='calendar_entry' id='calendar_entry_22'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_23'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_24'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_25'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_26'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_27'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_28'>-x-</td>
    		</tr>
    		<tr>
    			<td class='calendar_entry' id='calendar_entry_29'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_30'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_31'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_32'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_33'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_34'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_35'>-x-</td>
    		</tr>
    		<tr>
    			<td class='calendar_entry' id='calendar_entry_36'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_37'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_38'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_39'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_40'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_41'>-x-</td>
    			<td class='calendar_entry' id='calendar_entry_42'>-x-</td>
    		</tr>
    	</table>
    
    	<script type='text/javascript'>
    		iniCalendar();
    
    		/*0 = wie bisher, Datum wird in die Box geschrieben*/
    		setReturnModus(0);
    		/*1 = neu, Eventtext wird in die Box geschrieben
    		Das event muss in der calendar.js in der Function
    		getEventtext definiert werden.*/
    		//setReturnModus(1);
    	</script>
    
    	<form  action="xxxxxxxxxxx" id="myform"   method="post">
    	oben Datum ausw&auml;hlen,<br /> tr&auml;gt sich automatisch ein<br />
    		<input name="datum"  style="text-align: right;"size="10"/>
    		<br />
    		<br />Besucher <br />
    	    <select name="gast" >
                  <option ><?php echo $_SESSION['nike'] ?></option>
            <option >Fredy</option>
            <option >Steffi</option>
            <option >Conny</option>
             <option >Christian</option>
            <option >Christine</option>
            <option >Frank</option>
            <option >Conny/Steffi</option>
            </select>
            <br /><br />
    		Eine kurze Nachricht<br />
    		<input name="Nachricht" size="30" /> <br /><br /><br />
    		<input type="submit" name="submit" value="Abschicken"/>
    	</form>
    </p>
    
    <?php
    var_dump($_SESSION);
    }
    else
    
         If ($name2=="Das Admin Passwort ist hier")
            {
                ?>
    
                <a href="Adresse Admin bereich.php"><h3   align="center">Adminbereich des Betreibers</h3></a>
    <?php
    }
      echo "alles richtig"  ;
    ?>
    </body>
    </html>



    Und bei Klick auf die nächste Seite beginne ich so:

    <?php 
    session_start();
    
    $_SESSION['nike'];
    
    $datumheute = date("Y.m.d",time());
      ?>
    <html>


    und da ist nix mehr da. :wall:
  7. Sind die Session-IDS bei beiden Scripts?
    Setzt du den Cookie evtl. nur für den einen Pfad bzw nur ne bestimmte Gültigkeit?
  8. Autor dieses Themas

    vaterbesuch

    vaterbesuch hat kostenlosen Webspace.

    Hallo liebe Gemeinde,
    ich hab das Problem gelöst. Nach dem ich noch mal im Bord gesucht hab, fand ich, dass ich dieses Problem schon mal vor 1,5 Jahren hatte. :megarofl: .
    Damals konnte sich das auch keiner erklären, aber ich hab, auch damals dann, alle Seiten auf PHP-Script umgestellt. Sobald eine html-Seite auftaucht ist die Session leer. Auch wenn gleich am Anfang dieser mit php die Session in dieser Seite geöffnet wird. Nur auf dem "Heimserver"-xampp funktioniert das. Warum das so ist, keine Erklärung. Leider hab ich auch noch nicht in Befehls-Erklärungen gefunden, dass man das offensichtlich beachten muss.
    Trotzdem vielen Dank, und vielleicht hilft das hier ja auch jemanden weiter.:wave:
    Allen noch eine schöne Woche,
    mit den freundlichsten Grüßen,
    Frank
  9. vaterbesuch schrieb:
    Hallo liebe Gemeinde,
    ich hab das Problem gelöst. Nach dem ich noch mal im Bord gesucht hab, fand ich, dass ich dieses Problem schon mal vor 1,5 Jahren hatte. :megarofl: .
    Damals konnte sich das auch keiner erklären, aber ich hab, auch damals dann, alle Seiten auf PHP-Script umgestellt. Sobald eine html-Seite auftaucht ist die Session leer. Auch wenn gleich am Anfang dieser mit php die Session in dieser Seite geöffnet wird. Nur auf dem "Heimserver"-xampp funktioniert das. Warum das so ist, keine Erklärung.



    Hi Frank,

    das ist ganz einfach erklärt:

    wenn du eine Datei hast mit einer PHP-Endung, haust du dort ein PHP-Script rein. Mit der Endung PHP sagst du explizit: Der Server soll sich das anschauen und auswerten. Das heißt, deine Befehle werden verarbeitet.

    Dann hast du eine Datei mit html-Endung... der Webserver schaut sich das an und liefert einfach aus... er will damit nix zu tun haben... da kannst du sonst was für tolle scripte reinpacken, da passiert nix.

    Wenn du jedoch danach wieder eine PHP auf machst und die session ist weg, kann es nur bedeuten, dass das Session-Cookie auch weg ist... somit ist die session noch da, aber er kann dir die session nichtm ehr zuordnen...

    das sind dann Browser-Einstellungen, die greifen, jedoch wenn es sich nur bei dir so verhält, dann hm... musst du prüfen...
  10. mach auf dir "nächste Seite" mal so


    <?php 
    session_start();
    
    $datumheute = date("Y.m.d",time());
    
    if (isset($_SESSION['nike'] )) { $nike_name = $_SESSION['nike']; } 
    else { $nike_name = ''; }  // --- Leerstring wenn Session nicht gesetzt 
    
    ?>
    <html>
    <head>
    <title>Test</title>
    </head>
    
    <body>
    
    <?php 
    
    print '<p>Datum: ' . $datumheute . '</p>' ."\n"; 
    print '<p>nName: ' . $nike_name . '</p>' ."\n"; 
    
    ?>
    
    </body>
    </html>


    also du musst die Variable $_SESSION['nike'] enteder direkt ausgeben (echo/print)
    oder (wie hier) einer anderen Variable zuweisen und dann diese andere ausgeben.


    Beitrag zuletzt geändert: 25.3.2015 8:02:05 von einkaufen
  11. m***3

    zum Testen der Session und der Session-variable (wenn Session ungleich sind dann sind Cookies deaktiviert oder ein Browser Addon Cookie blocker aktiv
    seite1.php
    <?php
    session_start();
    echo session_id();
    
    $_SESSION['nike'] = 'Mustermann';
    
    echo $_SESSION['nike'];
    ?>
    <p><a href="seite2.php">Seite2</a></p>


    seite2.php
    <?php
    
    session_start();
    echo session_id();
    
    if(isset($_SESSION['nike'])){
    echo $_SESSION['nike'];
    } else {
    echo '<b>Cookies sind deaktiviert</b>';
    }
    ?>
    <p><a href="seite1.php">Seite1</a></p>
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!