hallöchen... i habe da nen kleines problem... und zwar habe ich auf meiner vereinsseite ein kleines geburtstagsscript eingefügt... des problem besteht darin, dass alle, die vor 1969 geboren sind, als geburtsagskinder angezeigt werden und alle 37 jahre alt sind... wo liegt der fehler im code?
hier der code:
<?
setlocale(LC_ALL, "deu_deu");
$geburtstagskinder = verarbeite_geburtstagsdatei("geburtstage.txt", 7, 14);
if ($geburtstagskinder)
{
for ($f=0; $f<count($geburtstagskinder); $f++)
{
$val = $geburtstagskinder[$f];
echo "Wir " . "gratulieren " . $val["name"] . " zum " . "<strong>" . $val["age"] . "</strong>" . " Geburtstag! " . "<br>";
}
}
else
echo "Heute hat niemand Geburtstag!" . "<br>";
function verarbeite_geburtstagsdatei($datei, $zeitraum_vor, $zeitraum_danach)
{
$counter = 0;
$geburtstage = file($datei);
foreach ($geburtstage as $key => $data)
{
$vals = explode(":", $data);
if (count($vals)>1)
{
$name = $vals[0];
$bday = string2stamp($vals[1]);
$date_start = mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)) - $zeitraum_vor * (1 * 60 * 60);
$date_end = mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)) + $zeitraum_danach * (1 * 60 * 60);
if (($bday > $date_start) && ($bday < $date_end))
{
$age = date("Y") - date("Y", mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)));
$datum = strftime("%#d. %B", $bday);
$geburtstagskinder[$counter]["name"] = $name;
$geburtstagskinder[$counter]["age"] = $age;
$geburtstagskinder[$counter]["datum"] = $datum;
$geburtstagskinder[$counter]["tstamp"] = mktime(0, 0, 0, date("m", $bday), date("d", $bday));
$counter++;
}
}
}
$geburtstagskinder = sort_array($geburtstagskinder, "tstamp");
return $geburtstagskinder;
}
function string2stamp($string)
{
$date = explode(".", $string);
return mktime(0, 0, 0, $date[1], $date[2], $date[0]);
}
function sort_array($array, $sortby, $order=1)
{
$arr = &$array;
$count = 0;
for ($f=0; $f<count($arr); $f++)
{
$sort[$count] = $arr[$f][$sortby];
$count = $count + 1;
}
if ($order==1) @asort($sort);
if ($order==-1) @arsort($sort);
@reset($sort);
$count = 0;
while (list($key, $val)=@each($sort))
{
$new_arr[$count] = $arr[$key];
$count = $count + 1;
}
return $new_arr;
}
?>
hier der code:
<?
setlocale(LC_ALL, "deu_deu");
$geburtstagskinder = verarbeite_geburtstagsdatei("geburtstage.txt", 7, 14);
if ($geburtstagskinder)
{
for ($f=0; $f<count($geburtstagskinder); $f++)
{
$val = $geburtstagskinder[$f];
echo "Wir " . "gratulieren " . $val["name"] . " zum " . "<strong>" . $val["age"] . "</strong>" . " Geburtstag! " . "<br>";
}
}
else
echo "Heute hat niemand Geburtstag!" . "<br>";
function verarbeite_geburtstagsdatei($datei, $zeitraum_vor, $zeitraum_danach)
{
$counter = 0;
$geburtstage = file($datei);
foreach ($geburtstage as $key => $data)
{
$vals = explode(":", $data);
if (count($vals)>1)
{
$name = $vals[0];
$bday = string2stamp($vals[1]);
$date_start = mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)) - $zeitraum_vor * (1 * 60 * 60);
$date_end = mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)) + $zeitraum_danach * (1 * 60 * 60);
if (($bday > $date_start) && ($bday < $date_end))
{
$age = date("Y") - date("Y", mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)));
$datum = strftime("%#d. %B", $bday);
$geburtstagskinder[$counter]["name"] = $name;
$geburtstagskinder[$counter]["age"] = $age;
$geburtstagskinder[$counter]["datum"] = $datum;
$geburtstagskinder[$counter]["tstamp"] = mktime(0, 0, 0, date("m", $bday), date("d", $bday));
$counter++;
}
}
}
$geburtstagskinder = sort_array($geburtstagskinder, "tstamp");
return $geburtstagskinder;
}
function string2stamp($string)
{
$date = explode(".", $string);
return mktime(0, 0, 0, $date[1], $date[2], $date[0]);
}
function sort_array($array, $sortby, $order=1)
{
$arr = &$array;
$count = 0;
for ($f=0; $f<count($arr); $f++)
{
$sort[$count] = $arr[$f][$sortby];
$count = $count + 1;
}
if ($order==1) @asort($sort);
if ($order==-1) @arsort($sort);
@reset($sort);
$count = 0;
while (list($key, $val)=@each($sort))
{
$new_arr[$count] = $arr[$key];
$count = $count + 1;
}
return $new_arr;
}
?>
Kommentar