phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?Problem_mit_Passwortabfrage_/_Vergleich_Array_mi t_Variable?= =?iso-8859-1?Q?_=FCber_eine_Schleife?=

[php] Problem mit Passwortabfrage / Vergleich Array mi t Variable über eine Schleife

Till Schrader php_(at)_phpcenter.de
Wed, 9 Jan 2002 19:06:51 +0100


Nochmal mit aussagekräftigerem Subjekt:

Hallo Leute,

habe ein großes Problem,
ich hab eine Passwortgeschützte Umfrage gestartet,
nur leider läßt sich der Schutz ohne Probleme umgehen.

Das Problem ist, wenn kein Passwort eingetragen wird,
lehnt er eine Eintragung ab, wenn irgendwas eingetragen wird,
gehts aber, ohne das der Vergleich mit der Datei $titel.pwd geklappt haben
kann...

Ach ja, die Passwort-Datei enthält alle Passwörter, getrennt durch ein µ.
Diese Passwörter wurden an die Newsletterempfänger, die an dem Voting
teilnehmen dürfen
verschickt...

Also wenn ihr mir helfen könntet,
es ist sehr dringend, da einige schon diese "Lücke" nach gutdünken
ausnutzen!


Hier das Script in erweiterter Dokumentation:

//Wenn noch keine Daten übermittel wurden:
if(!isset($submit)){ ?>
<b>Trefft eure Auswahl!</b><br><form action="<? $PHP_SELF; ?>"
method="post"><table><tr><td>
<?
//Auswahldatei wird aufgerufen!
$titelfile = "data/admin/$titel.dat";
$artitel =file($titelfile);
$artitel[3]=explode("µ",$artitel[3]);

// Passwortabfrage für den Fall "alle" umgehen
$logok = (int)$artitel[2];
//Auswahlformular
for($i=0;$i<$artitel[1];$i++){
echo '<input type="Radio" name="uservote" value="'.$i.'">
'.$artitel[3][$i]."<br>";}
//Übermittlung des Titels
echo '<input type="hidden" name="titel" value="'.$titel.'">';
//Übermittlung der Art der Umfrage
echo '<input type="hidden" name="logok" value="'.$logok.'">';
//Passwortabfrage
if ($logok == 1){ echo '<br>Bitte Passwort eingeben:';
echo ' <input type="Text" name="pwd" value="" size="6" maxlength="8"><br>';
}

// Testausgabe
//print_r($artitel);

?></td></tr></table><br><a href="allvotes.php">zurück</a> <input
type="Submit" name="submit" value="Abstimmen"></form></center>
<?
}
else {
	//wichtig, Datei mit Möglichkeiten auslesen
	$filename = "data/admin/$titel.dat";
	$artitel = file($filename);

	if((int)$logok == 1) {
		//Daten auslesen
		$pwdfile = "data/admin/$titel.pwd";
		$dateiarray = file($pwdfile);
                        //Standardwerte für $i und $lokok1 setzen
		$i=0;$logok1=0;
		$dateiarray = explode("µ",$dateiarray[0]);
		$anzahl = count($dateiarray);
		//Passwort überprüfen (Die Fehlerschleife?!?)
		while($i<$anzahl && $logok1!=1){
			if($pwd === $dateiarray[$i]){
                                    $nummer = $i;
                                    $logok1=1;
                                    echo $i;
                                    }
			$i++;}
		//Logok =1 schalten, falls $logok1 =0 oder kein Passwort eingegeben!
		if(($logok1!=1) && ($pwd=="")){
			echo "Passwort falsch, bitte versuche es noch einmal!<br>
			<a href=\"uservote.php?titel=$titel\">zurück</a>";
			$logok=1;}
                        // Für $logok1=1 wird $logok = 0 gesetzt und die
Eintragung wird damit ernöglicht!
		else {
                                    //Löscht das eingegebene Passwort aus
der Liste und speichert
                                    //die modifizierte Passwortdatei ab!
			unset($dateiarray[$nummer]);
			array_pop($dateiarray);
			$file = fopen($pwdfile,"w");
			for($i=0;$i<count($dateiarray);$i++){
			fputs($file,$dateiarray[$i]."µ");}
			fclose($file);
			$logok=0;

			}}


	if((int)$logok == 0) {
		echo "Vielen Dank für Deine Stimmabgabe!<br>
		<a href=\"allvotes.php\">zurück</a> | <a
href=\"ergebnis.php?titel=$titel\">zum vorläufigen Stand</a>";
                        //Modifikation der Datei $titel.dat, aktualisierung
des Votes
		$artitel[4] = explode("µ",$artitel[4]);
		$artitel[4][$uservote]++;
		$artitel[4] = implode("µ",$artitel[4]);
                        //Abspeichern des aktualisierten Arrays
		$file = fopen($filename,"w");
		for($i=0;$i<count($artitel);$i++){
			fputs($file,$artitel[$i]);
		}
		fclose($file);
	}

}
?>


Gruß,

Euer Till Schrader
--
** http://www.php-center.de **
Die PHP-Liste: mailto: php_(at)_phpcenter.de
http://lists.phpcenter.de/mailman/listinfo/php


php::bar PHP Wiki   -   Listenarchive