php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.12.2008, 16:12  
Neuer Benutzer
 
Registriert seit: 23.11.2008
Beiträge: 25
klaussturm befindet sich auf einem aufstrebenden Ast
Standard Meine Passwortabfrage

Servus ich hoffe, ihr seid mit den Weihnachtsgeschenken zufrieden, die ihr bekommen habt.

Nun, ich baue gerade an einer Passwortabfrage (etwas stümperhaft, ich weiß) herum.

Aber Schritt für Schritt lerne ich mehr.

So sieht meine Auswertedatei aus:

PHP-Code:
<?
//Unterdrückung der Fehler mit @ - Zeichen          
@phpinfo(TEST);          
//Fehleranzeige          
error_reporting(E_ALL);
if(empty(
$_POST['passzahl']))
//Fehlermeldung ausgegeben.

echo 
"<br><br>Die Passworteingabe ist leer oder falsch oder das Passwort ist abgelaufen.\r";
echo 
"Bitte gehen Sie <a href=\"javascript:history.back();\"><strong>zur&uuml;ck</strong></a>";
exit;



$fp fopen("../doc/txt/passworddatei.txt","r"); 

while(
$daten=fgetcsv($fp1000"|"))
{
//$nickname=$daten[0];
$passwort=$daten[0];
}

if (
$passwort !== $passzahl)

echo 
"<br><br>Die Passworteingabe ist leer oder falsch oder das Passwort ist abgelaufen.\r";
echo 
"Bitte gehen Sie <a href=\"javascript:history.back();\"><strong>zur&uuml;ck</strong></a>";
exit;
}
else 

//vor dem header keine HTML-CODES oder echo "Das passt!"
header('Location: http://www.meine-domain.de/dat/p1.php');
fclose($fp);
exit;
}
?>
Das funktioniert prima.

Nun, möchte ich einen zweiten "Account" anlegen, ich kann zwar in die passworddatei.txt alles mögliche eintragen, aber ich lese da nix aus.

Auch möchte ich, dass der zweite "Account" an eine andere Zieldatei geleitet wird.

Wie stelle ich das am geschicktesten an?

Wer schubbst?

lg

Klaus

Geändert von klaussturm (25.12.2008 um 16:43 Uhr).
klaussturm ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.12.2008, 16:25  
Erfahrener Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 357
webproger befindet sich auf einem aufstrebenden Ast
Standard

Weshalb arbeitest du nicht mit einer MySQL-Datenbank wenn ich Fragen darf? Dies erleichtert dir wie auch dem Server die Arbeit. =] Wie man eine Anbindung an MySQL mit PHP macht findest du überall.
__________________
webproger ist offline  
Alt 25.12.2008, 16:27  
Erfahrener Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 357
webproger befindet sich auf einem aufstrebenden Ast
Standard

Um aber zu deinem Problem zu kommen:
Wenn du für jeden Benutzer eine andere Zieladresse haben willst musst du diese am besten in der txt-Datei auch noch gleich einschreiben. Aber ich würde dir echt ans Herz legen mit einer DB zu arbeiten, mit TXT-Files kommst du eigentlich nie weit. =]
__________________
webproger ist offline  
Alt 25.12.2008, 16:41  
Neuer Benutzer
 
Registriert seit: 23.11.2008
Beiträge: 25
klaussturm befindet sich auf einem aufstrebenden Ast
Standard

Servus und danke für deine schnelle Antwort.

Ich taste mich erstmal ganz langsam in die Materie heran, das ist noch ziemliches Neuland für mich.

Mit einer Datenbank bin ich (noch) heillos überfordert.

Zitat:
Wenn du für jeden Benutzer eine andere Zieladresse haben willst musst du diese am besten in der txt-Datei auch noch gleich einschreiben.
Wie soll denn das aussehen?

lg

Klaus
klaussturm ist offline  
Alt 25.12.2008, 19:08  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Naja im Endeffekt muss dein PHP-Script zwei Schritte haben:

1) Rausfinden wo die Passwörter stehen
2) Diese Passwörter holen und prüfen

Wie du das anstellst ist eigentlich der Fantasie überlassen.
Du kannst z.b. eine Haupt-Textdatei machen in der du z.b. reinschreibst
Code:
user1
user2
user3
und dann für jeden user eine textdatei, also eine user1.txt, user2.txt, user3.txt und in diese textdatei das passwort

Ich persönlich würde sowas machen wie
Passwort.txt
Code:
user1:passwort1
user2:passwort2
user3:passwort3
und dann halt eben jede zeile durchgehen und schaun ob der eingegebene benutzer und das passwort zusammenpassen.

Datenbank ist zwar im Endeffekt toll, aber bevor du dich hinsetzt und als blutiger Anfänger auch noch SQL lernen musst machs lieber erstmal über Textdateien, das ist schon recht so ^^ Spätestens wenn du aber wirklich eine Seite mit Registrierung/Login ins Netz stellen willst solltest du auf Datenbanken zurückgreifen.

mfg
BlackWolf ist offline  
Alt 25.12.2008, 20:27  
Neuer Benutzer
 
Registriert seit: 23.11.2008
Beiträge: 25
klaussturm befindet sich auf einem aufstrebenden Ast
Standard

Servus und danke für dein Posting.

Nun, ich werde wirklich im Moment noch fleißig üben und mir die Aufgabe mit der Datenbank noch aufsparen.

Ich vermeide auch im Moment mehrere User zu haben, so dass ich nur verschiedene Passwörter auswerten muss.

Aber das gelingt mir schon mal nicht.



Wie muss ich denn mein skript umschreiben?

PHP-Code:
$fp fopen("../doc/txt/passworddatei.txt","r"); 

while(
$daten=fgetcsv($fp1000"|"))
{
$passwort=$daten[0];


etwa so:
PHP-Code:
$fp fopen("../doc/txt/passworddatei.txt","r"); 

while(
$daten=fgets($fp1000","))
{
$passwort=$daten;


???????????

Was sollen eigentlich die 1000 in der while-zeile bedeuten?

lg

Klaus
klaussturm ist offline  
Alt 25.12.2008, 20:58  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von klaussturm Beitrag anzeigen
Servus und danke für dein Posting.

Nun, ich werde wirklich im Moment noch fleißig üben und mir die Aufgabe mit der Datenbank noch aufsparen.

Ich vermeide auch im Moment mehrere User zu haben, so dass ich nur verschiedene Passwörter auswerten muss.

Aber das gelingt mir schon mal nicht.



Wie muss ich denn mein skript umschreiben?

PHP-Code:
$fp fopen("../doc/txt/passworddatei.txt","r"); 

while(
$daten=fgetcsv($fp1000"|"))
{
$passwort=$daten[0];


etwa so:
PHP-Code:
$fp fopen("../doc/txt/passworddatei.txt","r"); 

while(
$daten=fgets($fp1000","))
{
$passwort=$daten;


???????????

Was sollen eigentlich die 1000 in der while-zeile bedeuten?

lg

Klaus
Du solltest keine Funktionen und/oder Parameter kopieren ohne nachzuschauen was es macht
PHP: fgetcsv - Manual
Da steht was die 1000 bedeutet
nichtsdestoweniger würde ich auf fopen() verzichten und die datei mit
file()
laden. Dann bekommst du ein Array bei dem jeder Eintrag einer Zeile entspricht.
Wenn du dann eine Datei erstellst in der jede Zeile einem Passwort entspricht geht das eigentlich ganz einfach.

Also nochmal was ich machen würde:
Datei bei der jede Zeile ein Passwort ist
Dann die Datei per file() in ein Array holen
Mit foreach() jeden Eintrag aus dem Array durchgehen und schauen ob einer der Einträge dem eingegebenen Passwort entspricht.

mfg
BlackWolf ist offline  
Alt 25.12.2008, 21:15  
Neuer Benutzer
 
Registriert seit: 23.11.2008
Beiträge: 25
klaussturm befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von BlackWolf Beitrag anzeigen
Du solltest keine Funktionen und/oder Parameter kopieren ohne nachzuschauen was es macht
PHP: fgetcsv - Manual
Da steht was die 1000 bedeutet
Servus, ja das stimmt.

Ich muss aber sagen, dass die Dokumentation sehr schwer zu verstehen ist - ich bin aber froh, dass es eine gibt.



Zitat:
nichtsdestoweniger würde ich auf fopen() verzichten und die datei mit file() laden. Dann bekommst du ein Array bei dem jeder Eintrag einer Zeile entspricht.
Wenn du dann eine Datei erstellst in der jede Zeile einem Passwort entspricht geht das eigentlich ganz einfach.
Also nochmal was ich machen würde:
Datei bei der jede Zeile ein Passwort ist
Dann die Datei per file() in ein Array holen

Mit foreach() jeden Eintrag aus dem Array durchgehen und schauen ob einer der Einträge dem eingegebenen Passwort entspricht.
Hmm, eine gute Idee, die ich mal erst ausbrüten muss.

Danke erstmal!


lg
Klaus
klaussturm ist offline  
Alt 26.12.2008, 18:56  
Neuer Benutzer
 
Registriert seit: 23.11.2008
Beiträge: 25
klaussturm befindet sich auf einem aufstrebenden Ast
Standard

Servus!
PHP-Code:
<?
<?
//Fehleranzeige          
error_reporting(E_ALL);
include ( 
"../doc/txt/#passworddatei.php");
if (empty(
$_POST['passzahl']))

echo 
"<br>Die Passworteingabe ist leer";
echo 
"<br>Bitte gehen Sie <a href=\"javascript:history.back();\"><strong>zur&uuml;ck</strong></a>";
exit;
}
if (
$passzahl == $passwort1)
    {
    include (
'p1.php');
    exit;
    }
if (
$passzahl == $passwort2)
    {
    include (
'p2.php');
    exit;
    }
if (
$passzahl == $passwort3)
    {
    include (
'p3.php');
    exit;
    }
if (
$passzahl == $passwort4)
    {
    include (
'p4.php');
    exit;
    }
if (
$passzahl == $passwort5)
    {
    include (
'p5.php');
    exit;
    }
else 
    {
    print 
"<br><br>Die Passworteingabe falsch oder abgelaufen.\r";
    print 
"Bitte gehen Sie <a href=\"javascript:history.back();\"><strong>zur&uuml;ck</strong></a>";
    exit;
    }
?>
Jetzt habe ich ganz was anderes gemacht (siehe oben)

Jetzt habe ich zwar noch viele if-Abfragen aber auch viele verschiedene Ziele.

Funktionieren tut das auch, elegant geht sicher anders.
Aber solang ich diese array-Geschichte noch nicht gefressen habe, muss es eben so gehen.



lg

Klaus

Geändert von klaussturm (26.12.2008 um 19:43 Uhr).
klaussturm ist offline  
Alt 26.12.2008, 22:04  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Das kannst Du wenigstens zu
PHP-Code:
<?php  
error_reporting
(E_ALL); ini_set('display_errors'1);

// require "../doc/txt/#passworddatei.php";
// liefert:
$passwords = array(
  
'12345' => 'p1.php',
  
'4711' => 'p2.php',
  
'1984' => 'p3.php'
);
  
if (empty(
$_POST['passzahl']))

  echo 
"<br>Die Passworteingabe ist leer";
  echo 
"<br>Bitte gehen Sie <a href=\"javascript:history.back();\"><strong>zur&uuml;ck</strong></a>";
  exit;
}

if ( isset(
$passwords[$_POST['passzahl']]) ) {
  include 
$passwords[$_POST['passzahl']];
}
else {
  print 
"<br><br>Die Passworteingabe falsch oder abgelaufen.\r";
  exit;
}
verkürzen.
David ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
submit erst nach JS Passwortabfrage? ACiD JavaScript, Ajax und mehr 6 28.10.2008 16:09
Passwortabfrage und Benutzernameabfrage RyAN PHP Tipps 2008 5 14.07.2008 13:45
htaccess: Bestimmte IP oder Passwortabfrage webbi Server, Hosting und Workstations 2 19.10.2006 10:57
[Erledigt] Passwortabfrage für Zugriff auf MySql-Datenbank Datenbanken 1 08.01.2006 22:10
Passwortabfrage anno PHP Tipps 2005 5 03.06.2005 13:36
passwortabfrage für downloads PHP Tipps 2005 11 16.03.2005 15:06
Passwortabfrage beim betreten der Seite PHP Tipps 2005 3 09.03.2005 12:49
passwortabfrage beim betreten der page PHP Tipps 2005 4 19.02.2005 19:17
Passwortabfrage mit daten aus einem txt file PHP Tipps 2004 6 07.11.2004 21:55
HTML Seite mit Passwortabfrage schützen votec-cougar PHP-Fortgeschrittene 14 12.10.2004 16:14
Fehlermeldung bei Passwortabfrage! duerov PHP Tipps 2004 6 24.09.2004 14:45
Passwortabfrage - Wie weiter? Datenbanken 1 05.08.2004 19:32
[Erledigt] Passwortabfrage aus MySQL-Datenbank Datenbanken 1 30.06.2004 16:33
Passwortabfrage u Link z geschützten Bereich a selber Stelle PHP Tipps 2004 4 18.06.2004 13:27
Eien normale Passwortabfrage? PHP Tipps 2004 3 04.06.2004 22:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php passworteingabe, passworteingabe php, http://www.php.de/php-tipps-2008/50081-meine-passwortabfrage.html, php die webseite ist abgelaufen, javascript passwortabfrage, passwortabfrage ajax, phpinfo abfragen fopen, passworteingabe mit php, php passwortabfrage include, php passwortabfrage fehlermeldung nach jeder zeile, php include passwortabfrage, history.back die webseite ist abgelaufen, die webseite ist abgelaufen history.back(), passzahl, passwortabfrage phpskript, php passwort aus db abfragen, php passwort ablaufen, php script passswortabfrage bei betreten der webseite, ajax password abfrage, php code passwort für website mit ablauf

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:15 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum