SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 28.10.2007, 19:59:20
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Login Skript bzw, SESSION

Ich bin gerade dabei für einen Bekannten die Homepage zu überarbeiten.
Dabei versuche ich mich das erstmal an Sessions.
Puh, gar nicht so einfach.

Die Struktur meiner Seite ist eine Index.php welche per include die übrigen Daten läd und Menüpunkte per Adresszeile weiter gibt (hoffe ihr versteht wie ich das meine)
Das aber nur als Nebeninfo :D

Als erstes wird auf meinen Seiten die Session per session_start(); gestartet
Session ID habe ich auch spaßeshalber nachträglich mal ausgegeben und das klappt soweit.

Nun, ich habe eine Datenbank in denen die User gespeichert werden.

Die Anmeldung erfolgt über ein Login Formular, welches folgenden Quelltext enthält:
HTML-Code:
<strong>LOGIN</strong><br />
	<form action="<? echo $PHP_SELF; ?>" method="post">
    <input type="hidden" value="1" name="logsend" />
	Name<br />
	      <input type="text" name="user" style="width:100px;" />
<br />
	Passwort<br />
	      <input type="password" name="pass" style="width:100px;"/>
		  <br />
		  <input type="checkbox" name="cookie" value="yes"><font style="font-size:0.8em;"> angemeldet bleiben</font><br>
		  <br />
<br />
	      <input type="submit" name="Submit" value="Einloggen" />
	</form>
Des Weiteren besteht auf der Seite folgender PHP Code:
PHP-Code:
<? if ($_POST[logsend]=="2")
{
require ( 'main/logout.php' );
} elseif ($_POST[logsend]=="1") {
require ( 'main/login.php' );
} else {
require ( 'main/login_form.php' );
} ?>
Denke das ist soweit erklärend, oder?

Meine Login.php beinhaltet:
PHP-Code:
<?
$sql="SELECT user, userid, passwort FROM tippliga_user WHERE user = '$_POST[user]'";
$ergebnis = mysql_query($sql);
echo mysql_error();
$num_rows = mysql_num_rows($ergebnis); 
if($num_rows!="1") {
echo '<font style="color:red;font-weight:bold;font-size:0.8em">Name oder Passwort <br />waren falsch falsch</font><br />';
require ( 'main/login_form.php' );
} else {
while ($row = mysql_fetch_array($ergebnis))
echo 'Willkommen '.$row["user"];
//Button zum ausloggen ?>
<form action="<? echo $PHP_SELF; ?>" method="post">
<input type="hidden" value="2" name="logsend" />
<input type="submit" name="Submit" value="Ausloggen" />
</form> <?
}
?>
die logout.php vollzieht lediglich ein session_destroy();

Ich habe nun ein paar Fragen:

1) Wie bekomme ich den User in die Session? bzw, wie bleibt er dort drin?
Der Code $_SESSION["name"] = $row["user"]; hat da leider nicht funktioniert.
Tipps reichen mir, möchte keine Lösung, sondern versuchen den Weg selbst zu finden. :D

2) Wie kann ich meinen Code verbessern. Sprich die Userabfrage verfeinern, den Code vielleicht kürzen und und und

Noch eine Anmerkung:
Ich habe die Passwort Abfrage noch nicht integriert, diese soll über MD5 erfolgen. Ich möchte aber erstmal soweit sein, dass das Grundprinzip steht :D
Mit Zitat antworten
  #2  
Alt 29.10.2007, 00:38:29
rambi
Guest
 
Beiträge: n/a
AW: Login Skript bzw, SESSION

Zitat:
Der Code $_SESSION["name"] = $row["user"]; hat da leider nicht funktioniert.
Sollte aber!!

Ansonsten, öffnet die Verwendung von PHP_SELF Tür und Tor für XSS Attacken.
Auch solltest du konsequent für register_globals=off schreiben.
magic_quotes beachten
"SQL Injections" verhindern
Die Passwortprüfung solltest du ins Query verlagern.

Geändert von rambi (29.10.2007 um 00:40:03 Uhr)
Mit Zitat antworten
  #3  
Alt 29.10.2007, 09:42:58
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
AW: Login Skript bzw, SESSION

Komisch, muss der Code $_SESSION["name"] = $row["user"]; an einer bestimmten stelle im Quelltext stehen?

Mit deinen anderen Punkten muss ich mich erstmal auseinandersetzen, da ich von denen "noch" :) keine Ahnung hab.

Geändert von Soeren (29.10.2007 um 09:43:10 Uhr)
Mit Zitat antworten
  #4  
Alt 29.10.2007, 15:00:09
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Login Skript bzw, SESSION

Zitat:
Zitat von Soeren Beitrag anzeigen
Komisch, muss der Code $_SESSION["name"] = $row["user"]; an einer bestimmten stelle im Quelltext stehen?

...
Da wo auch $row['user'] bekannt ist - also hinter Deinem Willkommen User.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5  
Alt 29.10.2007, 15:36:25
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
AW: Login Skript bzw, SESSION

Also da wo ich es auch hatte... Komisch.
Gut, dann muss ich mal schauen wie ich da weiterkomme...

und mich mit den anderen Punkten auseinandersetzen.
Mit Zitat antworten
  #6  
Alt 01.11.2007, 23:52:05
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Login Skript bzw, SESSION

Zitat:
Zitat von Soeren Beitrag anzeigen
Ich bin gerade dabei für einen Bekannten die Homepage zu überarbeiten.
Dabei versuche ich mich das erstmal an Sessions.
Puh, gar nicht so einfach.
Du übertreibst:
Zitat:
[Zitat] PHP für Fortgeschrittene und Experten (16 Betrachter)
Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken...[/Zitat]
Zitat:
Als erstes wird auf meinen Seiten die Session per session_start(); gestartet
Session ID habe ich auch spaßeshalber nachträglich mal ausgegeben und das klappt soweit.
Deinem Scriptpassagen ist leider nicht zu entnehmen, wie die Session ID "von Script zu Script" weitergegeben wird. Ohne "Fallback" klappert Dein Script nur dann, wenn der Client den "Sessionkeks" angenommen hat.

Zitat:
Die Anmeldung erfolgt über ein Login Formular, welches folgenden Quelltext enthält:
HTML-Code:
<form action="<? echo [B]$PHP_SELF;[/B] ?>" method="post">
Pfui!

Zitat:
<input type="checkbox" name="cookie" value="yes"><font style="font-size:0.8em;"> angemeldet bleiben</font><br>
Diesen frommen Wunsch solltest Du Dir ohne eigenen session save handler kneifen.

Zitat:
Des Weiteren besteht auf der Seite folgender PHP Code:
PHP-Code:
<? if ($_POST[logsend]=="2")
{
require ( 'main/logout.php' );
} elseif ($_POST[logsend]=="1") {
require ( 'main/login.php' );
} else {
require ( 'main/login_form.php' );
} ?>
Denke das ist soweit erklärend, oder?
Es ist ein reichlich umständliches "Affenformular"...

Zitat:
Meine Login.php beinhaltet:
PHP-Code:
<?
$sql="SELECT user, userid, passwort FROM tippliga_user WHERE user = '$_POST[user]'";
?>
Jo, solche Fehler begeht jeder ordentliche Webprogrammierer höchstens einmal...

Zitat:
die logout.php vollzieht lediglich ein session_destroy();
... und den auch.

Zitat:
1) Wie bekomme ich den User in die Session? bzw, wie bleibt er dort drin?
PHP-Code:
Indem Du einfach mal das Handbuch liest:
session_start();
$_SESSION['Soerens_user'] = 'ich bin drin'
Zitat:
Der Code $_SESSION["name"] = $row["user"]; hat da leider nicht funktioniert.
Sowas klappert nur bei Dir nicht.

Zitat:
Tipps reichen mir, möchte keine Lösung, sondern versuchen den Weg selbst zu finden. :D
Fang mit der PHP Config an und kill die Wanzen in Deinem Script. Und arbeite an Deinen Formulierungen - wie und ob "Du etwas kannst", entzieht sich zumindest meiner Kenntnis.

Geändert von meikel (†) (02.11.2007 um 00:45:45 Uhr)
Mit Zitat antworten
  #7  
Alt 02.11.2007, 09:12:55
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
AW: Login Skript bzw, SESSION

Zitat:
Zitat von meikel Beitrag anzeigen
Du übertreibst:
Wenn ich deiner Meinung nach im falschen Bereich gelandet bin, dann tut es mir leid.
Ich seh mich selbst aber nicht mehr als Anfänger, sondern schon eher in Richtung Fortgeschrittener, der allerdings auch noch nocht alles weiß und wissen kann. Für mich ist das ganze einfach ein Hobby und das was ich bisher gemacht habe funktionierte... Ob auf einem umständliches Weg oder nicht, sei dabei einfach mal dahin gestellt.

Zitat:
Zitat von meikel Beitrag anzeigen
Deinem Scriptpassagen ist leider nicht zu entnehmen, wie die Session ID "von Script zu Script" weitergegeben wird. Ohne "Fallback" klappert Dein Script nur dann, wenn der Client den "Sessionkeks" angenommen hat.
Tja, ich bastel das erste Mal mit Session und bin für jede Hilfe dankbar. Wie wäre es mit einem Tipp oder einem Link zu einem mehr oder weniger guten Tutorial?

Zitat:
Zitat von meikel Beitrag anzeigen
Pfui!
Ui, welch interessante Hilfe?!?

Zitat:
Zitat von meikel Beitrag anzeigen
Diesen frommen Wunsch solltest Du Dir ohne eigenen session save handler kneifen.
Okay, dann schau ich mal, wie ich das anders händeln kann.

Zitat:
Zitat von meikel Beitrag anzeigen
Es ist ein reichlich umständliches "Affenformular"...
Was meinst du damit?

Zitat:
Zitat von meikel Beitrag anzeigen
Jo, solche Fehler begeht jeder ordentliche Webprogrammierer höchstens einmal...


... und den auch.
Wie gut das ich noch lange kein ordentlicher Webprogrammierer bin, aber vielleicht kannst du mir erklären, worauf du hinaus willst?!

Zitat:
Zitat von meikel Beitrag anzeigen
Sowas klappert nur bei Dir nicht.
okay, netter hinweis

Zitat:
Zitat von meikel Beitrag anzeigen
Fang mit der PHP Config an und kill die Wanzen in Deinem Script. Und arbeite an Deinen Formulierungen - wie und ob "Du etwas kannst", entzieht sich zumindest meiner Kenntnis.
Ich kann doch die PHP Config auf einem Host System (zb all-inkl) nicht bearbeiten, oder etwa doch?

Welche Wanzen meinst du? Etwas mehr Hilfestellung wäre mir da schon lieber!

Mit Sessions kann ich gar nichts, mit PHP in zusammenarbeit mit MySQL kann ich etwas, aber sicherlich nicht alles. Vielleicht sollte ich dann doch eher unter Anfänger fragen, hm?

Bei meinem letzten Besuch hier war das auch mal angenehmer... Da wurde geholfen ohne wenn und aber und nun bekommt man solch dä++lichen Antworten.
Mit Zitat antworten
  #8  
Alt 02.11.2007, 10:57:37
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Login Skript bzw, SESSION

Zitat:
Zitat von Soeren Beitrag anzeigen
Ich seh mich selbst aber nicht mehr als Anfänger, sondern schon eher in Richtung Fortgeschrittener,
Egal, was Du sonst noch so alles kannst: Deine Kenntnisse bezüglich der PHP Session sind Anfängerkenntnisse.

Arbeite das durch:
Session Funktionen
http://de.php.net/session

29. Sessions
http://www.php-faq.de/ch/ch-version4_session.html

Zitat:
Welche Wanzen meinst du? Etwas mehr Hilfestellung wäre mir da schon lieber!
Die üblichen Fehler:
1. nicht überprüfte Variablen in SQL Abfragen zu verwenden.

Dazu die FAQ:
12.11. Prüfe importierte Parameter. Traue niemandem
http://www.php-faq.de/q/q-sicherheit-parameter.html

2. session_destroy(): PHP löscht die Sessiondaten mitunter nicht sofort. Ggf. dauert es etwas, bis die PHP-eigene Müllabfuhr das betreffende Sessionfile entsorgt. Und solange wäre die betreffende Session_id "noch im Spiel".

Lösche den Inhalt:
$_SESSION = array();

schreibe die geänderten Sessiondaten vorzeitig ins Sessionfile:
session_write_close();

Lösche die Session
session_destroy();
Mit Zitat antworten
  #9  
Alt 02.11.2007, 15:44:59
Soeren Soeren ist offline
Anfänger
 
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
AW: Login Skript bzw, SESSION

Ah, Super danke... dann wühl ich mich da mal durch.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Login Script mit Session Timout theaims PHP Grundlagen 38 15.07.2006 15:18:34
Bei Session Login - Wie kann ich einen direkter Zugriff über URL verhindern? Ladbroke PHP Grundlagen 1 19.04.2006 19:28:57
Login code Blackhell PHP für Fortgeschrittene und Experten 1 13.12.2005 19:43:51
Probleme mit php skript für Login Hexekati PHP Grundlagen 3 05.06.2005 23:33:25
laufende session soll 2. login verhindern PiCiJi PHP für Fortgeschrittene und Experten 7 25.08.2004 15:47:10


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:21:49 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt