Perso Check Script erweitern?

Shorty1968

Erfahrenes Mitglied
Hallo,
ich möchte in meinem Shop für einen Ab 18 Jahren bereich,ein Script einstezen welches ich über Google gefunden habe Personalausweis überprüfen – PHP lernen , ich möchte das man bei einem Erfolgreicher Überprüfung in eine andere Gruppe verschoben wird und der Admin des Shops eine Mail bekommt das sich ein Kunde erfolgreich Freigeschaltet hat mit angaben sprich Name des kunden.

Aber das übersteigt völlig meine Fähigkeiten und ich hoffe das wir da zusammen etwas machen können?
 
Lösung
So. Es ist geschafft.
Nur wäre es schön wenn einer von den Php Profis da nochmal rüber kuckt wegen Sql injection und was da noch gibt.

Erstens muss die Datei

shoproot/templates/tpl_modified/module/product_info/product_info_v1.html
PHP:
         <a href="../perso_check.php" target="popup" onclick="window.open(' ','popup','scrollbars=yes, width=800, height=700')">Perso Check (PopUp)</a>
in dieses
PHP:
    <a href="{'perso_check.php'|xtc_href_link}" target="popup" onclick="window.open(' ','popup','scrollbars=yes, width=800, height=700')">Perso Check (PopUp)</a>
geändert werden.

Dann sieht das Haupt Script jetzt so aus
PHP:
<?php
include ('includes/application_top.php');
/*
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
*/...
@C30
Danke aber das ist doch wider mit Kosten verbunden,ein eigenes Script was das macht was ich möchte wäre mir lieber aber ich möchte auch nichts erzwingen was nicht geht geht eben nicht.
 
@Shorty1968 es gibt in deiner DB Gruppen (costmumer_status) und es muss auch eine Tabelle geben wo deine Kunden abgespeichert werden.
Wo bekommst du denn sonst die Infos her, also wohin du dann was schicken musst... etc... :)

Dann musst Du dir den "Login" andschauen.
Dort wird meistens eine ID via Cookie/Session gespeichert.

Diese kannst Du dann abgreifen.

Hast Du die ID, geht es weiter an deine Überprüfung.
Wenn der Kunde sich korrekt verifiziert hat, musst du eine Anweisung schreiben, die den Kundendatensatz eben auf die andere Gruppe umstellt.

Hier mal ein Beispiel Datensatz:
PHP:
<?php
$benutzer_id = 123456; //Beispiel ID des Benutzers
$benutzer_name = "Hermann Müllermeister"; //Beispielname
$passportDatas = array("IDD" => "ABCDEFGHIJ", "GEB" => "0000000", "ABLAUF" => "0000000", "COUNTRY" => "D", "PZ" => "0", "LNAME" => "MÜLLERMEISTER", "FNAME" => "HERMANN", "VERIFY" => true); //Daten Neuer Ausweis Benutzer ist ü18

if($passportDatas['VERIFY'] !== false) {
    /* HIER DEINE ABFRAGE IM GROBEN (mysqli-Abfrage)  CONNECTER ist bereits vorhanden */
    $sql = mysqli_query("UPDATE [COSTUMER_USERS] SET [COSTUMER_GROUP] = [COSTUMER_VERIFY] WHERE [cid] = {$benutzer_id}");
    /* DB ABFRAGE IST BEISPIEL */
} else {
    // ERROR WHATEVER AUSGABE
}
?>

So könnte man es beispielsweise aufbauen :)
Wie gesagt dass sind Beispieldaten, dass soll Dir nur veranschaulichen wie man es machen könnte. :)
 
Vielen dank erst einmal das ist eine absolute Problem Zone für mich,so wie ich das verstanden habe sollte es so gehen?
Code:
if(perso_checksum($perso_id, false)) {
    $sql = xtc_db_query("UPDATE customer SET customer_status = customer_id WHERE customers_cid = {$customer_id}");
} else {
    echo 'Hier meine Fehlermeldung?';
}
Aber so gebe ich ja keine Grupe an in die verschoben werden soll?
 
Schau dir am besten mal deine Registrierung an, wie die Aufgebaut ist und was an Daten an die Datenbank gesendet wird.
Wichtig ist dabei auch zu schauen ob dort eine Gruppe zugeordnet wird oder ob die customer_group oder wie Sie bei dir heißen mag, nur dafür da ist, um eine ID zu haben.

Aber so wie Ich manche Shops kenne, gibt es eine Tabelle mit Gruppen und deren IDs und Name.
Und diese wird einfach nur bei dem Kunden (Users-Table) hinterlegt, so dass du dann nur prüfen musst welche ID der Kunde hat und ob die ID in der Gruppe vorkommt... etc...

Hier musst Du prüfen ob bei deinen Gruppen, die Benutzer IDs/BenutzerName oder was auch immer hinterlegt ist/wird.

Wenn nicht, kannst Du diese Tabelle ignorieren und ist für dein aktuelles Vorhaben aktuell nicht relevant :)

Aber dazu benötigen wir mehr Infos. :)
 
Es gibt da etwas in der create_account.php da sieht dort so aus.
Code:
  if (!isset($customers_status) || $customers_status == 0) {
    if (DEFAULT_CUSTOMERS_STATUS_ID != 0) {
        $customers_status = DEFAULT_CUSTOMERS_STATUS_ID;
    } else {
        $customers_status = 2;
    }
  }
Das ist der Teil der dafür zuständig ist das der Kunde nach erfolgreicher Regestrieung in die Gruppe 2 verschoben wird,eine DB Abfrage dazu konnte ich nicht finden.

Aber genau so etwas würde ich für das Perso Script benötigen nur leider bekomme ich es nicht hin.

*EDIT*
Aber moment könnte ich diese nicht in dieser Form übernemen?
Code:
if (!isset($customers_status) || $customers_status == 0 || perso_checksum($perso_id, false) {
    if (DEFAULT_CUSTOMERS_STATUS_ID != 0) {
        $customers_status = DEFAULT_CUSTOMERS_STATUS_ID;
    } else {
        $customers_status = 2;
    }
  }
Sprich das ich die Zahlen nur durch die Gruppen Zahlen Ersetze/Tausche?
 
Ne dieses Formular läst sich so nicht einfach übernehmen.Du hast dein Perso Script auf einer neuen Seite wie du sagtest. auf der Seite ist bestimmt kein session start gesetzt und so weiter. Das Script muß ja wissen wer da die Daten angibt und die Daten in der Datenbank speichern. Wie @EuroCent schon sagte wäre deine registrierung wichtig. Kannst du deine registrierungs.php mal posten oder anhängen ? Wichtig ist wie und was in der Datenbank gespeichert ist und wird . Mit den Daten kannst du dan abfragen ob User YX gerade die Perso Daten eingetippt hat und dann den customers-status ändern
 
Gerne ich danke euch für eure mühe und hoffe das wir es schaffen zum ende zu kommen,ich komme mir immer so schlecht vor wenn ich etwas nich hin bekomme und andere sich solange bemühen um mir zu helfen.

Vielen dank.
 

Anhänge

Zuletzt bearbeitet:
Ja damit kann man ja schon ehr was anfangen.
Jetzt muß man am anfang des Perso Scriptes checken ob und wer eingelogt ist.
Ich würde es so versuchen.
ganz oben am Anfang der Seite ( Zeile 1 ) kopierst du das rein
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
if(!isset($_SESSION)){
        session_start();
}

if(isset($_SESSION['customer_id']) AND isset($_SESSION['customer_email_address'])){
   if(isset($_SESSION['customer_gender'])=='m'){
        $gender='Herr';
   }else if(isset($_SESSION['customer_gender'])=='f'){
        $gender='Frau';
   }else{
       $gender='Mischling ?';
  }
   if(isset($_SESSION['customer_first_name'])){
        $vorname=$_SESSION['customer_first_name'];
   }else{
        $vorname='NO NAME'; // Abrechen ???
   }
   if(isset($_SESSION['customer_last_name'])){
        $nachname=$_SESSION['customer_last_name'];
   }else{
        $nachname='NO Nachname'; // Abrechen ???
   }
   $email=$_SESSION['customer_email_address'];
   $id=$_SESSION['customer_id'];
       die("Hallo $gender  $vorname   $nachname<br>
              Emailadresse =  $email  <br>
              id = $id");
}else{
       die("du bist nicht eingeloggt. Bitte logge dich ein und versuche es erneut");
}
?>
Wenn dann die Daten da stehen ist der rest nee Kleinigkeit;
Eigentlich würde es auch reichen nur die ID oder Email abzufragen,aber man könnte ja noch zur bestätigung nochmal seinen vor und Nachnamen eingeben lassen? Aber ob das nötig ist ,ist eine andere Frage.
Wenn bei dir jetzt die Email oder Id da steht reicht es erstmal zum weiter machen
 
Zurück