| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

11-02-2009, 12:51
|
|
prince2402
Newbie
|
|
Registriert seit: Feb 2007
Beiträge: 4
|
|
Login Probleme
Guten Tag,
ich habe ein Problem und zwar, ich habe eine Seite (so eine Art Plattform für Promotion und Event), die noch nicht fertig ist ein login-Bereich eingesetzt. Soweit so gut  . Klappt auch alles wunderbar.
Am Anfang sollten sich User registrieren...Nach dem Einloggen kommen Sie auf login.php und da haben sie die Möglichkeit: Profil bearbeiten, Anzeigen aufgeben, Terminkallender...).
Ich habe alle einzelne PHP-Seiten fertig gemacht (terminchange.php, profil.php ....), aber das Problem es klappt ja nicht, wenn ich die alle miteinander verlinke, weil jedes mal sagt mein Script, dass ich mich einloggen muss. Das heißt die Daten vom User werden nicht von der Seite: login.php zur Seite terminchange.php, profil.php ....
Wie kann ich es am besten machen??? Die Seiten so zuverlinken und die Daten (Passwort und Benutzername) vom User auch auf die nächste Seite übertragen????
Ich danke euch
|

11-02-2009, 12:55
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
arbeite mit sessions
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

11-02-2009, 13:03
|
|
prince2402
Newbie
|
|
Registriert seit: Feb 2007
Beiträge: 4
|
|
erstmal danke für deine Antwort.
hier mein Script:
<?
$username = $_GET[login];
$passwd = $_GET[password];
if ($_GET[logout] != "logout" ) {
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect('xxx', 'xxx', 'xxx')
or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db('DB238535') or die("Auswahl der Datenbank fehlgeschlagen");
$select = "select count(*) anzahl from kunden where Benutzername = \"".$username."\" and Passwort = \"".$passwd."\"";
$result = mysql_query($select) or die("Anfrage fehlgeschlagen: " . mysql_error());
$login = mysql_fetch_array($result, MYSQL_ASSOC);
if( $login[anzahl] >= 1 ) {
if ($_POST[Schicken] != "Ändern" ) {
echo "<font class=\"bold\" style=\"font-size:8pt; font-weight:bold;\" face=\"Arial\" color=\"#17E6FE\">Der Login war erfolgreich!</font><br>";
echo "<font class=\"bold\" style=\"font-size:8pt; font-weight:bold;\" face=\"Arial\" color=\"#FFFFFF\">Zum ausloggen bitte hier klicken: <a href=\"login.php?logout=logout\">Ausloggen</a></font><br><p> </p>";
echo "<font class=\"bold\" style=\"font-size:8pt; font-weight:bold;\" face=\"Arial\" color=\"#FFFFFF\">Hier können Sie Ihre Persönlichendaten ändern:</font>";
$select = "select * from kunden where Benutzername = \"".$username."\" and Passwort = \"".$passwd."\"";
$result = mysql_query($select) or die("Anfrage fehlgeschlagen: " . mysql_error());
$login = mysql_fetch_array($result, MYSQL_ASSOC);
?>
Dann habe ich ein Script geschrieben, der die Daten von der Datenbank hollt und die auf der Seite (login.php, terminchange.php...) überträgt, laüft auch wunderbar.
Wo soll ich die session_start (); einsetzen?? und soll ich die auf alle Script oder nur auf der login.php (die erste Seite nach dem Login)??
Danke
|

11-02-2009, 13:14
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
schau dir mal das hier an. da wird alles erklärt.
und meinst du doch sicher nicht ernst
PHP-Code:
$username = $_GET[login];
$passwd = $_GET[password];
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

11-02-2009, 13:18
|
|
prince2402
Newbie
|
|
Registriert seit: Feb 2007
Beiträge: 4
|
|
Hallo Peter,
stimmt was mit meinem Script nicht???
Musste ja auch sein, sont würde ich keine Probleme haben.
|

11-02-2009, 13:34
|
|
php_fussel
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 120
|
|
Ich denke der Herr Kropff meint das GET ... damit werden die Daten im Klartext übergeben ... verwende lieber POST ...
Kleines Beispiel für Login:
Du erstellst eine 'login.php'[list=1][*]session_start();//Session aufnehmen/starten[*]session_destroy(); //Session beenden (oder das Session-array auf null setzen)[*]Formular erstellen <form action='backend.php' method='POST'> ...[/list=1]
Du erstellst die 'backend.php' (bzw. die Seite, die nur der eingeloggte User sehen darf)
[list=1][*]if(isset($_POST["name"])) ... //Überprüfen, ob POST gesetzt[*]if($_POST["name"] == "Max" && $_POST["passwd"] == "mustermann")///*Falls Name und Passwort korrekt --> normalerweise aus DB!*/[*]$_SESSION["name"] = $_POST["name"]; $_SESSION["passwd"] = $_POST["passwd"];//Übergabe an Session[*]include "login_controll.php";//Hier includierst Du die Kontrolle[*]... hier befindet sich der Rest Deiner backend.php, also alles, was der eingeloggte User sehen darf[/list=1]
Du erstellst die login_kontroll.php
[list=1][*]if(!isset($_SESSION["name"])) ... //wenn die Session nicht vorhanden/gesetzt wurde[*]header("Location: login.php");// dann zeige wieder die Login-Seite[/list=1]
Somit hat nur der Zugang, der auch eingeloggt ist und sieht die gesamte backend.php. Auch ein direktes Aufrufen der backend.php duch die URL ist nicht möglich, da die Session-Variable fehlt!
Gruß php_fussel
Geändert von php_fussel (11-02-2009 um 14:23 Uhr)
|

11-02-2009, 14:03
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Zitat:
|
damit werden die Daten im Klartext übergeben
|
und jeder dödel, der hinter einem steht, kanns mitlesen.
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

11-02-2009, 14:11
|
|
php_fussel
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 120
|
|
JEP!
|

11-02-2009, 19:14
|
|
prince2402
Newbie
|
|
Registriert seit: Feb 2007
Beiträge: 4
|
|
Das mit Session habe ich ja verstanden.
Das mit dem Link bekomme ich nicht hin. Ich habe einfach ein Link von der login.php zu terminchange.php gesetzt und habe auch das mit
<a href=\"terminchange.php?login=".$username."&password=".$passwd."\"/a>
ausprobiert aber das kriege ich einfach nicht hin.
Bitte um Hilfe, denn der User soll nicht irgend eine Seite sehen, ER soll seine Daten, Termin...ändern können und die werden von der Datenbank gerufen.
|

11-02-2009, 19:25
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Original geschrieben von prince2402
Das mit Session habe ich ja verstanden.
|
Sicher ...?
Zitat:
|
Das mit dem Link bekomme ich nicht hin. Ich habe einfach ein Link von der login.php zu terminchange.php gesetzt
|
Wenn du das Vorgehen mit Sessions verstanden hast - dann sehe ich nicht, wozu du immer noch Nutzername und Passwort von einem Dokument zum anderen uebergeben willst. (Und dazu immer noch fuer jeden sichtbar per GET.)
Zitat:
|
Bitte um Hilfe, denn der User soll nicht irgend eine Seite sehen, ER soll seine Daten, Termin...ändern können und die werden von der Datenbank gerufen.
|
Dann beschaeftige dich mit Sessions - noch mal.
So lange, bis du verstanden hast, was sie sind und leisten, und wie man sie in eben so einem Fall einsetzt.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|