Mailinglisten-Archive |
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