Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Template in PHP Datei nutzen?

    Shorty

    • Foren-Troll
    • Viel Schreiber
    • Beiträge: 909
    • Geschlecht:
    Template in PHP Datei nutzen?
    am: 16. Dezember 2018, 02:07:53
    Hallo,ich habe eine .php Datei und dazu habe ich ein template erstellt,mein Problem ist nun das das Template nicht angezeigt wird beim aufruf der .php Datei.
    Dazu habe ich in der .php Datei Folgendes angegeben
    Code: PHP  [Auswählen]
    $smarty->fetch(CURRENT_TEMPLATE.'/module/perso_check.html');
    Was ist Falsch oder vergessen worden damit das Template angezeigt wird muss ich etwas anderes in der .php Datei angeben?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=39816.0

    Shorty

    • Foren-Troll
    • Viel Schreiber
    • Beiträge: 909
    • Geschlecht:
    Re: Template in PHP Datei nutzen?
    Antwort #1 am: 16. Dezember 2018, 08:21:34
    Ich muss einen Fehler in der .php Datei haben,den auch Folgendes wird nicht angezeigt.
    Code: PHP  [Auswählen]
    include ('includes/application_top.php');

    // create smarty elements
    $smarty = new Smarty;

    require (DIR_WS_INCLUDES.'header.php');
    Aber weas könnte da Falsch sein,das die Includes nicht angezeigt werden?

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Template in PHP Datei nutzen?
    Antwort #2 am: 16. Dezember 2018, 14:23:47
    Hallo Shorty,

    teste mal folgendes.

    In die perso_check.php füge folgenden Code ein

    Code: PHP  [Auswählen]
    <?php
    include ('includes/application_top.php');

    $smarty = new Smarty;

    //Pruefnummer ueberpruefen
    function check_number($id, $checknumber) {
     $p = 7;
     $sum = 0;
     for($i=0; $i < strlen($id); $i++) {
     $char = $id{$i};
     
     if($char >= '0' && $char <= '9')
     $int = intval($char);
     else
     $int = ord($char)-55;
     
     $sum += $int*$p;
     
     if($p==1)
     $p=7;
     else if($p==3)
     $p=1;
     else if($p==7)
     $p=3;
     }
       
     $last_number = substr(strval($sum), -1);
     
     return $last_number == $checknumber;
    }
     
    //Gibt die Art (neu vs. alt) des Personalausweis zurück
    function perso_type($id) {
     $splits = explode(" ", strtoupper($id));
     if(strlen($splits[0]) == 11 && strlen($splits[1]) == 7 && strlen($splits[2]) == 7 && strlen($splits[3]) == 1) {
     return 'old';
     } else if(strlen($splits[0]) == 10 && strlen($splits[1]) == 7 && strlen($splits[2]) == 8 && strlen($splits[3]) == 1) {
     return 'new';
     } else {
     return 'unknown';
     }
    }
     
    //Sind die Prüfziffern gültig
    function perso_checksum($id) {
     $splits = explode(" ", strtoupper($id));
     
     $checksums = array();
     $perso_type = perso_type($id);
     
     if($perso_type == 'unknown') {
     return false;
     }
     
     $checksums[] = array(substr($splits[0],0,9), substr($splits[0],9,1));
     $checksums[] = array(substr($splits[1],0,6), substr($splits[1],6,1));
     $checksums[] = array(substr($splits[2],0,6), substr($splits[2],6,1));
     $checksums[] = array(substr($splits[0],0,10).substr($splits[1],0,7).substr($splits[2],0,7), $splits[3]);
     
     
     //Überprüfung der Checksummen
     foreach($checksums as $checksum) {
     if(!check_number($checksum[0], $checksum[1])) {
     return false;
     }
     }
     
       return true;
    }
     
    //Ist der Perso noch gültig?
    function perso_gueltig($id) {
       $splits = explode(" ", $id);
       
       $valid_until = mktime(0,0,0, substr($splits[2], 2, 2) , substr($splits[2], 4, 2) , "20".substr($splits[2], 0, 2));
     
       //Ist der Perso noch gültig
       if(time() > $valid_until)
          return false;
     
       return true;
    }
     
    //Informationen aus dem Perso beziehen
    function perso_info($id) {
       $splits = explode(" ", $id);
     
       //$return: Ein Objekt mit den Daten aus der Ausweisnummer
       $return = new stdClass();
       $return->perso_type = perso_type($id);
       $return->geb = new stdClass();
       $return->geb->tag= $splits[1]{4} . $splits[1]{5}; //Geburtstag
       $return->geb->monat = $splits[1]{2} . $splits[1]{3}; //Geburtsmonat
       $return->geb->jahr = $splits[1]{0} . $splits[1]{1}; //Geburtsjahr
       if($return->geb->jahr > intval(date("y"))) {
     $return->geb->jahr = "19".$return->geb->jahr;
       } else {
     $return->geb->jahr = "20".$return->geb->jahr;
       }
     
     
       $alter = date("Y") - $return->geb->jahr;
     
       //Hatte er schon Geburtstag?
     if( (date("n") < $return->geb->monat) OR (date("n") == $return->geb->monat AND date("j") < $return->geb->tag) ) {
     $alter--;
     }
     
       $return->alter = $alter;
     
       if($alter >= 18) {
          $return->volljaehrig = true;
       } else {
          $return->volljaehrig = false;
       }
       
       $return->ablauf = new stdClass();
       $return->ablauf->tag = $splits[2]{4} . $splits[2]{5}; //Ausweis Ablauf Tag
       $return->ablauf->monat = $splits[2]{2} . $splits[2]{3}; //Ausweis Ablauf Monat
       $return->ablauf->jahr = "20".$splits[2]{0} . $splits[2]{1}; //Ausweis Ablauf Jahr
     
       if($return->perso_type == 'old') {
     $return->herkunft = $splits[0]{10};
       } else {
            $return->herkunft = $splits[2]{7};
       }
       //Ein Deutscher?
       if(strtolower($return->herkunft) == "d") {
          $return->deutscher = true;
       } else {
          $return->deutscher = false;
       }
       //Behördenkennzahl als Nummer
       $return->behoerdenkennzahl = substr($splits[0], 0, 4);
     
     
       return $return;
    }
     
     
     
    //Beispiel zur Verwendung
    if(isset($_GET['check'])) {
       $perso_id = $_POST['ida']." ".$_POST['idb']." ".$_POST['idc']." ".$_POST['idd'];
       //Oder:
       //$perso_id = "1234567891D 2345678 9012345 6"
     
       if(perso_checksum($perso_id)) {
       
          $smarty->assign('KORREKT', "Personalausweisnummer korrekt!");
     
       if(!perso_gueltig($perso_id)) {
       
          $smarty->assign('ABGELAUFEN', "<br><br><b>Perso ist abgelaufen!</b>");
       }

          $data = perso_info($perso_id);
          $smarty->assign('DATEN', $data);
     
          //Zugriff z.B. so:
          //Alter: $data->alter;
          //Geburtsmonat: $data->geb->monat;
          //Ablauftag: $data->ablauf->tag;
       } else {

          $smarty->assign('FALSCH', "Personalausweisnummer falsch!<br><br>");
       }
    }


    $smarty->display(CURRENT_TEMPLATE.'/module/perso_check.html');
     

    und in die templates/dein_template/module/perso_check.html füge folgenden Code ein.

    Code: XML  [Auswählen]
    <!DOCTYPE html>
    <html lang="de">
      <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Personalausweis überprüfen</title>
      </head>
      <body>
        <img style="max-width: 1000px; width: 100%; height: auto;" src="https://www.php-einfach.de/wp-content/uploads/2015/10/Personalausweis-nummer.png" alt="personalausweis-nummer">
        <br><hr><br>
        {$FALSCH}{$KORREKT}{$ABGELAUFEN}{if $DATEN}<br><br> Daten der Ausweisnummer: <pre>{$DATEN|print_r}</pre>{/if}
        <br><hr><br>  
        <div>      
          <!-- Kleines Anwendungsbeispiel -->
          Neuer Personalausweis:<br><br>
          <form action="?check=1" method="post" >
            IDD &lt;&lt; <input type="text" size="10" maxlength="10" name="ida">&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<br>
            <input type="text" size="7" maxlength="7" name="idb"> &lt; <input type="text" size="8" maxlength="8" name="idc">&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<input type="text" size="1" maxlength="1" name="idd"> <br>
            <input type="submit" value="überprüfen">
          </form>      
          <br><hr><br>      
          Alter Personalausweis:<br><br>
          <form action="?check=1" method="post" >
            <input type="text" size="11" maxlength="11" name="ida">&lt;&lt;
            <input type="text" size="7" maxlength="7" name="idb">&lt;
            <input type="text" size="7" maxlength="7" name="idc">&lt;&lt;&lt;&lt;&lt;
            <input type="text" size="1" maxlength="1" name="idd"> <br>
            <input type="submit" value="überprüfen">
          </form>            
        </div>    
      </body>
    </html>
     

    So sollte das Ergebnis aussehen:
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Quelle des obigen Codes -> https://www.php-einfach.de/diverses/personalausweis-ueberpruefen/

    Gruss
    Hanspeter

    Shorty

    • Foren-Troll
    • Viel Schreiber
    • Beiträge: 909
    • Geschlecht:
    Re: Template in PHP Datei nutzen?
    Antwort #3 am: 16. Dezember 2018, 15:02:26
    Danke aber so meinte ich das nicht,sondern so das das Design des Shops mit übernommen wird mit Header Boxen usw.
    Ich hatte es mal hin bekommen,dann gab es ein Problem mit dem PHP Code von mir,aber ich habe den fehler nicht gefunden.
    *EDIT*Ich bekomme es nicht hin das dieser Code angezeigt wird?$smarty->display(CURRENT_TEMPLATE.'/module/perso_check.html');

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Template in PHP Datei nutzen?
    Antwort #4 am: 16. Dezember 2018, 15:37:34
    Dann nimm folgenden Code.

    In die perso_check.php füge folgenden Code ein

    Code: PHP  [Auswählen]
    <?php
    include ('includes/application_top.php');

    $breadcrumb->add('Personalausweis überprüfen', xtc_href_link(perso_check.php));

    $smarty = new Smarty;

    // include boxes
    require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');
    include (DIR_WS_MODULES.'default.php');
    require (DIR_WS_INCLUDES.'header.php'); //web28 - 2013-01-04 - load header.php after default.php because of error handling status code
    $smarty->assign('language', $_SESSION['language']);



    //Pruefnummer ueberpruefen
    function check_number($id, $checknumber) {
     $p = 7;
     $sum = 0;
     for($i=0; $i < strlen($id); $i++) {
     $char = $id{$i};
     
     if($char >= '0' && $char <= '9')
     $int = intval($char);
     else
     $int = ord($char)-55;
     
     $sum += $int*$p;
     
     if($p==1)
     $p=7;
     else if($p==3)
     $p=1;
     else if($p==7)
     $p=3;
     }
       
     $last_number = substr(strval($sum), -1);
     
     return $last_number == $checknumber;
    }
     
    //Gibt die Art (neu vs. alt) des Personalausweis zurück
    function perso_type($id) {
     $splits = explode(" ", strtoupper($id));
     if(strlen($splits[0]) == 11 && strlen($splits[1]) == 7 && strlen($splits[2]) == 7 && strlen($splits[3]) == 1) {
     return 'old';
     } else if(strlen($splits[0]) == 10 && strlen($splits[1]) == 7 && strlen($splits[2]) == 8 && strlen($splits[3]) == 1) {
     return 'new';
     } else {
     return 'unknown';
     }
    }
     
    //Sind die Prüfziffern gültig
    function perso_checksum($id) {
     $splits = explode(" ", strtoupper($id));
     
     $checksums = array();
     $perso_type = perso_type($id);
     
     if($perso_type == 'unknown') {
     return false;
     }
     
     $checksums[] = array(substr($splits[0],0,9), substr($splits[0],9,1));
     $checksums[] = array(substr($splits[1],0,6), substr($splits[1],6,1));
     $checksums[] = array(substr($splits[2],0,6), substr($splits[2],6,1));
     $checksums[] = array(substr($splits[0],0,10).substr($splits[1],0,7).substr($splits[2],0,7), $splits[3]);
     
     
     //Überprüfung der Checksummen
     foreach($checksums as $checksum) {
     if(!check_number($checksum[0], $checksum[1])) {
     return false;
     }
     }
     
       return true;
    }
     
    //Ist der Perso noch gültig?
    function perso_gueltig($id) {
       $splits = explode(" ", $id);
       
       $valid_until = mktime(0,0,0, substr($splits[2], 2, 2) , substr($splits[2], 4, 2) , "20".substr($splits[2], 0, 2));
     
       //Ist der Perso noch gültig
       if(time() > $valid_until)
          return false;
     
       return true;
    }
     
    //Informationen aus dem Perso beziehen
    function perso_info($id) {
       $splits = explode(" ", $id);
     
       //$return: Ein Objekt mit den Daten aus der Ausweisnummer
       $return = new stdClass();
       $return->perso_type = perso_type($id);
       $return->geb = new stdClass();
       $return->geb->tag= $splits[1]{4} . $splits[1]{5}; //Geburtstag
       $return->geb->monat = $splits[1]{2} . $splits[1]{3}; //Geburtsmonat
       $return->geb->jahr = $splits[1]{0} . $splits[1]{1}; //Geburtsjahr
       if($return->geb->jahr > intval(date("y"))) {
     $return->geb->jahr = "19".$return->geb->jahr;
       } else {
     $return->geb->jahr = "20".$return->geb->jahr;
       }
     
     
       $alter = date("Y") - $return->geb->jahr;
     
       //Hatte er schon Geburtstag?
     if( (date("n") < $return->geb->monat) OR (date("n") == $return->geb->monat AND date("j") < $return->geb->tag) ) {
     $alter--;
     }
     
       $return->alter = $alter;
     
       if($alter >= 18) {
          $return->volljaehrig = true;
       } else {
          $return->volljaehrig = false;
       }
       
       $return->ablauf = new stdClass();
       $return->ablauf->tag = $splits[2]{4} . $splits[2]{5}; //Ausweis Ablauf Tag
       $return->ablauf->monat = $splits[2]{2} . $splits[2]{3}; //Ausweis Ablauf Monat
       $return->ablauf->jahr = "20".$splits[2]{0} . $splits[2]{1}; //Ausweis Ablauf Jahr
     
       if($return->perso_type == 'old') {
     $return->herkunft = $splits[0]{10};
       } else {
            $return->herkunft = $splits[2]{7};
       }
       //Ein Deutscher?
       if(strtolower($return->herkunft) == "d") {
          $return->deutscher = true;
       } else {
          $return->deutscher = false;
       }
       //Behördenkennzahl als Nummer
       $return->behoerdenkennzahl = substr($splits[0], 0, 4);
     
     
       return $return;
    }
     
     
     
    //Beispiel zur Verwendung
    if(isset($_GET['check'])) {
       $perso_id = $_POST['ida']." ".$_POST['idb']." ".$_POST['idc']." ".$_POST['idd'];
       //Oder:
       //$perso_id = "1234567891D 2345678 9012345 6"
     
       if(perso_checksum($perso_id)) {
       
          $smarty->assign('KORREKT', "Personalausweisnummer korrekt!");
     
       if(!perso_gueltig($perso_id)) {
       
          $smarty->assign('ABGELAUFEN', "<br><br><b>Perso ist abgelaufen!</b>");
       }

          $data = perso_info($perso_id);
          $smarty->assign('DATEN', $data);
     
          //Zugriff z.B. so:
          //Alter: $data->alter;
          //Geburtsmonat: $data->geb->monat;
          //Ablauftag: $data->ablauf->tag;
       } else {

          $smarty->assign('FALSCH', "Personalausweisnummer falsch!<br><br>");
       }
    }


    $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/perso_check.html');
    $smarty->assign('main_content', $main_content);


    $smarty->caching = 0;
    if (!defined('RM'))
            $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE.'/index.html');

    include ('includes/application_bottom.php');  
     

    und in die templates/dein_template/module/perso_check.html füge folgenden Code ein.

    Code: XML  [Auswählen]
    <img style="max-width: 1000px; width: 100%; height: auto;" src="https://www.php-einfach.de/wp-content/uploads/2015/10/Personalausweis-nummer.png" alt="personalausweis-nummer">
    <br><hr><br>
    {$FALSCH}{$KORREKT}{$ABGELAUFEN}{if $DATEN}<br><br> Daten der Ausweisnummer: <pre>{$DATEN|print_r}</pre>{/if}
    <br><hr><br>  
    <div>      
      <!-- Kleines Anwendungsbeispiel -->
      Neuer Personalausweis:<br><br>
      <form action="?check=1" method="post" >
        IDD &lt;&lt; <input style="width: initial;" type="text" size="10" maxlength="10" name="ida">&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<br>
        <input style="width: initial;" type="text" size="7" maxlength="7" name="idb"> &lt; <input style="width: initial;" type="text" size="8" maxlength="8" name="idc">&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<input style="width: initial;" type="text" size="1" maxlength="1" name="idd"> <br>
        <input type="submit" value="überprüfen">
      </form>      
      <br><hr><br>      
      Alter Personalausweis:<br><br>
      <form action="?check=1" method="post" >
        <input style="width: initial;" type="text" size="11" maxlength="11" name="ida">&lt;&lt;
        <input style="width: initial;" type="text" size="7" maxlength="7" name="idb">&lt;
        <input style="width: initial;" type="text" size="7" maxlength="7" name="idc">&lt;&lt;&lt;&lt;&lt;
        <input style="width: initial;" type="text" size="1" maxlength="1" name="idd"> <br>
        <input type="submit" value="überprüfen">
      </form>            
    </div>
     

    So sollte das Ergebnis aussehen:
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Gruss
    Hanspeter

    Shorty

    • Foren-Troll
    • Viel Schreiber
    • Beiträge: 909
    • Geschlecht:
    Re: Template in PHP Datei nutzen?
    Antwort #5 am: 16. Dezember 2018, 15:56:57
    *EDIT*
    Vielen dank für deine Hilfe habe es hin bekommen.
    Managed Server
    3 Antworten
    3357 Aufrufe
    13. Oktober 2012, 10:45:52 von jannemann
    1 Antworten
    1930 Aufrufe
    27. September 2015, 15:05:07 von hbauer
    8 Antworten
    2425 Aufrufe
    04. August 2021, 11:04:12 von rakna