session() wird unterbrochen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absender
adresse
anmelden
aufruf
auswahl
code
datensatz
formular
http
login
mitglied
nachricht
re
reiten
sendezeit
session
test
url
verschicken
zeile
-
Hallo liebe Gemeinde, ich bin wieder mal am Staunen.
Ich hab eine Seite, auf der sich ref="/tag/mitglied">Mitglieder anmelden und dieser "nike" über session() global gemacht werden soll.
Funktioniert eigentlich wie es soll, nur auf dem localhost.
Wenn ich die Seiten hochgeladen habe, wird nach der dritten Seite der Name nicht mehr weiter gegeben. Damit lassen sich dann keine Auswahlen mehr realisieren.
Es jkann kein Syntaxfehler sein, es läuft alles reibungslos.
Sinnigerweise funktioniert es auf einem Browser meines Tablets, auf dem anderen wieder nicht.
Mal zum Spaß einen Zugang ; Benutzer : test Passwort: test123
Eben auf meiner dieser Seite
Kann es sein dass Session() nur über eine bestimmte Anzahl an Verzwiegungen geht.
Wird die Session nur einmal gestartet?, ich habe es auf jeder Seite neu eingegeben. Wie gesagt, auf dem localhost perfekt, auf dem Netz nicht.
Ich danke mal schon im Vorraus.
Frank -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo
mit Test-Login konnte ich problemlos mehrere Nachrichten senden,
aber bei Aufruf einer .html Seite "sieht es so aus als ob" Login / Session nicht aktiv ist
das liegt aber nur daran, dass man mit .html Seite (ohne Anpassung) kein PHP ausführen kann
wenn Du zu einer .html Seite eine Link baust (mitgliederbereich.html)
und nicht dafür gesort hast, das .html Seiten auch PHP können
dann kann eine .html Seite nicht (mit PHP) prüfen, ob die SESSION (bzw. das Cookie) existiert
damit man bei Aufruf einer .html Seite auch PHP nutzen kann,
gibt es zwei Möglichkeiten mit .htaccess ... als rewrite oder mit AddType
einfacher ... mach anstatt .html immer eine .php Datei, also: mitgliederbereich.php
und dort kannst Du dann mit PHP prüfen, ob die Session läuft, / der Login aktiv ist.
wenn ja, dann rein zum Mitgliederbereich, wenn nein, dann Login-Formular anzeigen.
PS: zum Thema Login / Logout mit Session
siehe auch dieser Beitrag: http://www.lima-city.de/thread/logout-mit-session_destroy
dort findest Du ein Beispiel, wie man auf aktive SESSION (= Login) prüfen kann.
-
Ich habe mittlerweile rausgefunden, dass die session() immer am Anfang der Seite gestartet werden muss. Das hat schon einen kleinen Teilerfolg gebracht.
Auf der mitglieder.html Seite wird ja eigentlich erst das Formular zum Senden über Post bereitgestellt. Die Daten, in dem Fall der "nike-name" entstehen ja dann im Login, und ab da hab ich alles in php.
Komisch ist jetzt, dass bis auf einen Namen es so läuft wie gewollt.
<Mal sehen ob noch jemand eine Idee hat.
Wenn ich den Quelltext reinstellen soll, mal Zeichen geben. Sind eben aber 2 / 3 Seiten.
Trotzdem vielen Dank, bin immer begeistert, dass viele da sind um zu helfen.
Ich hoffe ja, ich kann irgendwann auch mal helfen.
Schönen Abend allen,Frank -
ja
der Befehl session_start(); muss immer vor der ersten Ausgabe gemacht werden,
und auf jeder Seite, auf der man auch Zugriff auf die $_SESSION Variable haben will.
frank1960sep schrieb:
...
Auf der mitglieder.html Seite wird ja eigentlich erst das Formular zum Senden über Post bereitgestellt
...
genau da sehe ich das (ein) Problem.
Wenn ein User sich erfolgreich eingeloggt hat,
und dann als eingeloggter User wieder auf die Seite mitgliederbereich.html geht
dann sieht er - obwohl er ja schon / noch eingeloggt ist - wieder das Login-Formular.
wenn Du aber dafür eine .php Seite machst, wie z.B. mitgliederbereich.php
dann kannst Du ganz oben in der Datei prüfen, ob der User eingeloggt ist,
und nur, wenn nein, dann auch das Logon-Formular ausgeben.
Den Quellcode kannst Du uns gerne mal zeigen,
dann kann man sicher viel genauer helfen,
wenn "zu viel" für hier im Forum, dann z.B. auf http://pastebin.com
oder du machst einen neuen Unter-Ordner z.B. "mycode"
und kopierst dort alle Dateien rein, und ergänzt alle Dateinamen mit .txt
so dass dann z.B. aus der Datei mitgliederbereichpost.php wird: mitgliederbereichpost.php.txt
dann können wir alle Dateien (als Text / deren Quellcode) sehen
PS: ... mit "nike-name" meinst Du wohl "nick-name" ... bzw. "user-name" ... :oO
-
Nach dem ich nun nicht weiter verzweifeln wollte, habe ich auch die "mitgliederbereich"seite auf php umgestellt, und nun funktioniert es auf allen Rechnern wie es soll.
Aber ist schon richtig komisch, auf allen Rechnern, auf denen ich nicht programmiere, lief es.
Trotzdem mal den Programmcode
<?php session_start(); ?> <html> <head> <title>Titel</title> <meta charset="ISO-8859-1"> <meta name="description" content=""> <meta name="author" content=""> <meta name="keywords" content=""> <meta name="generator" content="Webocton - Scriptly (www.scriptly.de)"> <link href="mitgliederbereich.css" type="text/css" rel="stylesheet"> </head> <body> <div id="webseite"> <div id="kopf"> <img src="Bilder/sarawinter.png" style="float:right;"alt="JPEG-Datei jpeg muss sein" width="180" height="120"/> <p><H2>Hier reiten wir, hier sind wir glücklich</H2></p> </div> <div id="main"> <div id="menue"> <div id="menue1"> <p>Menü</p> <p> <a href="http://www.tagesschau.de/">ARD Tagesschau</a> Nachrichten<br> <a href="hofhaupt.html"><br />Hofstart</a><br> <a href="login3.php">Mitgliederbereich<br/></a>Hier geht es zum Mitgliederbereich, um Nachrichten zu lesen und zu schicken <br/> <a href="index.html">Startseite<br/></a> zurück zum Eingang </p> </div> </div> <div id="inhalt"> <h1>Einwahlseite</h1> <p> <font color="#FF0000"size="5"> Gib deinen Nike-Namen ein, um dich im Nachrichtenbereich zu bewegen</font><br> <font color="#0000FF">Natülich auch das Passwort.</font> </p>> <form method="POST" action="login3.php"> Dein Username: <input name="nike"><br> <br><br> Dein Passwört: <input name="passw" type=password><br> <input type=submit name=submit value="Einloggen"> </form> </div> <div id="fuss"> <center> </div> </div> </div> </body> </html>
Das die PostSeite, nun aber schon in php. Das müßtet ihr euch noch ohne den php kopf vorstellen
Und nun noch das Login
<?php session_start(); $s1= $_POST["passw"] ; $s2= $_POST["nike"] ; $s3="alle" ; $_SESSION["nike"] = $s2; ?> <html> <head> <title>login</title> <meta charset="ISO-8859-1"> <meta name="description" content=""> <meta name="author" content=""> <meta name="keywords" content=""> <meta name="generator" content="Webocton - Scriptly (www.scriptly.de)"> <link href="mitgliederbereich.css" type="text/css" rel="stylesheet"> </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> <p> <table border="5"> <tr> <td align="center" valign="center" height="20" width="200" bgcolor="#E0ECC1"><a href="mitgliederbereichpost.php">Nachricht verschicken</a></td> <td align="center" valign="center" height="20" width="200" bgcolor="#aeecc00"><a href="nachrichtloschen.php">Nachricht löschen</a></td> <td align="center" valign="center" height="20" width="200" bgcolor="lighgreen"><a href="hofhaupt.html">Hofstart</a></td> <td align="center" valign="center" height="20" width="200" bgcolor="#A1C454"><a href="mitgliederbereich.php">zum Mitgliederbereich</a></td> <td align="center" valign="center" height="20" width="200" bgcolor="#A1C454"><a href="mitgliederbereich.html">zum Mitgliederbereich</a></td> </tr> </p> <br /><hr /> <div id="webseite"> <div id="kopf"> <img src="Bilder/sarawinter.png" style="float:right;"alt="JPEG-Datei jpeg muss sein" width="160" height="100"/> <p><H2>Hier reiten wir, hier sind wir glücklich</H2></p> </div> <div id="main"> <br /><hr /> <?php include 'host.php' ; $con = mysqli_connect ($_db_host,$_db_username,$_db_passwort); mysqli_select_db($con,$_db_datenbank) ; $sql = "SELECT * FROM mitglieder where passw = '$s1' and nike ='$s2'" ; $res = mysqli_query( $con, $sql ); $num = mysqli_num_rows($res); if ($num > 0) { while ($zeile = mysqli_fetch_array( $res)) { $nike = $zeile['nike']; $vname = $zeile['vname'] ; $fname = $zeile['fname'] ; $gbdatum = $zeile['gbdatum']; } mysqli_free_result( $res ); mysqli_close($con); Echo "<h2>Willkommen im Mitgliederbereich</h2> "; $con = mysqli_connect ($_db_host,$_db_username,$_db_passwort); mysqli_select_db($con,$_db_datenbank) ; $sql = "SELECT * FROM Nachrichten where adresse = '$s3'or adresse = '$s2'" ; $res = mysqli_query( $con, $sql )OR die("Error: $res <br>".mysql_error()); $num = mysqli_num_rows($res); #echo " Datensäze :$num<br /><br />" ; echo "Hallo - : ".$s2.", du hast Nachrichten :". $num."<br /><br />" ; if ($num >0) { // Tabellenbeginn echo "<table border='1'>"; // Überschrift echo "<tr> <td>Lfd. Nr.</td> <td>Nachricht von</td>"; echo "<td>Gesendet</td> <td>Deine Nachricht</td></tr>"; $lf = 1; while ($zeile = mysqli_fetch_array( $res)) { $absender = $zeile['absender']; $adresse = $zeile['adresse'] ; $sendezeit = $zeile['sendezeit']; $nachricht = $zeile['nachricht']; echo "<td>$lf</td>"; echo "<td>" .$absender. "</td>"; echo "<td>" .$zeile['sendezeit']."</td>"; echo "<td>" .$zeile['nachricht']."</td>"; echo "</tr>" ; $lf = $lf + 1; } echo "</table>" ; } else { echo "Du hast keine Nachrichten"; } mysqli_free_result( $res ); mysqli_close($con); echo "</br>Was möchtest du als nächstes tun?</br>" ; ?> <?php } else { echo "du hast hier nix zu suchen </br>" ; echo "du kannst dich üer den Betreiber der Seite anmelden</br> und bekommst dann deine Zugangsdaten über E-mail zugeschickt"; } #http://www.schattenbaum.net/php/sessions.php # weitere Hilfe fü r mich # wenn ich eingabehilfen brauch: http://de.selfhtml.org/html/formulare/auswahl.htm#listen_absendewert ?> </div> </div> </body> </html>
und das kam dann aber hier nicht an
<?php session_start(); echo $_SESSION["nike"]; $s1=$_SESSION["nike"]; ?> <html> <head> <title>login</title> <meta charset="ISO-8859-1"> <meta name="description" content=""> <meta name="author" content=""> <meta name="keywords" content=""> <meta name="generator" content="Webocton - Scriptly (www.scriptly.de)"> <link href="mitgliederbereich.css" type="text/css" rel="stylesheet"> </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 id="webseite"> <p> <table border="10"> <tr> <td align="center" valign="center" height="20" width="200" bgcolor="#E0ECC1"><a href="mitgliederbereichpost.php">Nachricht verschicken</a></td> <td align="center" valign="center" height="20" width="200" bgcolor="#aeecc00"><a href="nachrichtloschen.php">Nachricht löschen</a></td> <td align="center" valign="center" height="20" width="200" bgcolor="lighgreen"><a href="hofhaupt.html">Hofstart</a></td> <td align="center" valign="center" height="20" width="200" bgcolor="#A1C454"><a href="mitgliederbereich.php">zum Mitgliederbereich</a></td> <td align="center" valign="center" height="20" width="200" bgcolor="#A1C454"><a href="mitgliederbereich.html">zum Mitgliederbereich</a></td> </tr> </p> <br /><hr /> <div id="kopf"> <img src="Bilder/sarawinter.png" style="float:right;"alt="JPEG-Datei jpeg muss sein" width="160" height="100"/> <p><H2>Hier reiten wir, hier sind wir glücklich</H2></p> <p> </p> </div> <div id="main"> <?php if (isset($_POST["auswahl"])) { include 'host.php' ; $con = mysqli_connect ($_db_host,$_db_username,$_db_passwort); mysqli_select_db($con,$_db_datenbank) ; $sql = "delete from Nachrichten where" . " id = " . $_POST["auswahl"]; mysqli_query($con, $sql); $num = mysqli_affected_rows($con); if ($num>0) echo "<p>Der Datensatz wurde gelöscht</p>"; else echo "<p>Der Datensatz wurde nicht gelöscht</p>"; mysqli_close($con); } else echo "<p>Es wurde kein Datensatz ausgewählt</p>"; ?> <p>Zurück zur <a href="nachrichtloschen.php">Auswahl</a></p> </body> </html>
Also, das ist jetzt nur für den, der sich auch dafür interessiert. Und ich hoffe es erschlägt nicht zu sehr.
Und zur Übersichtlichkeit: sorry, ich bin blutiger Anfänger
Achso, und wegen des Nike, oder Nicke... ich bin nicht so englisch-sicher. Bin jenseites der 50, also auch weit weg von den meisten hier. Aber heißt ja nicht, dass man nicht neues lernen kann...
Vielen Dank den vielen Helfern, für jetzt, und ich Zukunft
schönes Wochenende, wird schönes Wetter, also auch mal an die frische Luft
Frank -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage