Passwort an Mailadresse und in txtfile für Login

Ich habe erstmal ein script geschrieben was die pws in der datei pwfile.txt überprüft und dann eine Session setzt und einen link freigibt. So PWgenerator mach ich etwas stäter.

pwmailform.php:
PHP:
<?php 
session_start();
?>

<?
echo"<form action='$SELF_PHP' method='POST'><input type='text' name='pw'><input type='submit' value='LOGIN'></form>";

if($_POST['pw'] != ""){
$a = $_POST['pw']; 

//file() liest jede zeile in das array $ar ein 
$ar = file("pwfile.txt"); 

for($i=0; $i<count($ar); $i++) 
{ 
if (ereg($a, $ar[$i])) 
{ 
$_SESSION['PW'] = $_POST['pw'];
echo"<a href='downladareal.php'>Zum Downloadbereich!</a>";
}else{$sicher2 = "no";}
}
}
?>
 
Ja genau an sowas hab ich gedacht. :)
t soweit super. Danke

Habe noch eine frage zum anderen Script. Verwende das gleich an diversen stellen.
Das Loginformular wird über ein wraper von CMS eingebunden und funktioniert soweit.
Wenn ich auf Login klicke, muss die weitergeleitete Seite ebenfalls im wraper erscheinen.
Wäre das mit einem Code in dem script, dass das Passwort prüft möglich?
 
SO JETZT IST ES RICHTIG!

pwmailform.php:

PHP:
<?php
session_start();
echo"<form action='$SELF_PHP' method='POST'><input type='text' name='pw'><input type='submit' value='LOGIN'></form>";
if($_POST[pw] != ""){
$pw = $_POST[pw];


$handle = fopen ("pwfile.txt", "r");

while ( $inhalt = fgets ($handle, 4096 ))
{
  $inhalt = trim ( $inhalt );
  if ( trim ($inhalt) == $pw)
  {
    echo "Sie haben dass richtige pw eingegeben, <a href='downladareal.php'>IN DEN DOWNLOADBEREICH.</a>";
	$rich = "ja";
    $_SESSION['PW'] = $handle;
	exit;
  }else{$falsch = "ja";}
}
if($rich != "ja" && $falsch == "ja"){echo "Sie haben ein Falsches pw eingegeben!";}
fclose($handle);}
?>
 
So und jetzt der GENERATOR.
Wen du das script lokal testest z.B mit xampp,
wirst du wahrscheinlich eine Fehlermeldung bekommen
(Failed to connect to mailserver …) aber es ist nicht schlimm
auf deinem Server müsste es laufen.

pwgenerator.php:
PHP:
Sie wollen in den Downloadbereich?<br>
Hier PW anfordern, wird per Mail verschickt.<br><br>
<?php
echo"<form action='$SELF_PHP' method='POST'>Ihre Mail:<input type='text' name='mail'><input type='submit' name='Go'></form>";


$mail_absender = "DEINEmail@server.de";//DEINE Mail
$home = "deindomian.de"; //Deine Homepag
$betreff = "Dein Betreff"; //Dein Betreff


$generate = date("dmYHis").microtime();
$generate = str_replace ("." ,"",$generate);
$generate = str_replace (" " ,"",$generate);
if($_POST['mail'] != ""){
$mail = $_POST['mail'];
// Die Nachricht
$nachricht = "
Wenn Sie kein Passwort auf der Homepage $home angefragt \n
haben entschuldigen wir uns fur die Storung. \n
Ansonsten konnen sie unter diesem Link <a href='deindomian.de/verzeichnis/ pwmailform.php'> deindomian.de/verzeichnis/ pwmailform.php</a> \n
das Passwort $generate eintragen und sie bekommen 15 min zum download bereich.\n
\n\n
Ihr $home Team.\n \n \n 
Link: <a href='deindomian.de/verzeichnis/ pwmailform.php'> deindomian.de/verzeichnis/ pwmailform.php</a> \n
Passwort: $generate
";

// Falls eine Zeile der Nachricht mehr als 70 Zeichen enthalten konnte,
// sollte wordwrap() benutzt werden
$nachricht = wordwrap($nachricht, 70);

// Send
mail($mail, $betreff, $nachricht, "from:$mail_absender");
$datei = fopen("pwfile.txt","a"); 
fwrite($datei, "$generate\r\n"); 
fclose($datei);
}
?>
 
Es garantiert mir niemand dass der User die Zeit an einem Stück benutzt!
Und der Code ist nur ein Beispiel wie man es machen könnte!
Ich bin einverstanden dass es nicht die beste Lösung ist aber ich persönlich hätte das ganze
Auch mit einer Db gemacht.

So könnte man gleich wen der User auf die download Page kommt das Pw aus der txt Datei löschen, im ein Cookie setzen (der von alleine abläuft) und auf der Page immer den Cookie überprüfen.

Anders ist es mit eine txt Datei zu umständlich zu machen.

Ach ja und das Verzeichnis mit htaccess schützen.
Damit niemand auf es zureifen kann.
 
Sry, wenn dir aufn Schlips getreten bin ROXON, ich wollte nur mögliche Problematiken aufzählen...
Wenn er sich für die Lösung mit der *.txt-File entscheidet, ok^^
Da helfen wir bei Problem genauso mit bestem Wissen und Gewisen, als wenn er doch ne SQL nehmen würde... ;)

Ich persönlich würde auch zur DatenBank raten, da es wesentlich schneller und flexibler ist...
Les dir zumindestens mal nen Tutorial dazu durch, dann wrist du sehen, dass es garnicht schwer ist und fast unendliche Möglichkeiten bietet ;)
 
Zurück