So, jetzt bin ich fast fertig, aber ich habe noch so einige Probleme:
1. Wie kann ich prüfen ob ein Name von vorhanden ist und man was anderes eingeben muss? Wollte die Textdatei auslesen, aber das hat bei mir nicht geklappt...
2. Wie kann ich prüfen, wer welche Zahl getippt hat und dann die Gewinner auflisten?
Hier der Code für die Loseingabe:
und hier ist der Code, was ich bis jetzt bei der Ziehung "verbrochen" habe:
hoff ihr könnt mir da weiterhelfen - versuch das heut schon ganzen tag hin zu bekommen
Hier gibts das ganze als Zip-File
1. Wie kann ich prüfen ob ein Name von vorhanden ist und man was anderes eingeben muss? Wollte die Textdatei auslesen, aber das hat bei mir nicht geklappt...
2. Wie kann ich prüfen, wer welche Zahl getippt hat und dann die Gewinner auflisten?
Hier der Code für die Loseingabe:
PHP:
<?
$name = $_POST['name'];
$zahl = $_POST['zahl'];
$pattern = '/[^a-zA-Z0-9\s\']/';
$zpattern = '/[^0-9]/';
$tipps = file_get_contents("tipps.txt");
$personen = explode(": && @", $tipps);
$suchname = array_search($name,$personen);
if(isset($_POST['name'])){
if(strlen($name)<3 || strlen($name)>20){$error['name']=1;}
if(preg_match($pattern, $name) ){$error['name']=1;}
#if($personen !== false){$error['name']=1;}
if($zahl<1 || $zahl>10){$error['zahl']=1;}
if( preg_match($zpattern, $zahl) ){$error['zahl']=1;}
$captchas = file_get_contents("captchas.txt");
$captchas = explode("\r\n",$captchas);
$captcha_ok=0;
foreach($captchas as $captcha){
$captcha = explode("|",$captcha);
if($captcha[0]==$_POST['captcha_id'] && $captcha[1]==$_POST['captcha']){
$captcha_ok=1;
}
}
if($captcha_ok==1){
}else{
$error['captcha']=1;
}
}
if(!isset($_POST['name']) || isset($error)){
?>
<form action="index.php?page=los" method="post">
<table>
<tr>
<td>Name:</td>
<td><input name="name" type="text" value="<? echo $_POST['name'];?>" /> <? if($error['name']==1){ echo "min 3 und max 20 Zeichen"; }?></td></tr>
<tr>
<td>Zahl:</td>
<td><input name="zahl" type="text" value="<? echo $_POST['zahl'];?>" />
<? if($error['zahl']==1){ echo "Tippe eine Zahl zwischen 1 und 10!"; }?></td></tr>
<tr><td></td>
<td>
<?php $captcha_id = rand(1,100000); ?>
<input type="hidden" name="captcha_id" value="<?php echo $captcha_id;?>" />
<img src="captcha.php?captcha_id=<?php echo $captcha_id;?>" />
</td></tr>
<tr>
<td>Captcha:</td>
<td><input name="captcha" type="text" /><? if($error['captcha']==1){ echo " Versuch's noch mal..."; }?></td>
</tr>
<tr>
<td></td>
<td><input value="eintragen" type="submit" /></td>
</form>
<?
} else { ?>
<b>Vielen Dank für deinene Teilnahme <? echo $_POST['name'];?>!</b><br>
<b>Dein Tipp lautet auf die Zahl <? echo $_POST['zahl'];?> wurde gespeichert.</b>
<?
$tipp = Array("$name:$zahl",);
$handle = fopen("tipps.txt","a");
foreach($tipp as $line) {
fputs($handle,$line."\n");
}
fclose($handle);
?>
<? }
?>
und hier ist der Code, was ich bis jetzt bei der Ziehung "verbrochen" habe:
PHP:
<?php
mt_srand((double)microtime()*1000000);
$number = mt_rand(0,10);
$fname = 'tipps.txt';
function file_parse($fname)
{
$fhandle = fopen($fname, 'r');
$contents = fread($fhandle, filesize($fname));
fclose($fhandle);
$prep = str_replace("\r\n", "\n", $contents);
$prep = str_replace("\r", "\n", $prep);
$lines = explode("\n", $prep);
$people = array();
foreach($lines as $line)
{
$exp = explode(':', $line);
$num = $exp[0];
$name = $exp[1];
if(!isset($people[$num]))
$people[$num] = array();
$people[$num][] = $name;
}
return $people;
}
$people = file_parse($fname);
$winners = $people[$number];
echo "<h3>Die Gewinner sind:</h3>\n";
foreach($winners as $winner)
{
echo "<b>".$winner."</b>"."<br>\n";
}
}
$date = date("F j, Y - H:i:s");
$fnamewinner = 'gewinner.txt';
if ($winner !== null) {
$fc = "Gewinner: ".$winner."<br />\n"."Glückszahl war: ".$number."<br />\n"."Ziehung am: ".$date."<br /><br />\n";
$filehandle = fopen($fnamewinner,"a");
fputs($filehandle,$fc."\n");
fclose($filehandle);
}
?>
hoff ihr könnt mir da weiterhelfen - versuch das heut schon ganzen tag hin zu bekommen
Hier gibts das ganze als Zip-File
Zuletzt bearbeitet: