Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] Login Bereich -Eigene Interne seiten für mitglieder (https://www.gegen-bilderklau.net/thread.php?threadid=146148)


Geschrieben von evelyn260590 am 09.12.2008 um 13:45:

  Login Bereich -Eigene Interne seiten für mitglieder

hallo,
bin grade dabei den login bereich einzurichten -klappt soweit alles gut. jetzt will ich nur für jedes mitglied eine eigene seite haben sobald man sich einloggt. hab versucht logform.php öfters zu erstellen also logform.jenny.php etc. will aber nicht klappen also wird das falsch sein, kann mir jemand weiterhelfen?

glg



Geschrieben von ProtexX am 09.12.2008 um 16:30:

 

Speichere die Daten zu jeder Person die auf der "persönlichen" Seite angezeigt werden sollen in der Datenbank und übergib beim Aufrufen der Seite den Benutzernamen als Parameter (z.B. "www.meineseite.de/logform.php?user=Jenny). Dann sucht sich die logform.php die entsprechenden Informationen aus der Datenbank und stellt sie dar.

Falls die Informationen auf dieser Seite nicht für alle sichtbar sein sollen, solltest du das ganze vielleicht über Sessions [1] lösen. Beim Login wird dann der Benutzername abgespeichert und beim Besuchen von logform.php wird geschaut welcher Benutzername in der Session gespeichert ist und dann zu diesem die Informationen abgefragt.

[1] PHP-Einfach: PHP-Sessions



Geschrieben von evelyn260590 am 09.12.2008 um 16:54:

 

*php anfänger* grinz

also ich habe die codes vom vrh adventskalender, da komme ich grad ganz durcheinander wenn ich mir das mit den sessions anschaue, die sind da ja mit in dem code drin weiß trotzdem grad nicht was genau ich von deiner vorgeschlagenen seite einfügen muss

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
<? 
$pw=$HTTP_POST_VARS['pw'];
$uname=$HTTP_POST_VARS['uname'];


if($uname=="Jenny" and $pw =="test"){
$yes ="1";
}

if($yes=="1")
{
session_start (); 
$_SESSION["user_name"] =$uname;
header("location: intern.jenny.php");
}
?>



Geschrieben von Baronesse am 09.12.2008 um 18:50:

 

Session_start();
muss schon mal gaaanz am Anfang stehen. die Funktion klappt nicht wenn du dem was anderes vorstellst.
Okay... offensichtlich arbeitest du ohne Datenbank.



Geschrieben von evelyn260590 am 10.12.2008 um 00:46:

 

genau ohne datenbank



Geschrieben von ProtexX am 10.12.2008 um 10:40:

 

Zitat:
Original von evelyn260590
weiß trotzdem grad nicht was genau ich von deiner vorgeschlagenen seite einfügen muss

Eigentlich solltest Du sie dir durchlesen und verstehen was dort beschrieben wird. Einfaches Kopieren/Abschreiben wird dich in diesem Fall nicht weiterbringen. Des weiteren ist es nicht Sinnvoll in so einem Fall ohne Datenbank zu arbeiten, es sei denn du speicherst alles in Text-Dateien was aber beim auslesen mehr arbeit machen wird.

Mit einer Datenbank würde ich es so umsetzen:

Tabelle "Benutzer"
code:
1:
2:
3:
4:
5:
6:
ID Name      Passwort  Geburtsdatum
0  Jenny     test      01.01.0001
1  ProtexX   foo       03.03.0003
...


Der Login würde dann so aussehen (Datei "logform.php"):
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:

<?php
session_start();
if(!isset($_SESSION)) {
    if(!isset($_POST["login"]) {
        echo "<form action="logform.php" method="post">";
        echo "  <input type="text" name="benutzer">";
        echo "  <input type="password" name="passwort">";
        echo "  <input type="submit" name="login" value="Anmelden">";
        echo "</form>";
    }
    else {
        $sql "SELECT TOP 1 FROM Benutzer WHERE Benutzer = ".$_POST["Benutzer"]." AND Passwort = ".$_POST["Passwort"];
        $row mysql_fetch_array(mysql_query($sql));
        if($row) {
            $_SESSION["Benutzer"] = $row["Benutzer"];
            $_SESSION["Geburtsdatum"] = $row["Geburtsdatum"];
            echo "Hallo, ".$row["Benutzername"]."! Du hast dich erfolgreich angemeldet. <a href="personal.php">Hier</a> gehts zu deiner persönlichen Seite.";
        }
        else {
            echo "Benutzername und Passwort stimmen nicht überein.";
        }
    }
}
?>


Datei "personal.php"
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

<?php
session_start();
if(isset($_SESSION)) {
    "Hallo, ".$_SESSION["Benutzer"]."! Dein Geburtsdatum ist ".$_SESSION["Geburtsdatum"]. Klicke <a href="logout.php">hier</aum dich abzumelden.;
}
else {
    echo "Du musst dich zuerst <a href="logform.php">anmelden</a>!";
}


Datei "logout.php"
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:

<?php
session_start();
if(isset($_SESSION)) {
    session_destroy();
}
else {
    echo "Du musst dich zuerst <a href="logform.php">anmelden</a>!";
}


Wie du siehst ist das alles nicht so einfach, aber dafür ist es die beste Lösung. Zunge raus

Auf PHP-Einfach findest du hier eine gute Erklärung wie Sessions im Zusammenhang mit einem simplen Loginsystem funktionieren und alternativ hier (Einstieg) und hier das ganze ohne Datenbank.

Zitat:
Original von evelyn260590
*php anfänger* grinz

Dann solltest du dir vielleicht erstmal die Grundlagen anlesen. PHP-Einfach bietet da eigentlich alles was du wissen musst. Eine etwas ausführliche Dokumentation (auch mit Einstieg) findest du auf php.net

Viel Spaß beim Programmieren! smile

P.S.: Die Richtigkeit des Codes ist ohne Gewähr, da ich den gerade aus dem Kopf geschrieben habe. Syntaxfehler sind also nicht ausgeschlossen. Zunge raus



Geschrieben von Dreamless am 10.12.2008 um 12:11:

 

Ansonsten ist eventuell das PHP-Tutorial von Quakenet interessant...



Geschrieben von evelyn260590 am 10.12.2008 um 15:03:

 

hab mich mit der datenbank jetzt mal etwas vertraut gemacht

@ProtexX
also lege ich jetzt eine neue tabelle in der datenbank an, die benutzer heißt und schreibe dann in die vier Zeilen ID,Name,Passwort und Geburtstdatum?

muss ich mit dem SQL code der dabei raus kommt noch irgendwo einsetzten?



Geschrieben von ProtexX am 10.12.2008 um 15:34:

 

Nein, du musst gar nicht "dies und jenes" tun, sondern dir einfach PHP-Einfach durchlesen. Mein Code war nur ein Beispiel wie du es (nachdem du dir die Kenntnisse angelesen hast) umsetzen kannst. Ob das Feld jetzt "Geburtsdatum" oder irgendwie anders heißt musst du halt anpassen, je nachdem was du speichern möchtest. Es können natürlich auch mehr Felder werden.

Zu deiner Frage: Nein, den Code brauchst du für gewöhnlich später nicht mehr. smile



Geschrieben von evelyn260590 am 10.12.2008 um 16:44:

 

so danke dir Augenzwinkern
ich hab das jetzt dank php-einfach alles soweit hinbekommen und es funktioniert auch, muss jetzt nur nochmal schaun wie ich das jetzt mit den sessions hinbekomme, das jeder user auf seine eigene interne seite nach dem login kommt



Geschrieben von Maina am 10.12.2008 um 17:23:

 

Anders gehts auch (wenn du bei Uni bleibst ^^), ist aber auch aufwendig.

Du hast ja am Anfang jeder Seite die Session.
php:
1:
2:
3:
4:
5:
6:
<?
@session_start();
$uname = $_SESSION["user_name"];
$id = $_SESSION["user_id"];
include "checkuser.php";


Angenommen mal, das ist dein Header.
Drunter kommt dann
php:
1:
2:
3:
4:
5:
6:
7:
if($uname=="Testuser") {
echo "Blabla. Das ist die persönliche Seite des Testusers (:";
}
if($uname=="Arschkeks") {
echo "Bluuubb! Das ist die persönliche Seite des Arschkekses.";
}
?>


Das brauchst du dann aber für jeden User. (:

Mit der DB wärs einfacher, da speicherst du für jeden User meinetwegen einen Datensatz.
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
// testtabelle_user ist die Tabelle, in der du die Daten der persönlichen Seiten gespeichert hast. Mit WHERE `mitglieder` = '$uname' wird der Datensatz abgefragt, dessen Name in der Session festgelegt ist.

$abfrage mysql_query("SELECT * FROM `testtabelle_user` WHERE `mitglied` = '$uname'");

// angenommen, du hast 2 Spalten in der Tabelle: mitglied und seite.
   while($row=mysql_fetch_assoc($sql)){
   echo "Willkommen auf deiner persönlichen Loginseite, $row[mitglied]!<br>
<br>
$row[seite]
";
}


Jetzt hab ichs aber. (:


Forensoftware: Burning Board, entwickelt von WoltLab GmbH