phpbar.de logo

Mailinglisten-Archive

[php] Frage zur Umfrage

[php] Frage zur Umfrage

Till Schrader php_(at)_phpcenter.de
Wed, 9 Jan 2002 18:09:54 +0100


Hallo Leute,

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

Also erstmal das Script:

<? if(!isset($submit)){ ?>
<b>Trefft eure Auswahl!</b><br><form action="<? $PHP_SELF; ?>"
method="post"><table><tr><td>
<?
$titelfile = "data/admin/$titel.dat";
$artitel =file($titelfile);
$artitel[3]=explode("µ",$artitel[3]);
// Passwortabfrage für den Fall "alle" umgehen
$logok = (int)$artitel[2];

for($i=0;$i<$artitel[1];$i++){
echo '<input type="Radio" name="uservote" value="'.$i.'">
'.$artitel[3][$i]."<br>";}
echo '<input type="hidden" name="titel" value="'.$titel.'">';
echo '<input type="hidden" name="logok" value="'.$logok.'">';
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
	$filename = "data/admin/$titel.dat";
	$artitel = file($filename);

	if((int)$logok == 1) {
		//Daten auslesen
		$pwdfile = "data/admin/$titel.pwd";
		$dateiarray = file($pwdfile);
		$i=0;$logok1=0;
		$dateiarray = explode("µ",$dateiarray[0]);
		$anzahl = count($dateiarray);
		//Passwort überprüfen
		while($i<($anzahl-1) && $logok1!=1){
			if($pwd == $dateiarray[$i]){
				$logok1=1;
				$nummer = $i;}
			$i++;}

		if(($logok1==0) && ($pwd=="")){
			echo "Passwort falsch, bitte versuche es noch einmal!<br>
			<a href=\"uservote.php?titel=$titel\">zurück</a>";
			$logok=1;}
		else {
			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>";

		$artitel[4] = explode("µ",$artitel[4]);
		$artitel[4][$uservote]++;
		$artitel[4] = implode("µ",$artitel[4]);

		$file = fopen($filename,"w");
		for($i=0;$i<count($artitel);$i++){
			fputs($file,$artitel[$i]);
		}
		fclose($file);
	}

}
?>

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

Deshalb meine Vermutung, dass da irgendetwas im Argen liegt!

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!



Gruß,

Euer Till Schrader


php::bar PHP Wiki   -   Listenarchive