WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Session+Login

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Session+Login - 23 Nov 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Session+Login
MajorWindbeutel
Quasselstrippe
Threadstarter




Beiträge: 328

Hi.

Das wurde bestimmt schonmal gefragt aber ich finde nichts.
Also ich brauche ein Login Script mein altes taugt einfach nichts.

Ich habe gehört das man sowas auch mit MySQL und Session's machen kann.
Aber leider probier ich vergeblich da was hinzubekommen.

Ich weiß nur das ich
session_start()
session_register
brauch.

Aber mehr nicht.

Könntet ihr mir (mal wieder) helfen?

Ich sag auch ganz nett bitte und mach schöne Augen

Vielen Dank im Voraus

---
Mit freundlichen Grüßen
MajorWindbeutel

Meine Homepage

  Profil   E-Mail   Website   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795


  Profil   Editieren   Zitieren
MajorWindbeutel
Quasselstrippe
Threadstarter




Beiträge: 328

Ich habe gerade den PHP 5 Artikel gelesen man ist das schwer!
Ich kann doch weiter den PHP4 Stil nutzen oder?!

Danke für dei Antwort

---
Mit freundlichen Grüßen
MajorWindbeutel

Meine Homepage

  Profil   E-Mail   Website   Editieren   Zitieren
dsc
Pixelschubser




Beiträge: 8

Also du must zuerst natürlich die Session Starten, dies machst du mit:

1:
session_start();


Anschliessend mache ich dies in meinen Scripten immer so:

1. Benutzer muss Benutzername und Passwort eingeben [Formfelder]
2. Die Angaben des Benutzers werden mit der MySQL Datenbank verglichen
3. Nun erstelle ich eine Session:

1:
$_SESSION['userID'] = $userID;


Nun bei jeder Seite, die nur für CommunityUser ist, füge ich diesen Code ein:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10:



Und wenn sich jemand ausloggen möchte, kann man einfach diesen Befehl machen:

1:
unset($_SESSION['userID']);



Habe mal den Teil mit der MD5-Verschlüsselung weggelassen... ist zwar nicht schwer, aber verwirrt warscheinlich eh nur und hat nix mit deinem Problem zu tun.


Gruss
dsc

Diese Nachricht wurde geändert von: dsc
  Profil   E-Mail   Website   Editieren   Zitieren
[SpecFor]crusher
Otto-Normal-Poster




Beiträge: 97

Achtung, mein Script:

loginform.php
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22:
Login';
$loginform .= '
'; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= ''; $loginform .= '
Benutzer
Kennwort
'; $loginform .= '
'; ?>


Die Funktionen login(); und isAdmin(); in der functions.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: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43:
function login()
  {
    global $_SESSION, $db;
    $sql = "SELECT user, pw FROM user where user='".$_SESSION['user']."'";
    mysql_select_db($db['database'], $db['connect']);
    $r_user = mysql_query($sql, $db['connect']);
    if( mysql_num_rows($r_user) > 0 )
      {
        $result = array();
        $result = mysql_fetch_array($r_user);
        if( $result['pw'] == $_SESSION['pw'] AND $result['user'] == $_SESSION['user'] )
          {
            return true;
          }
        else
          {
            return false;
          }
      } //Ende if num_rows
  } //Ende Funktion

function isAdmin($user)
  {
    global $db;
    $sql = "SELECT admin FROM user where user='$user'";
    mysql_select_db($db['database'], $db['connect']);
    $r_user = mysql_query($sql, $db['connect']);
    if( mysql_num_rows($r_user) > 0 )
      {
        $result = array();
        $result = mysql_fetch_array($r_user);
        if( $result['admin'] == 1 )
          {
            return true;
          }
        else
          {
            return false;
          }
      } //Ende if num_rows
  } //Ende Funktion


datei.php (Jede Datei braucht diesen Abschnitt für den Login)
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: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51:






  Admin



Hier kommt der PW-geschützte Inhalt der Datei hin.






Eine höhere Sicherheit beim Login würde eine md5 Verschlüsselung bringen.
Statt der Zeile
1:
if( $result['pw'] == $_SESSION['pw'] AND $result['user'] == $_SESSION['user'] )

müsste
1:
if( $result['pw'] == md5($_SESSION['pw']) AND $result['user'] == $_SESSION['user']) 

da stehen.

Wenn du fragen hast, immer her damit.

  Profil   E-Mail   Website   Editieren   Zitieren
ernie2005
Pixelschubser




Beiträge: 1

was steht den in der _base.inc.php drin ?

  Profil   E-Mail   Editieren   Zitieren
sc0rp
Pixelschubser




Beiträge: 6

wenn ich das so wie dsc mache, was gehört dann in die if-schleife, die betreten wird wenn name und passwort stimmen?

mfg sc0rp

  Profil   E-Mail   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

ja alles das was der user dann können soll, also quasi der bereich hinter dem login.

  Profil   Editieren   Zitieren
sc0rp
Pixelschubser




Beiträge: 6

aber was nützen mir dann die sessions?

ich will ja dann schreiben

if(adminrechte==1) {
verwaltungskram
}
else {
}

verstehst du?

  Profil   E-Mail   Editieren   Zitieren
dsc
Pixelschubser




Beiträge: 8

Also... ich habe mir ja in meinem Code die UserID in eine Session-Variable geschrieben... warum dies?

Der Grund für dieses Prozedere ist ja dies, dass der User ja sonst auf jeder weiteren Site sein BN bzw. PW wieder eingeben müsste... und wieso? Weil ich ja sonst keien Anhaltspunkte hätte, welcher User dies ist (Ausser Cookielösung... ist ja klar). Wenn ich z.B. die UserID des momentan angemeldeten User (über die Session...) habe, kann ich auch weitere Abfragen machen. Normalerweise ist ja die UserID (sag ich jetzt einfach mal so) zusätzlich auch der Indexwert der User-Tabelle in der Datenbank, also ein Indexwert/Primärschlüssel.
Gut, dann haben wir ja schon einmal einen eindeutigen Wert für jeden User. Anschliessend ist dies die einzige Session-Variable die ich speichern muss, da ich den rest alles, nach bedarf selektieren kann (select * from `xY` WHERE `ID` = $_SESSION['UserID']).
Wenn ich evtl. irgendwelche Performance hohlen möchte... kann ich auch gew. Zusatzwerte auch in Session-Variabeln abspeichern... nur naja... da würden warscheinlich wieder andere mit dem Thema "Security" kommen... darum lassen wir das weg

Also wenn du jetzt abfragen möchtest, ob die adminrechte gleich 1 sind, musst du ja einen Anhaltspunkt haben, von wem man redet, also brauchst du ein Indiz, sprich die UserID.

Ist dir dieses Prozedere nun klar? Ansonsten einfach weitere Fragen posten... gebe sonst noch ein paar Programmbeispiele dar... aber nun hab ich knapp 3 Promille und muss ins Bett


Gruss
dsc

  Profil   E-Mail   Website   Editieren   Zitieren
sc0rp
Pixelschubser




Beiträge: 6

dsc, bitte geh mal wieder ins ICQ damit wir das dort klären können.

  Profil   E-Mail   Editieren   Zitieren
dsc
Pixelschubser




Beiträge: 8

sc0rp, bitte schreibe Fragen, wenn du hast hier rein.

1. Dann können alle davon profitieren
2. Ich hab nicht immer Zeit für 2 Stunden PHP/MYSQL Support wie das letzte mal
3. Kann ich nee Antwort schreiben wenn es mir passt

Dies hier ist ein PHP/MYSQL Forum für Leute die Fragen haben oder etwas wissen möchten... also schreib doch einfach wenn du was nicht verstehst... dafür bin nicht nur ich, sondern alle hier da


Gruss
dsc

  Profil   E-Mail   Website   Editieren   Zitieren
sc0rp
Pixelschubser




Beiträge: 6

ok, und damit ich jetz ALLES verstehe, müsst ihr mir bitte erklären, warum das nicht geht:

Also die index.php lautet:

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: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36:






  Login-System










Tut mir leid - aber die angeforderte Seite existiert nicht.

Schau doch besser mal nach, ob du dich nicht vertippt hast ;) 
 
 
 "; } ?> 





und die start.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: 
27: 
28: 
29: 
30: 
31: 
32:




Name: Kennwort:




Also bitte erklärt mir einer was man noch braucht dass das:

if($_SESSION['userid'] == "0") {
print("Hi");
}

ausgeführt wird...


PS.: ICh weiß das das nicht gehen kann aber ihr müsst mir das erklären wieso und wie man es richtig machen muss.
bitte helft mir!

Diese Nachricht wurde geändert von: sc0rp
  Profil   E-Mail   Editieren   Zitieren
Thodi
Fachidiot




Beiträge: 101

Hi ich bin der Thorsten und bin neu hier,
Ich habe da ein Problem aber keiner konnte mir genau helfen.
Ich wollte eine session schreiben die soll den namen und auf einer anderen seite ausgeben.
auf der ersten seite soll einer sein namen eintippen und dann versenden als session so das der name den mal eingeben hat auf der anderen seite zu lesen ist.
kann mir da einer helfen.ich habe schon viele hilfen gelesen aber ich verstehe das nicht.

  Profil   E-Mail   Editieren   Zitieren
dsc
Pixelschubser




Beiträge: 8

Also, wenn du den Namen nur einmalig verwenden möchtest, würde ich den Namen mittels der $_GET bzw. noch besser mit der $_POST Variabel weiterleiten lassen.

Wenn du aber den Namen, bzw. irgendeine BenutzerID für spätere Zwecke noch weiterverwenden möchtest, empfehle ich das Verwenden der $_SESSION Variabel.


Wie du das machen musst, ist eigentlich schon ein paar mal hier sehr gut beschrieben worden.

Wie gesagt, musst du zuerst die Variabel im Header setzen.

Wenn dies Funktioniert würde ich mal eine Testpage machen um zu schauen, dass der Code auch wirklich funktioniert:

1: 
2: 
3: 
4: 
5:
$strName = "Mein Name";

$_SESSION['name'] = $strName;

echo $_SESSION['name'];



Wenn er dann beim Laden der Datei, den Text "Mein Name" ausgibt, weisst du, dass er die Variable wirklich richtig schreiben kann.

Wenn dies funktioniert, kannst du diese Variable, solange sie nicht wieder released wird benutzen.
Je nach Konfiguration in der php.ini wird sie beim aktiven Fenster nach einer Zeit wieder freigegeben. Glaube standartmässig ist es ca. 25 Minuten inaktivität noch gespeichert.

Was für ein Problem hast du denn beim erstellen dieser Variabel? Bekommst du irgendwelche Fehlermeldungen? Wie sehen deine *.php Files so aus?

Umso mehr Informationen du mitgibst, umso einfacher ist es die Lösung für ein Problem zu finden.

  Profil   E-Mail   Website   Editieren   Zitieren
Seite 1 | 2 | 3  

Antworten
Forum » PHP & MySQL » Session+Login

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Session+Login im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8127822    Heute : 216     Gestern : 761     Online : 147     23.11.2024    9:06      2 Besucher in den letzten 60 Sekunden        
alle 30.00 Sekunden ein neuer Besucher
Nach oben