Weiterleitung vom Login
Norbert
- https
Hallo,
ein Login-Formular nimmt die Daten entgegen, prueft sie gegen die Datenbank und wenn alles okay ist wird eine Session erstellt und auf die gewuenschte Seite weitergeleitet. Das Problem ist die Weiterleitung, weil es auf Kundenwunsch mit der Methode POST funktionieren soll, also ohne die GET-Rattenschwaenze. Bisher ist mir dazu nur ein Mini-Postformular eingefallen. Im action-Tag steht die Zielseite und in einem Hidden-Feld die Sessions-ID. Das Formular sendet sich mittels JavaScript selbst ab.
Und genau dies gefaellt mir nicht wirklich, da ein User ja JS einfach abschalten kann und dann auf dieser leeren Seite haengen bleibt. Eine Alternative waeren Kekse, aber auch die koennen vom User deaktiviert werden.
Hat dazu jemand eine Idee ...
Gruss und Dank
Norbert
Hello,
ein Login-Formular nimmt die Daten entgegen, prueft sie gegen die Datenbank und wenn alles okay ist wird eine Session erstellt und auf die gewuenschte Seite weitergeleitet. Das Problem ist die Weiterleitung, weil es auf Kundenwunsch mit der Methode POST funktionieren soll, also ohne die GET-Rattenschwaenze. Bisher ist mir dazu nur ein Mini-Postformular eingefallen. Im action-Tag steht die Zielseite und in einem Hidden-Feld die Sessions-ID. Das Formular sendet sich mittels JavaScript selbst ab.
Und genau dies gefaellt mir nicht wirklich, da ein User ja JS einfach abschalten kann und dann auf dieser leeren Seite haengen bleibt. Eine Alternative waeren Kekse, aber auch die koennen vom User deaktiviert werden.
Wieso muss das Formular sich mittels JavaScript selber absenden?
Wann wird denn die Session gestartet?
Erst, wenn der Kunde sich angemeldet hat, oder als Tracking Session bereits beim ersten Betreten der Seiten? Ich frag das nur, weil man dann wissen könnte, ob der Client Cookies akzeptiert. Dann kann er nämlich nicht ohne gültigen Cookie das Anmeldeformular aufrufen. Und wenn Cookies akzeptiert werden, weiß man auch, welche Seite er vor dem Anmeldeformular (höchstwahrscheinlich) besucht hat. Dahin kann man ihn dann mittels header('Location: http://domain.www/<letzte_seite/') wieder hinschicken.
Zur Not gibt man dem "Rückmeldeformular" für die Antwort noch einen lieben text mit und den Link oder Button mit passendem Ziel, falls nun wiederum die Weiterleitung per header() nicht funktioniert.
Sessions haben nichts mit der "Anmeldung" zu tun, sie werden nur dafür benutzt, die Authentifizierung des Client fortzusetzen.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hallo Tom,
Wieso muss das Formular sich mittels JavaScript selber absenden?
Weil man eine Zielseite nur via POST aufrufen kann.
Jeder GET-Versuch landet auf der Login-Seite.
Wann wird denn die Session gestartet?
erst wenn die Pruefung gegen die Datenbank erfolgreich war.
Ach-ja, mit dem PHP-internen Sessionshandling hat das alles nichts zu tun.
... weil man dann wissen könnte, ob der Client Cookies akzeptiert.
Mal ganz unter uns,
auf JavaScript meckern aber nicht auf Cookies und AJAX verzichten wollen.
Wie schizophren kann man eigentlich sein ... ;-)
Ziel ist, ganz auf JS zu verzichten, also auch keine Kruemelmonster zuzulassen.
header('Location: http://domain.www/<letzte_seite/') wieder hinschicken.
nee,
das muss alles via POST gehen, ohne SessionsID landet man auf der Login-Seite.
Gruss und Dank
Norbert
Hello Norbert,
es tut mir leid, ich kann Dir nicht folgen.
Und es würde mich beruhigen, wenn es Anderen genauso ginge, denn dann würde eine Chance bestehen, für Deine Aufgabe wirklich eine Lösung zu finden. :-)
Wieso muss das Formular sich mittels JavaScript selber absenden?
Weil man eine Zielseite nur via POST aufrufen kann.
Jeder GET-Versuch landet auf der Login-Seite.
Aber JavaScript ist doch nicht die einzige Möglichleit für einen Post-request und schon gar nicht die generische. Außerdem kann man auch jedem Post-Request Get-Parameter mitgeben.
Wann wird denn die Session gestartet?
erst wenn die Pruefung gegen die Datenbank erfolgreich war.
Ach-ja, mit dem PHP-internen Sessionshandling hat das alles nichts zu tun.
Hab ich das irgendwo gesagt?
Eine Session ist eine Session und das nicht erst sei PHP!
... weil man dann wissen könnte, ob der Client Cookies akzeptiert.
Mal ganz unter uns,
auf JavaScript meckern aber nicht auf Cookies und AJAX verzichten wollen.
Wie schizophren kann man eigentlich sein ... ;-)
Das weiß ich nicht.
Die potentiellen Kunden glauben immer das, was ihnen durch Flachzeitschriften und Blindzeitung suggeriert wird. Die Kunden glauben das, was ihnen nützt. Es ist also immer nur eine Frage des Marketings, Abteulung Kommunikation, wie man möglichst schnell das Zugehörigkeitsgefühl nebst Synergieeffekt und Win-Win-Situation erzeugt.
Ich habe meinen Kunden immer geraten: "Verlangen Sie von ihrem zukünftigen Geschäftspartner einfach etwas, was er duch einen Klick auf den passenden Button erfüllen kann, und er weiß wo die Lampe hängt. Aber nutzen Sie es niemals zu dubiosen Zwecken aus!" Sie sind alle gut damit gefahren.
Ziel ist, ganz auf JS zu verzichten, also auch keine Kruemelmonster zuzulassen.
Was haben denn Cookies nun wieder mit JavaScript zu tun?
header('Location: http://domain.www/<letzte_seite/') wieder hinschicken.
nee,
das muss alles via POST gehen, ohne SessionsID landet man auf der Login-Seite.
Du hast aber vorhin von "Weiterleitung" gesprochen, was fachlich mMn auch nicht falsch wäre.
Ich habe das Gefühl, dass Du noch nicht ganz klar siehst, was wann wodurch auf dem Client und was wann wo auf dem Server geschehen soll. Kann das sein? Das wäre nicht ungewöhnlich. Ich hab dafür auch mal recht lange gebraucht, um das zu lernen. Und Anderen geht es auch nicht besser.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hallo Tom,
es tut mir leid, ich kann Dir nicht folgen.
hmm,
was ist daran nicht zu verstehen?
Der User gibt in einem Formular Login-Daten ein und moechte dann auf
die eigentlich gesuchte Seite gefuehrt werden. Diese Seite erwartet
ZWINGEND, dass sie via POST angesprochen und dabei eine gueltige
SessionsID uebergeben wird.
Was ist daran schwer zu verstehen ... ?
Mit JavaScript ist das kein Problem, ohne schon eher ... (rein IMHO).
Und nun Du bitte wieder ...
Gruss und Dank
Norbert
PS: (nur zur Info):
Meine erste Suchmaschine im Internet war eine VB4.exe und lief, als
Microsoft versuchte Frontpage zu entwickeln. Nur damit Du mich durch
Deine Vermutungen nicht immer so zum Lachen zwingst, wer weiss, ob
das in meinem Alter noch zutraeglich ist ... ;-)
Hello Norbert,
es tut mir leid, ich kann Dir nicht folgen.
hmm,
was ist daran nicht zu verstehen?
Der User gibt in einem Formular Login-Daten ein und moechte dann auf
die eigentlich gesuchte Seite gefuehrt werden. Diese Seite erwartet
ZWINGEND, dass sie via POST angesprochen und dabei eine gueltige
SessionsID uebergeben wird.
Was ist daran schwer zu verstehen ... ?
z.B. wo die Session-ID herkommen soll, wenn das Anmeldeformular direkt auf die per Post-Request aufgerufene Seite verweisen soll.
PS: (nur zur Info):
Meine erste Suchmaschine im Internet war eine VB4.exe und lief, als
Microsoft versuchte Frontpage zu entwickeln. Nur damit Du mich durch
Deine Vermutungen nicht immer so zum Lachen zwingst, wer weiss, ob
das in meinem Alter noch zutraeglich ist ... ;-)
Ja, ich bin auch immer noch Stolz darauf, dass ich 1989 mal BG die Hand schütteln durfte...
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hallo Tom,
es tut mir leid, ich kann Dir nicht folgen.
hmm,
was ist daran nicht zu verstehen?
Der User gibt in einem Formular Login-Daten ein und moechte dann auf
die eigentlich gesuchte Seite gefuehrt werden. Diese Seite erwartet
ZWINGEND, dass sie via POST angesprochen und dabei eine gueltige
SessionsID uebergeben wird.
Was ist daran schwer zu verstehen ... ?
z.B. wo die Session-ID herkommen soll, wenn das Anmeldeformular direkt
auf die per Post-Request aufgerufene Seite verweisen soll.
echt?
Keine Ahnung wie das bei Dir ist, aber hier wird das Formular erst mal abgesendet.
Der Einfachheit halber direkt auf sich selbst. Der PHP-Teil merkt dann natuerlich,
dass dort Login-Daten drin sind und setzt ein Query an die DB ab, ob die den Typen
ueberhaupt kennt. Kennt sie ihn nicht passiert nix, d.h. das Formular erscheint
wieder im Browser. Existiert ein passendes Datenpaar, wird die SessionsID generiert
und auf die Zielseite geleitet.
Jetzt besser ... ?
Gruss und Dank
Norbert
Hello,
Keine Ahnung wie das bei Dir ist, aber hier wird das Formular erst mal abgesendet.
Der Einfachheit halber direkt auf sich selbst. Der PHP-Teil merkt dann natuerlich,
dass dort Login-Daten drin sind und setzt ein Query an die DB ab, ob die den Typen
ueberhaupt kennt. Kennt sie ihn nicht passiert nix, d.h. das Formular erscheint
wieder im Browser. Existiert ein passendes Datenpaar, wird die SessionsID generiert
und auf die Zielseite geleitet.
Jetzt besser ... ?
Ach, _so_ geht das?
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hallo Tom,
Ach, _so_ geht das?
hmm,
und was habe ich Dir getan, dass Du mich hier derart veralberst?
Einen Versuch zu helfen konnte ich jedenfalls nicht erkennen ... :-((
Gruss Norbert
Hello Norbert,
Ach, _so_ geht das?
hmm,
und was habe ich Dir getan, dass Du mich hier derart veralberst?
Einen Versuch zu helfen konnte ich jedenfalls nicht erkennen ... :-((
Welche Reaktion hast Du erwartet?
Du gibst eine falsche Situationsbeschreibung, fragst nach Hilfe und wenn dann Rückfragen kommen hältst Du mir einen Vortrag über Deine erste Suchmaschine.
Leider ist Dein Dialogprotokoll (Client <-> Server) dadurch auch nicht besser geworden.
Wenn Du besser fragst, und Dir Rückfragen gefallen lässt, bekommst Du auch schneller sinnvolle Antworten. Sonst kommen eben nur welche auf der "Menschelei"-Ebene...
Also nimm es bitte nicht krumm, aber sieh es als Kritik an Deinem Fragestil an.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hallo Tom,
zuerst moechte ich mich bei Dir bedanken, dafuer dass Du kein Lehrer geworden bist!
Also nimm es bitte nicht krumm, aber sieh es als Kritik an Deinem Fragestil an.
hmm,
aber ich nehme es krumm und auch persoenlich, weil:
1. Schon die Anrede fuer negative Vorspannung sorgt.
2. Du mich seit Stunden vorsaetzlich verarschst, ohne helfen zu wollen.
3. Es gibt keine dummen Fragen sondern nur dumme Antworten. (Volksmund)
4. Wenn jemand so fragen koennte, wie Du es wuenschst, kann er die Frage selbst beantworten.
Aber auch dann waerest Du ueberfluessig ... ;-)
5. Das Hauptproblem ist, dass Du gar nicht helfen willst,
obwohl Du von Beginn an, die Loesung mit Sicherheit wusstest.
6. Kritisieren duerfen mich Menschen, die sich eine Wertschaetzung erworben haben.
Auf Dich trifft beides nicht zu ...
Gruss Norbert
Hello,
- Kritisieren duerfen mich Menschen, die sich eine Wertschaetzung erworben haben.
Auf Dich trifft beides nicht zu ...
Dann musst Du in Zukunft besser auf meine Hilfe verzichten.
Ich bin nicht hier, um mich über unsinnige Dialoge zu ärgern.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hallo Tom,
Dann musst Du in Zukunft besser auf meine Hilfe verzichten.
okay,
auf "nichts" laesst sich sicher schmerzlos verzichten ... ;-)
Ich bin nicht hier, um mich über unsinnige Dialoge zu ärgern.
prima,
dann postest Du in Zukunft nur auf Fragen, die Deinem Niveau entsprechen?
Soviel Zurueckhaltung ist wirklich bemerkenswert.
Wenn ich Zeit habe, werde ich darauf achten ...
Gruss Norbert
Hello Norbert,
Ich bin nicht hier, um mich über unsinnige Dialoge zu ärgern.
prima,
dann postest Du in Zukunft nur auf Fragen, die Deinem Niveau entsprechen?
Soviel Zurueckhaltung ist wirklich bemerkenswert.
Wenn ich Zeit habe, werde ich darauf achten ...
Ich finde, dass Du dich für einen anbeblichen Akademiker ganz schön schlecht benimmst
http://www.itbw.de/impress.php
Oder hast Du Dir das nur ausgedacht?
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hallo Tom,
Ich finde, dass Du dich für einen anbeblichen Akademiker ganz schön schlecht benimmst
na-ja,
die Umgebung formt den Menschen, er passt sich an.
Verhaltensforscher finden das voellig normal ... ;-)
http://www.itbw.de/impress.php
Oder hast Du Dir das nur ausgedacht?
boah-ehh,
soviel Kreativitaet traust Du mir zu, Respekt ... ;-)
Lass gut sein, die Zitrone ist leer, da kommen nur noch Runzeln ... ;-)
m.b.w. Norbert
Hallo Norbert,
zuerst moechte ich mich bei Dir bedanken, dafuer dass Du kein Lehrer geworden bist!
ich habe den Eindruck, du wärst auch ein sehr schwieriger Schüler.
aber ich nehme es krumm und auch persoenlich, weil:
- Schon die Anrede fuer negative Vorspannung sorgt.
Wie das? Sie unterscheidet sich nicht von deiner eigenen.
- Du mich seit Stunden vorsaetzlich verarschst, ohne helfen zu wollen.
Nein. Du gehst nur nicht auf Denkanstöße oder Gegenfragen ein, sondern weichst ihnen mit nichtssagenden Formulierungen aus.
- Wenn jemand so fragen koennte, wie Du es wuenschst, kann er die Frage selbst beantworten.
Genau. Und Tom bemüht sich doch, dich durch seine Gegenfragen in eben diese Situation zu bringen.
- Kritisieren duerfen mich Menschen, die sich eine Wertschaetzung erworben haben.
Auweia. Das halte ich für eine ganz schlechte Einstellung. Kritik sollte man von allen Menschen akzeptieren, mit denen man zu tun hat.
Übrigens, zurück zur eigentlichen Frage: Warum machst du es eigentlich so kompliziert? Wenn du ein Login-Formular für die Benutzerdaten hast, dann sende doch dieses Formular per POST ab und lass das aufgerufene Script direkt die gewünschten Seiteninhalte ausliefern. Wozu noch ein Redirect zwischendurch?
So long,
Martin
Hallo Martin,
zuerst moechte ich mich bei Dir bedanken, dafuer dass Du kein Lehrer geworden bist!
ich habe den Eindruck, du wärst auch ein sehr schwieriger Schüler.
hmm,
nach den Aussagen mehrer Lehrer, soll ich ein aufgeschlossenes Buerschchen
mit Organisationstalent und Entdeckerfreude gewesen sein.
- Schon die Anrede fuer negative Vorspannung sorgt.
Wie das? Sie unterscheidet sich nicht von deiner eigenen.
oops,
normalerweise benutze ich meine Muttersprache ...
- Kritisieren duerfen mich Menschen, die sich eine Wertschaetzung erworben haben.
Auweia. Das halte ich für eine ganz schlechte Einstellung.
okay,
jeder darf sich sein Leben nach eigenen Vorstellungen versauen.
Aber stell Dir mal ein Spiel vor, bei dem jeder reinreden darf.
Bei mir muss man eine Lizenz haben oder High-Heels tragen ... ;-)
Übrigens, zurück zur eigentlichen Frage:
Warum machst du es eigentlich so kompliziert?
okay,
zum Testen habe ich hier was online gestellt.
(Login: 'nobody', Passwort: 'gast')
Die Weiterleitung funktioniert mit JavaScript und wenn das abgestellt ist,
kann man einen Link-Button druecken. Rein IMHO wird diese Loesung auch schon
so an vielen Stellen im Netz verwendet, ich kannte sie nur noch nicht.
Gruss und Dank
Norbert
Hi,
zuerst moechte ich mich bei Dir bedanken, dafuer dass Du kein Lehrer geworden bist!
ich habe den Eindruck, du wärst auch ein sehr schwieriger Schüler.
hmm,
nach den Aussagen mehrer Lehrer, soll ich ein aufgeschlossenes Buerschchen mit Organisationstalent und Entdeckerfreude gewesen sein.
das will ich dir wohl glauben - aber hier wirkst du eher etwas zynisch und wenig bereit, mal über die Antworten nachzudenken, die du bekommst. So wirkt das jedenfalls auf mich.
- Schon die Anrede fuer negative Vorspannung sorgt.
Wie das? Sie unterscheidet sich nicht von deiner eigenen.
oops,
normalerweise benutze ich meine Muttersprache ...
English preferred. ;-)
Aber mal ehrlich: Ob mich jemand mit "Hallo" oder mit "Hello" anspricht, da mache ich keinen Unterschied - besser gesagt, der Unterschied würde mir nicht einmal auffallen.
- Kritisieren duerfen mich Menschen, die sich eine Wertschaetzung erworben haben.
Auweia. Das halte ich für eine ganz schlechte Einstellung.
okay,
jeder darf sich sein Leben nach eigenen Vorstellungen versauen.
Das hat nichts mit versauen zu tun. Aber wir müssen im Alltag mit den unterschiedlichsten Menschen umgehen, und ich bin bestrebt, mit möglichst vielen auch friedlich auszukommen. Dazu gehört IMHO, dass man einander auch ehrlich und offen sagt, wenn einem etwas nicht gefällt. Natürlich mit einem gewissen Anstand; die "ey alder verpiss dich"-Masche finde ich auch zum k*****.
Aber stell Dir mal ein Spiel vor, bei dem jeder reinreden darf.
Okay - solange er/sie sich an die Regeln hält.
Bei mir muss man eine Lizenz haben oder High-Heels tragen ... ;-)
*fg*
Eine gute Figur und ein hübsches Gesicht, dann dürfen's dazu auch ausgelatschte Treter sein. ;-)
Übrigens, zurück zur eigentlichen Frage:
Warum machst du es eigentlich so kompliziert?
okay,
zum Testen habe ich hier was online gestellt.
(Login: 'nobody', Passwort: 'gast')
Die Weiterleitung funktioniert mit JavaScript und wenn das abgestellt ist, kann man einen Link-Button druecken.
Ja, okay. Und meine Anregung war, direkt auf der Seite, wo du jetzt "Login erfolgreich" anzeigst, gleich den tatsächlichen Inhalt auszugeben. Ohne Weiterleitung bzw. Weiter-Link. Den Sinn dieser Zwischenseite sehe ich nämlich nicht.
Und die Übersichtsseite mit den Humor-Kategorien halte ich persönlich für überhaupt nicht benutzerfreundlich. Dass ich die vermeintlichen Links, die in Wirklichkeit submit-Buttons sind, nicht in einem neuen Fenster öffnen kann, nervt mich sehr. Ebenso nervig ist, dass ich nach einem Submit, einem Klick auf den Back-Button und einem weiteren Submit-Versuch für die nächste Kategorie plötzlich auf http://www.itbw.de/inhalt.php geleitet werde, beim dritten und allen weiteren Versuchen wieder auf das Login-Formular.
Das Konzept ist meiner Ansicht nach eine Zumutung. Warum möchtest du keine normalen Links verwenden, nachdem man sich einmal eingeloggt hat?
So long,
Martin
Hallo Martin,
aber hier wirkst du eher etwas zynisch ... f.f.
hmm,
weiss gar nicht wie zynisch geht, aber ironisch wuerde ich sofort unterschreiben.
wenig bereit, mal über die Antworten nachzudenken, die du bekommst.
na-ja,
so sich die Antworten auf die Frage beziehen, denke ich schon darueber nach.
Sollte ich mal nach einem Konzept fragen, werde ich auch darueber nachdenken.
Das Konzept war jedoch nicht mehr diskutabel, weil schon festgelegt.
Bei mir muss man eine Lizenz haben oder High-Heels tragen ... ;-)
*fg*
Eine gute Figur und ein hübsches Gesicht,
dann dürfen's dazu auch ausgelatschte Treter sein. ;-)
Armut schaendet nicht ... ;-)
Letztendlich entscheidet der muendliche Vortrag, wobei mein PC keine Boxen hat!
Den Sinn dieser Zwischenseite sehe ich nämlich nicht.
hmm,
wenn Du mal in den URL schaust, siehst Du, dass das noch die Login-Seite ist.
Falls Du z.B. http://www.itbw.de/humor/girls.proof.php bookmarkest, kommst Du
ueber die Loginseite direkt zu /girls.proof.php
Das Konzept ist meiner Ansicht nach eine Zumutung.
mag sein,
gefordert war ein Login ohne JavaScript und ohne Cookies sowie eine vor-
und zurueck-Navigation ohne SessionsID im URL. Was schlechteres wollte ich
nicht und was besseres kam in diesem Thread auch nicht heraus,
also wurde es wie es ist ... :-(
Gruss Norbert
Hallo,
Zur Abwechslung zurück zum Thema:
Es soll idealerweise kein JavaScript und kein Cookie mitspielen dürfen. Dennoch soll ein Session-ID-"Ball" zwischen Client und Server hin und her gespielt werden, und zwar per POST, nicht GET, damit die URL-Zeile sauber bleibt, alles klar soweit?
Ok dann, und so sieht's aus:
[...] hier wird das Formular erst mal abgesendet.
Der Einfachheit halber direkt auf sich selbst. Der PHP-Teil merkt dann natuerlich,
dass dort Login-Daten drin sind und setzt ein Query an die DB ab, ob die den Typen
ueberhaupt kennt. Kennt sie ihn nicht passiert nix, d.h. das Formular erscheint
wieder im Browser. Existiert ein passendes Datenpaar, wird die SessionsID generiert
und auf die Zielseite geleitet.
Nun, das Formular wird "direkt auf sich selbst" submittet, ein sog. Affenformular also, was mit einem Button method="POST" problemlos ohne JavaScript, ohne Cookies und ohne GET-Parameter im URL möglich ist.
Ok soweit. Ggf. wird dann
die SessionsID generiert und auf die Zielseite geleitet.
Das ist schon weniger klar. Ich denke mal es wird die Session-ID generiert und dem Benutzer wird die Zielseite vorgesetzt.
Auch dazu braucht es weder JavaScript, noch Cookies noch GET-Parameter im URL.
Wahrscheinlich soll die Zielseite im Browser des Benutzers dann aber diese Session-ID kennen und wenn der Benutzer irgendwohin weiterklickt, soll diese Session-ID wieder an den Server mitgeschickt werden, ohne dass sie im URL erscheint, also per POST, richtig? Dann schreib's doch auch so ;-)
Ohne JavaScript, Cookies oder GET-Parameter im URL muss jede Zielseite ebenfalls ein Formular enthalten, und jeder zum eigenen Server führende Link muss ein Submit-Button method="POST" des Formulars sein, wobei die Session-ID in einem Hidden-Feld steht.
Etwas umständlich vielleicht, aber machbar, denke ich.
Gruß, Don P