Wie sieht ein Loginsystem mit textdateien und php aus. Es sollen wenn man eingelogt ist weitere rubiken in der navigation erscheinen.
Login mit session und mit php und mit Textdateien
-
minder -
18. März 2008 um 16:03
-
-
1. Textdateien eignen sich nicht für Logins, ist sehr unsicher und mühsam.
2. Gibt schon 100e Threads, benutz einfach mal die Forensuche. -
-
und warumm nbimmste dann nicht glech ne htaccess zur loginsession ?
-
evtl. will man auf dder selben website nur für angemeldete user einige features hinzufügen, und deswegen nicht die gesamte website im geschützten verzeichniss neu einrichten?
-
Ich denke auch nicht, dass dies unsicher ist.
Mit PHP ist das relativ leicht. Man könnte die Daten aber doch auch gleich in die PHP einpacken. Oder nicht?
Oder sonst halt mit Datenbanken arbeiten. -
----
-
Da war doch was, da war doch was...
Und der Thread war auch noch von dir! -
Hallo das hast du mir ja geschrieben:
oben session_start();
dann
Code:du machst if(isset($_SESSION['signedin']) && $_SESSION['signedin']) {
//das was nur kommt, wenn du eingeloggt bist
}
else
{
...session_check.php:
Code:$benutzer = file("locationpw");
for($i = 0; $i < count($benutzer) - 1; $i += 2)
{
if(isset($_POST['benutzer']) && $_POST['benutzer'] == $benutzer[$i])
{
if(md5($_POST['password']) == $benutzer[$i + 1])
{
$_SESSION['signedin'] = true;
$_SESSION['user'] = $_POST['benutzer'];
//Backlick oder was auch immer
}
else
{
echo "Passwort falsch!
";
//etc.
}
$breaked = true;
break;
}
}
if(!$breaked)
{
echo "Benutzername nicht vorhanden!"M;
// etc.
}Die Datei mit den Passwörtern sollte in einem geschützten Bereich liegen und hat in den Zeilen immer abwechselnd Benutzername und Passwort.
Das Passwort muss md5-Verschlüsselt sein!
Mit $_SESSION['user'] kannst du dann auf den benutzer, der eingeloggt ist zugreifen.Viele liebe Grüße
The Userich check noch nicht wie ich die Bentutzer daten ablegen soll?
-
immer abwechselnd:
1. zeile: username
2. zeile: passwort
3. zeile: username
....
denke das hat user gemeint -
ok und wie muss die datei heissen?
-
im code steht:
$benutzer = file("locationpw");
kannst dir also aussuchen
musst nur locationpw durch den pfad ersetzen -
ok danke
-
Ok ich hab mal den Script ausprobiert. es kommt aber immer die meldung der benutzer existiert nicht.
index.php
PHP
Alles anzeigen<div id="col-one"> <div class="boxed"> <h2 class="title">Login</h2> <div class="content"> <?php session_start(); if(isset($_SESSION['signedin']) && $_SESSION['signedin']) { //test } else { print (" <form id='form1' action='session_check.php' method='POST'> <fieldset> <legend>Sign-In</legend> <label for='inputtext1'>Client ID:</label> <input id='inputtext1' type='text' name='name' value='' class='textfield' /> <label for='inputtext2'>Password:</label> <input id='inputtext2' type='password' name='password' value='' class='textfield' /> <input id='inputsubmit1' type='submit' name='inputsubmit1' value='Sign In' class='button' /> <p class='tiny'>[url='#']Forgot your password?[/url]</p> </fieldset> </form> "); } ?> </div>
session_check.php
PHP
Alles anzeigen<?php $benutzer = file("daten.txt"); for($i = 0; $i < count($benutzer) - 1; $i += 2) { if(isset($_POST['benutzer']) && $_POST['benutzer'] == $benutzer[$i]) { if(md5($_POST['password']) == $benutzer[$i + 1]) { $_SESSION['signedin'] = true; $_SESSION['user'] = $_POST['benutzer']; //Backlick oder was auch immer } else { echo "Passwort falsch! "; //etc. } $breaked = true; break; } } if(!$breaked) { echo "Benutzername nicht vorhanden!"; // etc. } ?>
und daten.txt
name test
pass test -
Wenn du eine datei mit file einliest, hast du immer den zeilenumbruch am ende des string, deshalb verwende http://de2.php.net/manual/de/function.trim.php
-
geht immer noch nicht
-
Ich bin sowieso erstaunt, dass du keine fehlermeldung von php um die ohren gehauen bekommst. In der index.php steht das session_start mitten im quellcode, anstatt am Anfang. Und in der session_check.php fehlt session_start komplett.
Du solltest, solange deine scripte nicht fertig sind, diese beiden zeilen immer am anfang aller scripte stehen haben:
-
Notice: Undefined variable: breaked in /home/yapperc/www/http://nanohack.yapper.ch/session_check.php on line 26
Benutzername nicht vorhanden!das kommt bei der session_check.php
-
ist die index.php do besser
PHP
Alles anzeigen<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>nanohack [Viren] [Computer]</title> <meta name="keywords" content="" /> <meta name="description" content="" /> <link href="default.css" rel="stylesheet" type="text/css" /> </head> <body> <?php session_start(); include("Plugins/besucher.php"); include("Plugins/datum.php"); include("Plugins/laden.php"); include("Plugins/titelladen.php"); include("Plugins/naviladen.php"); include("Plugins/IP.php"); include("Plugins/login.php"); $page = NULL; $navi = NULL; $titel = NULL; $page = $_GET['pagelink']; $navi = $_GET['navilink']; $titel = $_GET['titellink']; ?> <div id="logo"> <h1>[url='#']nanohack.yapper.ch[/url]</h1> </div> <div id="menu"> <ul> [*][url='index.php?navilink=Documents/navi.txt&pagelink=Documents/home.txt&titellink=Documents/titel.txt']Home[/url] [*][url='index.php?navilink=Documents/Computer/navi.txt&pagelink=Documents/Computer/computer.txt&titellink=Documents/Computer/titel.txt']Computer[/url] [*][url='index.php?navilink=Documents/Viren/navi.txt&pagelink=Documents/Viren/viren.txt&titellink=Documents/Viren/titelviren.txt']Viren[/url] [*][url='index.php?navilink=Documents/Lan/navi.txt&pagelink=Documents/Lan/lan.txt&titellink=Documents/Lan/titel.txt']Lan-Party[/url] [*][url='index.php?navilink=Documents/Sonstiges/navi.txt&pagelink=Documents/Sonstiges/sonstiges.txt&titellink=Documents/Sonstiges/titelsonstiges.txt']Sonstiges[/url] [*][url='index.php?navilink=Documents/Links/navi.txt&pagelink=Documents/Links/links.txt&titellink=Documents/Links/titellinks.txt']Links[/url] [*][url='index.php?navilink=Documents/Impressum/navi.txt&pagelink=Documents/Impressum/impressum.txt&titellink=Documents/Impressum/titelimpressum.txt']Impressum[/url] [/list] </div> <div id="wrapper"> <div id="col-three"> <div class="boxed"> <h2 class="title">Navigation</h2> <div class="content"> <?php naviload($navi); ?> </div> </div> </div> <div id="col-one"> <div class="boxed"> <h2 class="title">Login</h2> <div class="content"> <?php if(isset($_SESSION['signedin']) && $_SESSION['signedin']) { //test } else { print (" <form id='form1' action='session_check.php' method='POST'> <fieldset> <legend>Sign-In</legend> <label for='inputtext1'>Client ID:</label> <input id='inputtext1' type='text' name='name' value='' class='textfield' /> <label for='inputtext2'>Password:</label> <input id='inputtext2' type='password' name='password' value='' class='textfield' /> <input id='inputsubmit1' type='submit' name='inputsubmit1' value='Sign In' class='button' /> <p class='tiny'>[url='#']Forgot your password?[/url]</p> </fieldset> </form> "); } ?> </div> </div> <div class="boxed"> <h2 class="title">Search</h2> <div class="content"> <form id="form2" method="get" action="Plugins/suchen.php"> <fieldset> <legend>Search</legend> <input id="inputtext3" type="text" name="inputtext3" value="" class="textfield" /> <input id="inputsubmit2" type="submit" name="inputsubmit2" value="Search" class="button" /> </fieldset> </form> </div> </div> <div class="boxed"> <h2 class="title">Infos</h2> <div class="content"> <h5 align="center"> <?PHP datum(); ?> <?PHP besucher(); ?> Ihre IP lautet: <?PHP ip(); ?> </h5> </div> </div> </div> <div id="col-two"> <div class="boxed"> <h2 class="title"><?php titelload($titel) ?></h2> <div class="content"> <?php load($page); ?> </div> </div> </div> </div> <div id="footer"> Copyright by Pascal Minder</p> [url='#']Impressum[/url] | [url='#']Kontakt[/url]</p> </div> </body> </html>
-
Zitat
In der index.php steht das session_start mitten im quellcode
Das ist immer noch der fall und die beiden zeilen sehe ich auch nicht! -