Altersprüfung

Alles, was PHP betrifft, kann hier besprochen werden.

Altersprüfung

Postby breiti0310 » 02. November 2010 16:31

Hey.

ich will in ein bestehendes xt-commerce Shop-System eine Überprüfung des Alters anhand des angegebenen Geburtsdatum einpflegen. Nur leider funktioniert meine Abfrage nicht wirklich. Die vorherige Überprüfung des Datumsformats nimmt er noch nur die Überprüfung des Alters nicht mehr. Komischerweise wenn ich ein Pflichtfeld vergessen zu befüllen springt er in die Prüfung. Jedoch sagt er mir dann egal welches Datum ich angebe das ich nicht alt genug bin, obwohl ich laut Angegebenen Datum alt genug bin.

Code: Select all
//Überprüfung der Namenslänge
if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) {
      $error = true;

      $messageStack->add('create_account', ENTRY_LAST_NAME_ERROR);
   }
//Überprüfung Datumsformat
   if (ACCOUNT_DOB == 'true')
   {
      if (checkdate(substr(xtc_date_raw($dob), 4, 2), substr(xtc_date_raw($dob), 6, 2), substr(xtc_date_raw($dob), 0, 4)) == false) {
         $error = true;

         $messageStack->add('create_account', ENTRY_DATE_OF_BIRTH_ERROR);
      }
   }
   
//Altersüberprüfung
if (ACCOUNT_DOB == 'true')
      {
         $day = substr(xtc_date_raw($dob), 6, 2);
         $month = substr (xtc_date_raw($dob), 4, 2);
         $year = substr(xtc_date_raw($dob), 0, 4);
         $today = getdate();
         $cyear = $today['year'];
         $cmonth = $today['mon'];
         $cday = $today['mday'];
         $fullyears = $cyears - $year;
         
         if ($cmonth < $month || ($cmonth == $month && $cday < $day)) $fullyears--;
         
         if ($fullyears < ENTRY_DOB_MIN_AGE)
         {
            $error = true;
            $entry_date_of_birth_error2 = true;
            $messageStack->add('create_account', ENTRY_DATE_OF_BIRTH_ERROR2);
         }
      }
Aufgrund der Klimaerwährmung und der Wirtschaftskrise wird das Licht am Ende des Tunnels abgeschaltet
breiti0310
 
Posts: 5
Joined: 07. August 2010 10:52

Re: Altersprüfung

Postby Nobbie » 02. November 2010 21:20

Aha.

Dann solltest Du es debuggen.
Nobbie
 
Posts: 7017
Joined: 09. March 2008 13:04

Re: Altersprüfung

Postby breiti0310 » 03. November 2010 11:51

Das Problem mit der Altersprüfung hat sich erledigt. Die Berechnung klappt nun...
Code: Select all
if (ACCOUNT_DOB == 'true')
   {
      if (checkdate  (substr(xtc_date_raw($dob), 4, 2),
                  substr(xtc_date_raw($dob), 6, 2),
                  substr(xtc_date_raw($dob), 0, 4)
                  )
      == false)
      {
         $error = true;
         $messageStack->add('create_account', ENTRY_DATE_OF_BIRTH_ERROR);
      }
   }
   
   // Alterprüfung
   
   $min = ENTRY_DOB_MIN_AGE;
   $birthday = $dob;
   if(strtotime($birthday. ' + '. $min. ' years') >= strtotime(date('Y-m-d')))
      {
           $error = true;
          $entry_date_of_birth_error2 = true;
             $messageStack->add('create_account', ENTRY_DATE_OF_BIRTH_ERROR2);
      }


Nur leider besteht weiterhin das Problem, dass nur in die Prüfung gesprungen wird, wenn ein andere Pflichtfeld nicht befüllt bzw. fehlerhaft befüllt ist.

Hat jemand vielleicht nen Denkanstoß?
Aufgrund der Klimaerwährmung und der Wirtschaftskrise wird das Licht am Ende des Tunnels abgeschaltet
breiti0310
 
Posts: 5
Joined: 07. August 2010 10:52

Re: Altersprüfung

Postby Nobbie » 03. November 2010 23:46

breiti0310 wrote:Hat jemand vielleicht nen Denkanstoß?


Erneut den gleichen wie oben - debuggen.

Du scheinst wirklich zu glauben, dass hier irgendjemand auch nur ansatzweise versteht, was Du hier so schreibst. Dem ist nicht so, hier hat niemand auch nur den blassesten Schimmer, wieso wann was wohin springt. Wir sehen hier nur ein paar nichtssagende Zeilen PHP, daran erkennt kein Mensch, was auf Deinem Rechner so stattfindet.
Nobbie
 
Posts: 7017
Joined: 09. March 2008 13:04


Return to PHP

Who is online

Users browsing this forum: No registered users and 2 guests