Erotoys-Store Posted May 29, 2007 Report Share Posted May 29, 2007 Hallo, ich verwende den Shop 3.04 mit SP 2.1 Nun ist es ja so, wenn sich neue Kunden regestrieren, das da dann die Kunden automatisch ne Kundennummer bekommen. Diese aber mit 1,2,3 und so weiter hochgezählt werden. Gibt es eine Möglichkeit das man angeben kann mit welcher kundennummer begonnen werden kann? ich hätte gern den Start mit 10000 und dann forlaufend. Da bei mir erst 3 Kunden sich regestriert haben, lauten da die Kundennummern 1, 2 und 3. Habe auch versucht im Admin unter Kunden dann die Kundennummer zu ändern, dies aber nicht geht. Ich hoffe das mir jemand helfen kann. Gruß Jens Link to comment Share on other sites More sharing options...
Matlock Posted May 30, 2007 Report Share Posted May 30, 2007 Hallo, bin grad selber vorm dem Problem gestanden und hab ein paar Zeilen zur automatischen Kundennummergenerierung verfasst, welche ich dir nicht vorenthalten möchte: In der Datei create_account.php einfach folgende Zeile suchen: $sql_data_array = array ('customers_vat_id' => $vat, 'customers_vat_id_status' => $customers_vat_id_status, 'customers_status' => $customers_status, 'customers_firstname' => $firstname, 'customers_lastname' => $lastname, 'customers_email_address' => $email_address, 'customers_telephone' => $telephone, 'customers_fax' => $fax, 'customers_newsletter' => $newsletter, 'customers_password' => xtc_encrypt_password($password),'customers_date_added' => 'now()','customers_last_modified' => 'now()'); und das ganze mit diesen Zeilen ersetzen: //Kunden Nummer generieren $cid_query = xtc_db_query("select customers_cid from ".TABLE_CUSTOMERS." ORDER BY customers_cid DESC LIMIT 1"); //höchste Kundennummer auslesen $cid = xtc_db_fetch_array($cid_query); $customer_cid = $cid['customers_cid'] + 1; //hier wird hochgezählt, also höchste plus 1 //ENDE $sql_data_array = array ('customers_cid' => $customer_cid, 'customers_vat_id' => $vat, 'customers_vat_id_status' => $customers_vat_id_status, 'customers_status' => $customers_status, 'customers_firstname' => $firstname, 'customers_lastname' => $lastname, 'customers_email_address' => $email_address, 'customers_telephone' => $telephone, 'customers_fax' => $fax, 'customers_newsletter' => $newsletter, 'customers_password' => xtc_encrypt_password($password),'customers_date_added' => 'now()','customers_last_modified' => 'now()'); Musst aber darauf achten, dass mindestens ein Kunde bereits eine Kundennummer in der Datenbank hat und diese sollte auch sicherheitshalber nur aus Zahlen bestehen, zB 20015. Hab nämlich keine Fehlerüberprüfung oder ähnliches eingebaut. Vielleicht hilft's dir Link to comment Share on other sites More sharing options...
Erotoys-Store Posted May 30, 2007 Author Report Share Posted May 30, 2007 Hallo, danke für die Antwort. Ich habe bis jetzt 3 Kunden die sich schon angemeldet haben. kann ich da nun ohne weiteres den Code so einfügen wie du Ihn hier geschrieben hast? Die drei bestehenden Kunden haben die Kundennummer von 1 bis 3 wie ich im Admin unter kunden sehen kann. Gruß Jens Link to comment Share on other sites More sharing options...
Matlock Posted May 30, 2007 Report Share Posted May 30, 2007 Sollte funktionieren, würde dann bei der nächsten Kundenanmeldung eben die Zahl 4 vergeben werden. Jedoch wie bei Software (verwendete Version ist 3.0.4 SP1) so üblich, alles ohne Gewähr. Bitte vorher Backup von der Datei erstellen. Link to comment Share on other sites More sharing options...
des-ign Posted June 2, 2007 Report Share Posted June 2, 2007 Hi, habe das gerade mal probiert. Bekomme leider folgende Fehlermeldung: habe einen kunde mit der kundennummer 80000 angelegt und wollte nun die "neue" generieren lassen... --------------- 1064 - Fehler in der Syntax bei 'ded, customers_last_modified, customers_gender) values ('80001',' in Zeile 1. insert into customers (customers_cid, customers_vat_id, customers_vat_id_status, customers_status, customers_firstname, customers_lastname, customers_email_address, customers_telephone, customers_fax, customers_newsletter, customers_password, customers_date_ad ded, customers_last_modified, customers_gender) values ('80001', '', '', '2', 'rtreter', 'rtre', '[email protected]', '667454', '', '0', '5fb69aa4e71b65090523754ae5f0d02e', now(), now(), 'm') [XT SQL Error] --------------- Link to comment Share on other sites More sharing options...
Matlock Posted June 5, 2007 Report Share Posted June 5, 2007 Da hat sich beim Kopieren des Codes der Fehlerteufel eingeschlichen Ist ein Leerzeichen zu viel: 'customers_date_ad ded' => 'now()' soll heißen 'customers_date_added' => 'now()' sry Link to comment Share on other sites More sharing options...
des-ign Posted June 5, 2007 Report Share Posted June 5, 2007 Hi, wir wollen mal nicht so sein ;-) Klappt prima...bisher :) Danke schöönn Link to comment Share on other sites More sharing options...
zro Posted August 15, 2007 Report Share Posted August 15, 2007 Hi... Wie ist es... wenn ich als Admin einen neuen Kunden anlege, muß ich dann selber schauen, welche KundenNr. noch frei ist oder bekomme ich da auch eine Nr. zu gewiesen? Wenn ich es selber eine vergeben muß, wird es sich dann nicht irgend wann überschneiden? .. Nehmen wir an, ich habe 3 Kunden mit KundenNr., im Amdin lege ich einen neuen an und gebe ihm die KundenNr. 4.... was bekommt der nächste Kunde als KundenNR., sobald sich ein neuer anmeldet... die 5 oder nochmal die 4? Vielen Dank für Eure Hilfe! ------------- Hat sich erledigt! Alles gefunden! Link to comment Share on other sites More sharing options...
kchris Posted August 21, 2007 Report Share Posted August 21, 2007 Du könntest ein Problem bekommen, wenn es in deinem Shop Gast Accounts gibt, die gelöscht werden können (Option Löschen von Gast-Accounts). Wird diese Löschung auch in der DB vorgenommen (hab ich nicht überprüft), dann können falsche Werte bei deiner Abfrage nach der höchste Kundennummer entstehen. Nutze doch einfach die Technik wie sie für die nächsten SQL-Befehle verwendet werden (adressbook). in der create_account.php und create_guest_account.php nach $_SESSION['customer_id'] = xtc_db_insert_id(); einfügen //Update Userdaten mit Kundennummer [knips-konsorten.de] if ($_SESSION['customer_id'] != "") { $c_cid = $_SESSION['customer_id']; //hier kann die Nummer wie gewünscht mit werten vor oder nach der ID beeinflusst werden z.B. K0001 $c_cid_query = "UPDATE " . TABLE_CUSTOMERS . " SET customers_cid = '". $c_cid ."' WHERE customers_id = '". $_SESSION['customer_id'] ."'"; xtc_db_query($c_cid_query); } //ENDE [/php] Link to comment Share on other sites More sharing options...
kolping-mainfranken Posted August 22, 2007 Report Share Posted August 22, 2007 danke Matlock, diese änderung ist mir klar und habe ich hinbekommen. die anpassung von kchris ist mir nicht ganz klar, kann mir das vor meinem geistige auge nicht vorstellen vielleicht kann mir das noch wer verdeutlichen was genau seine methode bewirkt danke auf jeden fall Link to comment Share on other sites More sharing options...
back@me Posted August 23, 2007 Report Share Posted August 23, 2007 Schon die Suche benutzt? Ich hoffe ich habe richtig gelesen und in diesem Beitrag wird folgende Anleitung gesucht: Den kompletten Beitrag zur Lösung bekommst Du hier: http://www.xt-commerce.com/forum/showthread.php?t=33277 First of all --> Backup von der DB machen!!!! Bitte darauf achten, dass nicht der Admin Account gelöscht wird! Anschließend habe ich den aufs Neue veränderten Code auf Grundlagen von jimpi folgendermaßen integriert: in der datei create_account.php nach Zeile: include ('includes/application_top.php'); folgendes einfügen: [font=Verdana]require_once (DIR_FS_INC.'xtc_random_charcode.inc.php');[/font] [font=Verdana]require_once (DIR_FS_INC.'xtc_rand.inc.php');[/font] [font=Verdana]function new_customer_id($space='-'){ [/font] [font=Verdana]$new_cid='';[/font] [font=Verdana]$start_cid = 3490;[/font] [font=Verdana]$year = date("y");[/font] [font=Verdana]$month = date("m");[/font] [font=Verdana]$sign = 'HD';[/font] [font=Verdana] [/font] [font=Verdana]$cid_query = xtc_db_query("SELECT customers_cid FROM ".TABLE_CUSTOMERS." ORDER BY customers_date_added DESC LIMIT 1");[/font] [font=Verdana]$last_cid = xtc_db_fetch_array($cid_query);[/font] [font=Verdana] [/font] [font=Verdana]$arr_cid = explode($space,$last_cid['customers_cid']);[/font] [font=Verdana]if($arr_cid[1] [/font] [font=Verdana]? $new_cid = $sign . $year . $month . $space . ($arr_cid[1]+1) [/font] [font=Verdana]: $new_cid = $sign . $year . $month . $space . $start_cid); [/font] [font=Verdana] [/font] [font=Verdana]return $new_cid;[/font] [font=Verdana] [/font] [font=Verdana]}[/font] [font=Verdana][/font][/php] [font=Verdana][size=2][color=red][color=red][b][u]und VOR[/u] der Zeile[/b] [/color][/color][/size][/font] [color=red][size=2][font=Verdana][color=red]xtc_db_perform(TABLE_CUSTOMERS, $sql_data_array);[/color][/font][/size][/color] [color=red][size=2][font=Verdana][color=red][b]folgendes einfügen:[/b][/color][/font][/size][/color] [font=Verdana][size=2][font=Verdana]//Automatisch [/font][/size][/font][b][color=black][color=windowtext]Kundennummer[/color][/color][/b][font=Verdana][font=Verdana] fortlaufend anlegen: [/font][/font] [font=Verdana][php]$sql_data_array['customers_cid'] = new_customer_id(); ------------------ Ergebnis: [$sign][ $year][ $month][$space][$arr_cid] [beliebige Zeichen][Jahr][Monat][-][fortlaufende Zahl] Mein erster Kunde bekam nun die Nummer: HD0701-3490 Mein zweiter Kunde die Nummer: HD0701-3491 Der dritte: HD0701-3492 ACHTUNG: - Es MUSS bereits ein Kunde mit einer Kundennummer existieren. - Die Zahl im Code $start_cid = 3490; kann durch eine beliebige ersetze werden (sie muss aber grösser sein, als die zuletzt vergebene Kundennummer) Eine Kundennummer, die nicht mit einer glatten Zahl beginnt (z.B. 1000, 2000 oder 3000) sieht dem Kunden gegenüber immer besser aus. Aus diesem Grund habe ich die 3490 gewählt! - Der oder die Buchstaben im Code $sign = 'V'; können durch beliebige ersetzt werden - Das Zeichen (der Bindestrich) im Code function new_customer_id($space='-'){ kann durch ein beliebiges ersetzt werden Ich hoffe, ich konnte helfen back@me Link to comment Share on other sites More sharing options...
marko weber Posted August 24, 2007 Report Share Posted August 24, 2007 müsste Ich damit ich ein Kundennumer im Fomat "3490" erhalte, folgendes aus deinem code oben raus nehmen ? [font=Verdana]$year = date("y");[/font] [font=Verdana]$month = date("m");[/font] [font=Verdana]$sign = 'HD';[/font][/PHP][color=#000000][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#DD0000][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][color=#DD0000][/color][color=#007700][/color][color=#0000BB][/color][color=#007700][/color][/color] Link to comment Share on other sites More sharing options...
back@me Posted August 24, 2007 Report Share Posted August 24, 2007 Hi marko_weber, die Antwort auf Deine Frage wäre "ja, aber nicht nur das". Die Lösung ist aber gar nicht so schwierig. Damit ich diesen Beitrag hier nicht komplett zerreiße, würde ich Dich bitten den ersten Eintrag von "Purecut" in folgendem Post zu nutzen: http://www.xt-commerce.com/forum/showthread.php?t=33277 (hatte ich auch schon weiter oben drauf hin gewiesen ;-)) Ich hoffe, ich konnte helfen. backy Link to comment Share on other sites More sharing options...
Matlock Posted September 13, 2007 Report Share Posted September 13, 2007 Muss noch kurz eine Anmerkung zu meiner Kundennummerngenerierung loswerden. Zugegeben diese ist simple und programmiertechnisch nicht sehr professionell. Kunden welche im Adminbereich angelegt werden, muss selbst die Kundennummer vegeben werden und falls sich, wie der Zufall so will, gerade einer neu anmeldet, kann es auch zu doppelten kommen. Für mich reicht diese Lösung und soll nur ein Ansatz sein. Link to comment Share on other sites More sharing options...
manuelus Posted January 6, 2008 Report Share Posted January 6, 2008 Hallo ich habe ein kleines Problem. Wenn ich die sache genau so abändere mit diesen 2 Code wo du reingestellt hast. das bei create _account, und ich dann einen neuen Kunden erfassen will,kommt bei mir diese meldung: Parse error: syntax error, unexpected '[' in /home/www/web53/html/phpshop/create_account.php on line 32 und bei dieser Zeile steht folgender Code von dir: require_once (DIR_FS_INC.'xtc_random_charcode.inc.php'); was ist dort faslch?? habe ich noch etwas vergessen? danke mfg manuel Bitte darauf achten, dass nicht der Admin Account gelöscht wird! Anschließend habe ich den aufs Neue veränderten Code auf Grundlagen von jimpi folgendermaßen integriert: in der datei create_account.php nach Zeile: include ('includes/application_top.php'); folgendes einfügen: PHP-Code: require_once (DIR_FS_INC.'xtc_random_charcode.inc.php'); require_once (DIR_FS_INC.'xtc_rand.inc.php'); function new_customer_id($space='-'){ $new_cid=''; $start_cid = 3490; $year = date("y"); $month = date("m"); $sign = 'HD'; $cid_query = xtc_db_query("SELECT customers_cid FROM ".TABLE_CUSTOMERS." ORDER BY customers_date_added DESC LIMIT 1"); $last_cid = xtc_db_fetch_array($cid_query); $arr_cid = explode($space,$last_cid['customers_cid']); if($arr_cid[1] ? $new_cid = $sign . $year . $month . $space . ($arr_cid[1]+1) : $new_cid = $sign . $year . $month . $space . $start_cid); return $new_cid; } und VOR der Zeile xtc_db_perform(TABLE_CUSTOMERS, $sql_data_array); folgendes einfügen: //Automatisch Kundennummer fortlaufend anlegen: PHP-Code: $sql_data_array['customers_cid'] = new_customer_id(); ------------------ Ergebnis: [$sign][ $year][ $month][$space][$arr_cid] [beliebige Zeichen][Jahr][Monat][-][fortlaufende Zahl] Mein erster Kunde bekam nun die Nummer: HD0701-3490 Mein zweiter Kunde die Nummer: HD0701-3491 Der dritte: HD0701-3492 ACHTUNG: - Es MUSS bereits ein Kunde mit einer Kundennummer existieren. - Die Zahl im Code $start_cid = 3490; kann durch eine beliebige ersetze werden (sie muss aber grösser sein, als die zuletzt vergebene Kundennummer) Eine Kundennummer, die nicht mit einer glatten Zahl beginnt (z.B. 1000, 2000 oder 3000) sieht dem Kunden gegenüber immer besser aus. Aus diesem Grund habe ich die 3490 gewählt! - Der oder die Buchstaben im Code $sign = 'V'; können durch beliebige ersetzt werden - Das Zeichen (der Bindestrich) im Code function new_customer_id($space='-'){ kann durch ein beliebiges ersetzt werden Ich hoffe, ich konnte helfen back@me -------------------------------------------------------------------------------- Geändert von back@me (23.08.2007 um 12:51 Uhr). Link to comment Share on other sites More sharing options...
back@me Posted January 6, 2008 Report Share Posted January 6, 2008 Hi Manuel, kopier mal den ganzen Inhalt Deiner "create_account.php" hier rein. Es scheint ein Problem mit einer geöffneten eckigen Klammer zu geben. Gruß Link to comment Share on other sites More sharing options...
mcantwort Posted February 5, 2008 Report Share Posted February 5, 2008 das ihr umstandskästen seid wisst ihr schon, oder? habt ihr noch nüscht vom autoincrement gehört? den kann man ganz super in phpmyadmin hochdrücken ohne irgendwelchen kunden anzulegen Link to comment Share on other sites More sharing options...
back@me Posted February 5, 2008 Report Share Posted February 5, 2008 Hallo mcantwort ... ... wen willst Du wohin drücken? Drück Dich doch bitte einwenig deutlicher aus . Danke Link to comment Share on other sites More sharing options...
mcantwort Posted February 5, 2008 Report Share Posted February 5, 2008 Hallo mcantwort ... ... wen willst Du wohin drücken? Drück Dich doch bitte einwenig deutlicher aus . Danke es ging anfänglich darum das die kundennummer nicht bei 1 beginnen soll willst du nur das, dann geh ins phpMyAdmin auf die table "orders" und da auf operationen. im roten feld (nur im bild ) steht der nächste inkrement welchen du einfach erhöhen kannst weil er unique ist...mit gewalt runtersetzen würde ich ihn nicht, weil dann nicht mehr sicher gestellt ist ob der nächste nicht schon vergeben und somit belegt ist Link to comment Share on other sites More sharing options...
back@me Posted February 6, 2008 Report Share Posted February 6, 2008 Hi, ahhh, sooo! Na, das ist natürlich nicht mein Thema. Das ist richtig, dass war die Einstiegsfrage. Mir ging es in diesem Beitrag um eine erweiterte Kundennummer incl. zusätzlichen Zeichen. Viele Grüße Link to comment Share on other sites More sharing options...
mcantwort Posted February 6, 2008 Report Share Posted February 6, 2008 mir ging es auch um die erweiterte damit ich verwendungszwecke habe ;-) und so bin ich hier gelandet...das der thread aus mehreren seiten besteht, hab ich erst nach dem posten gesehen (noch ungewohnt für mich das layout ) das script sieht zumindest gut aus (wenn ich mir das [font=Verdana] wegdenke ) Link to comment Share on other sites More sharing options...
back@me Posted February 6, 2008 Report Share Posted February 6, 2008 :) :) Jau, das ist das Übel des matschigen Quellcodes dieses Forums. Wenn man halt mal schnell was aus einem seiner alten Beiträge rauskopieren will passiert sowas! :) :) Link to comment Share on other sites More sharing options...
Outpack Posted July 28, 2008 Report Share Posted July 28, 2008 Hallo, bin grad selber vorm dem Problem gestanden und hab ein paar Zeilen zur automatischen Kundennummergenerierung verfasst, welche ich dir nicht vorenthalten möchte DAS hat bis zum Kunden 99/100 prima geklappt. JETZT kriegt jeder neue Kunde die Kundennummer 100. Woran liegt denn das? Kann jemand möglichst schnell helfen? Danke schonmal. Link to comment Share on other sites More sharing options...
ky-records Posted December 19, 2008 Report Share Posted December 19, 2008 Moin, folgendes ich hab das alles nach der anleitung gemacht aber es tut sich nichts include ('includes/application_top.php'); [font=Verdana]require_once (DIR_FS_INC.'xtc_random_charcode.inc.php');[/font] [font=Verdana]require_once (DIR_FS_INC.'xtc_rand.inc.php');[/font] [font=Verdana]function new_customer_id($space='-'){ [/font] [font=Verdana]$new_cid='';[/font] [font=Verdana]$start_cid = 3490;[/font] [font=Verdana]$year = date("y");[/font] [font=Verdana]$month = date("m");[/font] [font=Verdana]$sign = 'HD';[/font] [font=Verdana] [/font] [font=Verdana]$cid_query = xtc_db_query("SELECT customers_cid FROM ".TABLE_CUSTOMERS." ORDER BY customers_date_added DESC LIMIT 1");[/font] [font=Verdana]$last_cid = xtc_db_fetch_array($cid_query);[/font] [font=Verdana] [/font] [font=Verdana]$arr_cid = explode($space,$last_cid['customers_cid']);[/font] [font=Verdana]if($arr_cid[1] [/font] [font=Verdana]? $new_cid = $sign . $year . $month . $space . ($arr_cid[1]+1) [/font] [font=Verdana]: $new_cid = $sign . $year . $month . $space . $start_cid); [/font] [font=Verdana] [/font] [font=Verdana]return $new_cid;[/font] [font=Verdana] [/font] [font=Verdana]}[/font] [font=Verdana][/font] if (isset ($_SESSION['customer_id'])) { xtc_redirect(xtc_href_link(FILENAME_ACCOUNT, '', 'SSL')); } // create smarty elements $smarty = new Smarty; // include boxes require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php'); // include needed functions require_once (DIR_FS_INC.'xtc_get_country_list.inc.php'); require_once (DIR_FS_INC.'xtc_validate_email.inc.php'); require_once (DIR_FS_INC.'xtc_encrypt_password.inc.php'); require_once (DIR_FS_INC.'xtc_get_geo_zone_code.inc.php'); require_once (DIR_FS_INC.'xtc_write_user_info.inc.php'); $process = false; if (isset ($_POST['action']) && ($_POST['action'] == 'process')) { $process = true; if (ACCOUNT_GENDER == 'true') $gender = xtc_db_prepare_input($_POST['gender']); $firstname = xtc_db_prepare_input($_POST['firstname']); $lastname = xtc_db_prepare_input($_POST['lastname']); if (ACCOUNT_DOB == 'true') $dob = xtc_db_prepare_input($_POST['dob']); $email_address = xtc_db_prepare_input($_POST['email_address']); if (ACCOUNT_COMPANY == 'true') $company = xtc_db_prepare_input($_POST['company']); if (ACCOUNT_COMPANY_VAT_CHECK == 'true') $vat = xtc_db_prepare_input($_POST['vat']); $street_address = xtc_db_prepare_input($_POST['street_address']); if (ACCOUNT_SUBURB == 'true') $suburb = xtc_db_prepare_input($_POST['suburb']); $postcode = xtc_db_prepare_input($_POST['postcode']); $city = xtc_db_prepare_input($_POST['city']); $zone_id = xtc_db_prepare_input($_POST['zone_id']); if (ACCOUNT_STATE == 'true') $state = xtc_db_prepare_input($_POST['state']); $country = xtc_db_prepare_input($_POST['country']); $telephone = xtc_db_prepare_input($_POST['telephone']); $fax = xtc_db_prepare_input($_POST['fax']); $newsletter = '0'; $password = xtc_db_prepare_input($_POST['password']); $confirmation = xtc_db_prepare_input($_POST['confirmation']); $error = false; if (ACCOUNT_GENDER == 'true') { if (($gender != 'm') && ($gender != 'f')) { $error = true; $messageStack->add('create_account', ENTRY_GENDER_ERROR); } } if (strlen($firstname) < ENTRY_FIRST_NAME_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_FIRST_NAME_ERROR); } if (strlen($lastname) < ENTRY_LAST_NAME_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_LAST_NAME_ERROR); } 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); } } // New VAT Check require_once(DIR_WS_CLASSES.'vat_validation.php'); $vatID = new vat_validation($vat, '', '', $country); $customers_status = $vatID->vat_info['status']; $customers_vat_id_status = $vatID->vat_info['vat_id_status']; $error = $vatID->vat_info['error']; if($error==1){ $messageStack->add('create_account', ENTRY_VAT_ERROR); $error = true; } // New VAT CHECK END if (strlen($email_address) < ENTRY_EMAIL_ADDRESS_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR); } elseif (xtc_validate_email($email_address) == false) { $error = true; $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_CHECK_ERROR); } else { $check_email_query = xtc_db_query("select count(*) as total from ".TABLE_CUSTOMERS." where customers_email_address = '".xtc_db_input($email_address)."' and account_type = '0'"); $check_email = xtc_db_fetch_array($check_email_query); if ($check_email['total'] > 0) { $error = true; $messageStack->add('create_account', ENTRY_EMAIL_ADDRESS_ERROR_EXISTS); } } if (strlen($street_address) < ENTRY_STREET_ADDRESS_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_STREET_ADDRESS_ERROR); } if (strlen($postcode) < ENTRY_POSTCODE_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_POST_CODE_ERROR); } if (strlen($city) < ENTRY_CITY_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_CITY_ERROR); } if (is_numeric($country) == false) { $error = true; $messageStack->add('create_account', ENTRY_COUNTRY_ERROR); } if (ACCOUNT_STATE == 'true') { $zone_id = 0; $check_query = xtc_db_query("select count(*) as total from ".TABLE_ZONES." where zone_country_id = '".(int) $country."'"); $check = xtc_db_fetch_array($check_query); $entry_state_has_zones = ($check['total'] > 0); if ($entry_state_has_zones == true) { $zone_query = xtc_db_query("select distinct zone_id from ".TABLE_ZONES." where zone_country_id = '".(int) $country."' and (zone_name like '".xtc_db_input($state)."%' or zone_code like '%".xtc_db_input($state)."%')"); if (xtc_db_num_rows($zone_query) > 1) { $zone_query = xtc_db_query("select distinct zone_id from ".TABLE_ZONES." where zone_country_id = '".(int) $country."' and zone_name = '".xtc_db_input($state)."'"); } if (xtc_db_num_rows($zone_query) >= 1) { $zone = xtc_db_fetch_array($zone_query); $zone_id = $zone['zone_id']; } else { $error = true; $messageStack->add('create_account', ENTRY_STATE_ERROR_SELECT); } } else { if (strlen($state) < ENTRY_STATE_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_STATE_ERROR); } } } if (strlen($telephone) < ENTRY_TELEPHONE_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_TELEPHONE_NUMBER_ERROR); } if (strlen($password) < ENTRY_PASSWORD_MIN_LENGTH) { $error = true; $messageStack->add('create_account', ENTRY_PASSWORD_ERROR); } elseif ($password != $confirmation) { $error = true; $messageStack->add('create_account', ENTRY_PASSWORD_ERROR_NOT_MATCHING); } //don't know why, but this happens sometimes and new user becomes admin if ($customers_status == 0 || !$customers_status) $customers_status = DEFAULT_CUSTOMERS_STATUS_ID; if (!$newsletter) $newsletter = 0; if ($error == false) { $sql_data_array = array ('customers_vat_id' => $vat, 'customers_vat_id_status' => $customers_vat_id_status, 'customers_status' => $customers_status, 'customers_firstname' => $firstname, 'customers_lastname' => $lastname, 'customers_email_address' => $email_address, 'customers_telephone' => $telephone, 'customers_fax' => $fax, 'customers_newsletter' => $newsletter, 'customers_password' => xtc_encrypt_password($password),'customers_date_added' => 'now()','customers_last_modified' => 'now()'); if (ACCOUNT_GENDER == 'true') $sql_data_array['customers_gender'] = $gender; if (ACCOUNT_DOB == 'true') $sql_data_array['customers_dob'] = xtc_date_raw($dob); $sql_data_array['customers_cid'] = new_customer_id(); xtc_db_perform(TABLE_CUSTOMERS, $sql_data_array); $_SESSION['customer_id'] = xtc_db_insert_id(); $user_id = xtc_db_insert_id(); xtc_write_user_info($user_id); $sql_data_array = array ('customers_id' => $_SESSION['customer_id'], 'entry_firstname' => $firstname, 'entry_lastname' => $lastname, 'entry_street_address' => $street_address, 'entry_postcode' => $postcode, 'entry_city' => $city, 'entry_country_id' => $country,'address_date_added' => 'now()','address_last_modified' => 'now()'); if (ACCOUNT_GENDER == 'true') $sql_data_array['entry_gender'] = $gender; if (ACCOUNT_COMPANY == 'true') $sql_data_array['entry_company'] = $company; if (ACCOUNT_SUBURB == 'true') $sql_data_array['entry_suburb'] = $suburb; if (ACCOUNT_STATE == 'true') { if ($zone_id > 0) { $sql_data_array['entry_zone_id'] = $zone_id; $sql_data_array['entry_state'] = ''; } else { $sql_data_array['entry_zone_id'] = '0'; $sql_data_array['entry_state'] = $state; } } xtc_db_perform(TABLE_ADDRESS_BOOK, $sql_data_array); $address_id = xtc_db_insert_id(); xtc_db_query("update ".TABLE_CUSTOMERS." set customers_default_address_id = '".$address_id."' where customers_id = '".(int) $_SESSION['customer_id']."'"); xtc_db_query("insert into ".TABLE_CUSTOMERS_INFO." (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('".(int) $_SESSION['customer_id']."', '0', now())"); if (SESSION_RECREATE == 'True') { xtc_session_recreate(); } $_SESSION['customer_first_name'] = $firstname; $_SESSION['customer_last_name'] = $lastname; $_SESSION['customer_default_address_id'] = $address_id; $_SESSION['customer_country_id'] = $country; $_SESSION['customer_zone_id'] = $zone_id; $_SESSION['customer_vat_id'] = $vat; // restore cart contents $_SESSION['cart']->restore_contents(); // build the message content $name = $firstname.' '.$lastname; // load data into array $module_content = array (); $module_content = array ('MAIL_NAME' => $name, 'MAIL_REPLY_ADDRESS' => EMAIL_SUPPORT_REPLY_ADDRESS, 'MAIL_GENDER' => $gender); // assign data to smarty $smarty->assign('language', $_SESSION['language']); $smarty->assign('logo_path', HTTP_SERVER.DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/img/'); $smarty->assign('content', $module_content); $smarty->caching = false; if (isset ($_SESSION['tracking']['refID'])){ $campaign_check_query_raw = "SELECT * FROM ".TABLE_CAMPAIGNS." WHERE campaigns_refID = '".$_SESSION[tracking][refID]."'"; $campaign_check_query = xtc_db_query($campaign_check_query_raw); if (xtc_db_num_rows($campaign_check_query) > 0) { $campaign = xtc_db_fetch_array($campaign_check_query); $refID = $campaign['campaigns_id']; } else { $refID = 0; } xtc_db_query("update " . TABLE_CUSTOMERS . " set refferers_id = '".$refID."' where customers_id = '".(int) $_SESSION['customer_id']."'"); $leads = $campaign['campaigns_leads'] + 1 ; xtc_db_query("update " . TABLE_CAMPAIGNS . " set campaigns_leads = '".$leads."' where campaigns_id = '".$refID."'"); } if (ACTIVATE_GIFT_SYSTEM == 'true') { // GV Code Start // ICW - CREDIT CLASS CODE BLOCK ADDED ******************************************************* BEGIN if (NEW_SIGNUP_GIFT_VOUCHER_AMOUNT > 0) { $coupon_code = create_coupon_code(); $insert_query = xtc_db_query("insert into ".TABLE_COUPONS." (coupon_code, coupon_type, coupon_amount, date_created) values ('".$coupon_code."', 'G', '".NEW_SIGNUP_GIFT_VOUCHER_AMOUNT."', now())"); $insert_id = xtc_db_insert_id($insert_query); $insert_query = xtc_db_query("insert into ".TABLE_COUPON_EMAIL_TRACK." (coupon_id, customer_id_sent, sent_firstname, emailed_to, date_sent) values ('".$insert_id."', '0', 'Admin', '".$email_address."', now() )"); $smarty->assign('SEND_GIFT', 'true'); $smarty->assign('GIFT_AMMOUNT', $xtPrice->xtcFormat(NEW_SIGNUP_GIFT_VOUCHER_AMOUNT, true)); $smarty->assign('GIFT_CODE', $coupon_code); $smarty->assign('GIFT_LINK', xtc_href_link(FILENAME_GV_REDEEM, 'gv_no='.$coupon_code, 'NONSSL', false)); } if (NEW_SIGNUP_DISCOUNT_COUPON != '') { $coupon_code = NEW_SIGNUP_DISCOUNT_COUPON; $coupon_query = xtc_db_query("select * from ".TABLE_COUPONS." where coupon_code = '".$coupon_code."'"); $coupon = xtc_db_fetch_array($coupon_query); $coupon_id = $coupon['coupon_id']; $coupon_desc_query = xtc_db_query("select * from ".TABLE_COUPONS_DESCRIPTION." where coupon_id = '".$coupon_id."' and language_id = '".(int) $_SESSION['languages_id']."'"); $coupon_desc = xtc_db_fetch_array($coupon_desc_query); $insert_query = xtc_db_query("insert into ".TABLE_COUPON_EMAIL_TRACK." (coupon_id, customer_id_sent, sent_firstname, emailed_to, date_sent) values ('".$coupon_id."', '0', 'Admin', '".$email_address."', now() )"); $smarty->assign('SEND_COUPON', 'true'); $smarty->assign('COUPON_DESC', $coupon_desc['coupon_description']); $smarty->assign('COUPON_CODE', $coupon['coupon_code']); } // ICW - CREDIT CLASS CODE BLOCK ADDED ******************************************************* END // GV Code End // create templates } $smarty->caching = 0; $html_mail = $smarty->fetch(CURRENT_TEMPLATE.'/mail/'.$_SESSION['language'].'/create_account_mail.html'); $smarty->caching = 0; $txt_mail = $smarty->fetch(CURRENT_TEMPLATE.'/mail/'.$_SESSION['language'].'/create_account_mail.txt'); xtc_php_mail(EMAIL_SUPPORT_ADDRESS, EMAIL_SUPPORT_NAME, $email_address, $name, EMAIL_SUPPORT_FORWARDING_STRING, EMAIL_SUPPORT_REPLY_ADDRESS, EMAIL_SUPPORT_REPLY_ADDRESS_NAME, '', '', EMAIL_SUPPORT_SUBJECT, $html_mail, $txt_mail); if (!isset ($mail_error)) { xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART, '', 'SSL')); } else { echo $mail_error; } } } $breadcrumb->add(NAVBAR_TITLE_CREATE_ACCOUNT, xtc_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL')); require (DIR_WS_INCLUDES.'header.php'); if ($messageStack->size('create_account') > 0) { $smarty->assign('error', $messageStack->output('create_account')); } $smarty->assign('FORM_ACTION', xtc_draw_form('create_account', xtc_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'), 'post', 'onsubmit="return check_form(create_account);"').xtc_draw_hidden_field('action', 'process')); if (ACCOUNT_GENDER == 'true') { $smarty->assign('gender', '1'); $smarty->assign('INPUT_MALE', xtc_draw_radio_field(array ('name' => 'gender', 'suffix' => MALE), 'm')); $smarty->assign('INPUT_FEMALE', xtc_draw_radio_field(array ('name' => 'gender', 'suffix' => FEMALE, 'text' => (xtc_not_null(ENTRY_GENDER_TEXT) ? '<span class="inputRequirement">'.ENTRY_GENDER_TEXT.'</span>' : '')), 'f')); } else { $smarty->assign('gender', '0'); } $smarty->assign('INPUT_FIRSTNAME', xtc_draw_input_fieldNote(array ('name' => 'firstname', 'text' => ' '. (xtc_not_null(ENTRY_FIRST_NAME_TEXT) ? '<span class="inputRequirement">'.ENTRY_FIRST_NAME_TEXT.'</span>' : '')))); $smarty->assign('INPUT_LASTNAME', xtc_draw_input_fieldNote(array ('name' => 'lastname', 'text' => ' '. (xtc_not_null(ENTRY_LAST_NAME_TEXT) ? '<span class="inputRequirement">'.ENTRY_LAST_NAME_TEXT.'</span>' : '')))); if (ACCOUNT_DOB == 'true') { $smarty->assign('birthdate', '1'); $smarty->assign('INPUT_DOB', xtc_draw_input_fieldNote(array ('name' => 'dob', 'text' => ' '. (xtc_not_null(ENTRY_DATE_OF_BIRTH_TEXT) ? '<span class="inputRequirement">'.ENTRY_DATE_OF_BIRTH_TEXT.'</span>' : '')))); } else { $smarty->assign('birthdate', '0'); } $smarty->assign('INPUT_EMAIL', xtc_draw_input_fieldNote(array ('name' => 'email_address', 'text' => ' '. (xtc_not_null(ENTRY_EMAIL_ADDRESS_TEXT) ? '<span class="inputRequirement">'.ENTRY_EMAIL_ADDRESS_TEXT.'</span>' : '')))); if (ACCOUNT_COMPANY == 'true') { $smarty->assign('company', '1'); $smarty->assign('INPUT_COMPANY', xtc_draw_input_fieldNote(array ('name' => 'company', 'text' => ' '. (xtc_not_null(ENTRY_COMPANY_TEXT) ? '<span class="inputRequirement">'.ENTRY_COMPANY_TEXT.'</span>' : '')))); } else { $smarty->assign('company', '0'); } if (ACCOUNT_COMPANY_VAT_CHECK == 'true') { $smarty->assign('vat', '1'); $smarty->assign('INPUT_VAT', xtc_draw_input_fieldNote(array ('name' => 'vat', 'text' => ' '. (xtc_not_null(ENTRY_VAT_TEXT) ? '<span class="inputRequirement">'.ENTRY_VAT_TEXT.'</span>' : '')))); } else { $smarty->assign('vat', '0'); } $smarty->assign('INPUT_STREET', xtc_draw_input_fieldNote(array ('name' => 'street_address', 'text' => ' '. (xtc_not_null(ENTRY_STREET_ADDRESS_TEXT) ? '<span class="inputRequirement">'.ENTRY_STREET_ADDRESS_TEXT.'</span>' : '')))); if (ACCOUNT_SUBURB == 'true') { $smarty->assign('suburb', '1'); $smarty->assign('INPUT_SUBURB', xtc_draw_input_fieldNote(array ('name' => 'suburb', 'text' => ' '. (xtc_not_null(ENTRY_SUBURB_TEXT) ? '<span class="inputRequirement">'.ENTRY_SUBURB_TEXT.'</span>' : '')))); } else { $smarty->assign('suburb', '0'); } $smarty->assign('INPUT_CODE', xtc_draw_input_fieldNote(array ('name' => 'postcode', 'text' => ' '. (xtc_not_null(ENTRY_POST_CODE_TEXT) ? '<span class="inputRequirement">'.ENTRY_POST_CODE_TEXT.'</span>' : '')))); $smarty->assign('INPUT_CITY', xtc_draw_input_fieldNote(array ('name' => 'city', 'text' => ' '. (xtc_not_null(ENTRY_CITY_TEXT) ? '<span class="inputRequirement">'.ENTRY_CITY_TEXT.'</span>' : '')))); if (ACCOUNT_STATE == 'true') { $smarty->assign('state', '1'); if ($process == true) { if ($entry_state_has_zones == true) { $zones_array = array (); $zones_query = xtc_db_query("select zone_name from ".TABLE_ZONES." where zone_country_id = '".(int) $country."' order by zone_name"); while ($zones_values = xtc_db_fetch_array($zones_query)) { $zones_array[] = array ('id' => $zones_values['zone_name'], 'text' => $zones_values['zone_name']); } $state_input = xtc_draw_pull_down_menuNote(array ('name' => 'state', 'text' => ' '. (xtc_not_null(ENTRY_STATE_TEXT) ? '<span class="inputRequirement">'.ENTRY_STATE_TEXT.'</span>' : '')), $zones_array); } else { $state_input = xtc_draw_input_fieldNote(array ('name' => 'state', 'text' => ' '. (xtc_not_null(ENTRY_STATE_TEXT) ? '<span class="inputRequirement">'.ENTRY_STATE_TEXT.'</span>' : ''))); } } else { $state_input = xtc_draw_input_fieldNote(array ('name' => 'state', 'text' => ' '. (xtc_not_null(ENTRY_STATE_TEXT) ? '<span class="inputRequirement">'.ENTRY_STATE_TEXT.'</span>' : ''))); } $smarty->assign('INPUT_STATE', $state_input); } else { $smarty->assign('state', '0'); } if ($_POST['country']) { $selected = $_POST['country']; } else { $selected = STORE_COUNTRY; } $smarty->assign('SELECT_COUNTRY', xtc_get_country_list(array ('name' => 'country', 'text' => ' '. (xtc_not_null(ENTRY_COUNTRY_TEXT) ? '<span class="inputRequirement">'.ENTRY_COUNTRY_TEXT.'</span>' : '')), $selected)); $smarty->assign('INPUT_TEL', xtc_draw_input_fieldNote(array ('name' => 'telephone', 'text' => ' '. (xtc_not_null(ENTRY_TELEPHONE_NUMBER_TEXT) ? '<span class="inputRequirement">'.ENTRY_TELEPHONE_NUMBER_TEXT.'</span>' : '')))); $smarty->assign('INPUT_FAX', xtc_draw_input_fieldNote(array ('name' => 'fax', 'text' => ' '. (xtc_not_null(ENTRY_FAX_NUMBER_TEXT) ? '<span class="inputRequirement">'.ENTRY_FAX_NUMBER_TEXT.'</span>' : '')))); $smarty->assign('INPUT_PASSWORD', xtc_draw_password_fieldNote(array ('name' => 'password', 'text' => ' '. (xtc_not_null(ENTRY_PASSWORD_TEXT) ? '<span class="inputRequirement">'.ENTRY_PASSWORD_TEXT.'</span>' : '')))); $smarty->assign('INPUT_CONFIRMATION', xtc_draw_password_fieldNote(array ('name' => 'confirmation', 'text' => ' '. (xtc_not_null(ENTRY_PASSWORD_CONFIRMATION_TEXT) ? '<span class="inputRequirement">'.ENTRY_PASSWORD_CONFIRMATION_TEXT.'</span>' : '')))); $smarty->assign('FORM_END', '</form>'); $smarty->assign('language', $_SESSION['language']); $smarty->caching = 0; $smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE)); $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/create_account.html'); $smarty->assign('language', $_SESSION['language']); $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');[/PHP] hier ist der php code findet da jemand ein fehler? wenn sich ein neuer kunde anmeldet fügt er keine kundennummer ein! danke im vorraus für jede antwort Link to comment Share on other sites More sharing options...
back@me Posted December 19, 2008 Report Share Posted December 19, 2008 Moin, folgendes ich hab das alles nach der anleitung gemacht aber es tut sich nichts ..... Hi, zuerst einmal lösch die Tags zur Formatierung der Schrift ([font=Verdana]...[/font]) und dann schau Dir bitte noch mal folgenden Beitrag in RUHE an und ließ, was dort erklärt steht: http://www.xt-commerce.com/forum/showpost.php?p=208664&postcount=21 Das komplette Thema wurde bereits mehrfach hier im Forum behandelt und auch ausführlich und verständlich erklärt: http://www.xt-commerce.com/forum/showthread.php?t=33277 ACHTUNG, folgendes muss unbedingt beachtet werden: - Es MUSS bereits ein Kunde mit einer Kundennummer existieren. - Die Zahl im Code $start_cid = 3490; kann durch eine beliebige ersetze werden (sie muss aber grösser sein, als die zuletzt vergebene Kundennummer) Eine Kundennummer, die nicht mit einer glatten Zahl beginnt (z.B. 1000, 2000 oder 3000) sieht dem Kunden gegenüber immer besser aus. Aus diesem Grund habe ich die 3490 gewählt! - Der oder die Buchstaben im Code $sign = 'HD'; können durch beliebige ersetzt werden - Das "minus" Zeichen im Code function new_customer_id($space='-'){ kann durch ein beliebiges ersetzt werden. Es handelt sich dabei nur um ein Trennzeichen. Ich denke, dass Du es damit hinbekommst! back@me Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.