mehrere fragen zu php/mysql

Robert Fischer

Erfahrenes Mitglied
hallo, hoffe ihr könnt mir helfen.

1. ich habe ein login-system programmiert, was auch schon prima funktioniert. die seite besteht aus 3 frames. im untersten gibt es den login. bei erfolgreichem login soll sich der mittlere frame ändern (funktioniert). und gleichzeitig soll der untere frame aktualisiert werden mit einem neuen inhalt. wie geht das???

2. wie kann ich innerhalb einer datei im passwortgeschützten bereich hin und her switchen, ohne dass immer ein link mit user.php?name=irgendwas... aufgerufen werden muss (da sonst username und passwort sichtbar wären). es soll also innerhalb einer datei mehrere bereiche geben, welche immer durch eine aktion des users erreicht werden können.

3. wie kann ich überprüfen, ob ein user-eingeloggt ist. muss hier immer ein cookie gesetzt werden oder gibt es auch andere lösungen?

danke für eure (hoffentlich erfolgreichen) bemühungen.
 
Hi,

meine Antworten haben jetzt nicht direkt was mit PHP zu tun, aber ich hoffe, Du kannst trotzdem was damit anfangen. ;)

zu 1.)
das geht mit Javascript:
Code:
<A HREF="mitte.htm" TARGET="mitte" OnClick="self.location.href='untenneu.htm'">click</A>


zu 2.)
das geht über ein Formular:
Code:
<FORM ACTION="script.php" METHOD="Post">
    <INPUT TYPE="hidden" NAME="name" VALUE="irgendwas">
    <INPUT TYPE="Submit">
</FORM>
statt dem irgendwas muss dann natürlich der Username (per PHP generiert) stehen.
statt dem Submit kannst Du auch ein Image nehmen.


zu 3.)
Du könntest das auch per Sessions lösen. Hab ich aber leider noch nicht gemacht, und kann Dir leider nichts genaueres dazu sagen. :(

Hoffe das hilft erstmal. :)

Gruß
Dunsti
 
zu 3):

Wie Dunsti schon meinte würde ich das mit Sessions machen. Ist eigentlich ganz einfach:

In der Datei, an welche du die Daten des Login-Formulars schickst, werden der Benutzername und Passwort überprüft. Wenn alles richtig ist, wird in der Session eine Variable $isloggedin auf true gesetzt. Alle anderen Seiten lesen nun die Session am Anfang aus und gucken nach ob $isloggedin auf true steht. Wenn nicht wird eine Fehlermeldung ausgegeben.

Mal ein Beispiel:
PHP:
// Dies ist die Datei, die die Formulardaten überprüft

// Session starten
session_start ();

// Benutzername und Passwort prüfen
if (($username == "Max") && ($password == "geheim")) {
  $isloggedin = true;
} else {
  $isloggedin = false;
}

// Variable in der Session registrieren
session_register ("isloggedin");

Die anderen Dateien würden dann in etwa so aussehen:
PHP:
// Wieder die Session starten
session_start ();

// Überprüfen ob die Variable "isloggedin" in der Session
// registriert wurde. Wenn ja, dann überprüfe ob der Wert
// true ist, ansonsten gib eine Fehlermeldung aus.
// Wenn die Variable nicht existiert ist der Benutzer nicht
// eingeloggt und es wird ebenfalls eine Fehlermeldung
// ausgegeben.

if (session_is_registered ("isloggedin")) {
  if ($isloggedin) {
    // Es ist alles okay ... Die Seite wird aufgerufen
  } else {
    // Routine für Fehlermeldung aufrufen
  }
} else {
  // Routine für Fehlermeldung aufrufen.
}

Für das Logout, setzt du einfach die Variable $isloggedin auf false oder löscht sie mit session_unregister ("isloggedin");



Ich denke mal das alles müsste klappen. Habs jetzt allerdings nicht getestet sondern nur so aus dem Kopf hingeschrieben. Aber ich denke mal der Ansatz ist klar, oder?


@ Dunsti:
Sowas hast du noch nie gemacht? Das wird aber noch nötig sein für ausgehkalender.de
 
@work: ja ja ... alles zu seiner Zeit. Außerdem kenn ich ja jetzt wen, der sich damit super auskennt. :)

sorry für OffTopic.

Gruß
Dunsti
 
Zu Frage 1

Code:
<script language="JavaScript">
   	function ZweiFrames(URL6,F1,URL10,F2)
   		{  
    			parent.frames[F1].location.href=URL(Framezahl);
    			parent.frames[F2].location.href=URL(framezahl2);
   		}
</script>

der Link würde dann so aussehen:

<a href="javascript:ZweiFrames('../Datei_frame_1',Framezahl,'Datei_frames_2.html',framezahl2)">Linktext</a>

(Framezahl)(Framezahl2) = die Nummer des Frames.
Schau in dein Frameset und zähl von oben nach unten durch beginnend bei 0 zu dem frame den du willst und nimmst die zahl und setzt sie im script und im link ein.
Du kannst auch 3 oder 4 frames gleichzeitig wechseln.
Muss nur das script erweitern.

Head
 
danke für die antworten bisher. werds ausprobieren. bei den antworten zu 1 ist allerdings das problem, dass es sich im frame 3 um ein formular handelt und ich als formular ziel keinen js-code eingeben kann. es würde auch ein php-code zum automatischen redirect eines anderen frames helfen, ohne dass der user was anklickt.
 
Code:
<script language="JavaScript">
   	function ZweiFrames(URL6,F1,URL10,F2)
   		{  
    			parent.frames[F1].location.href=URL(Framezahl);
    			parent.frames[F2].location.href=URL(framezahl2);
   		}
</script>
Wenn du das fest definierst als aufrufbare funktion, also die zieldaten schon im header angibst
und dann später im formular:
Code:
<form name="Testform" action="blablub.php" 
onSubmit="return ZweiFrames()">
<input type=text size=40 name="Eingabe">
<input type=submit value="Absenden">
</form>

Allerdings weis ich nicht ob der Code jetzt stimmt,
hab von js keine ahnung aber ich denke so in der Art sollte gehen.
 
danke für die doch hilfreichen antworten. ich werde das ganze jetzt doch mit cookies umsetzen, dass erscheint mir am einfachsten.
 
na dann viel Spaß :)

und gib mal Bescheid, wenns geklappt hat, oder frag einfach, wenn noch Probleme auftreten sollten :)

einen Redirect mit PHP machst Du übrigens so:

PHP:
header("Location: datei.html");

allerdings geht das glaube ich nicht in Frames, da man hier kein TARGET angeben kann. kannst es ja mal ausprobieren ;)

Gruß
Dunsti
 

Neue Beiträge

Zurück