#!/usr/bin/perl ############################################################# # Shopverwaltung # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Autor: Helmut Walter # E-Mail: webmaster@inspire-net.de # Webseite: http://www.inspire-world.de ############################################################# use CGI::Carp qw(fatalsToBrowser); # Dateiflock use Fcntl qw(:DEFAULT :flock); use CGI qw(:standard); use CGI; # Modul File Copy use File::Copy; use Archive::FRWtools; $object = new CGI; @names = $object->param(); %FORM = map {$_ => $object->param($_)} $object->param(); $| = 1; ############################################################## # Name des Programms $progname = "verwaltung.cgi"; # Name der Usershopadmin $ushopadmin = "shopadmin.cgi"; # Benoetigte Dateien einbinden require "setup/setup.pl"; require "setup/extraconfig.pl"; require "routinen/scriptlibrary.pl"; $copy = ©andversion; $hauptmenue = &hauptmenue; #$lud = cookie("shoplogin"); #($lu1, $lu2, $lu3) = split(/\|/, $lud); # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Aufrufparameter der Haupt und Modulroutinen # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # $subaufrufparameter = $FORM{'aktion'}; if ($subaufrufparameter eq '') { &ueberblick; } elsif ($subaufrufparameter =~ m/^(login|logincheck|register|sendkey|key|newshop|pwsend)$/) { &$subaufrufparameter; } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Startbildschirm # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # sub ueberblick { $sektionstitel = "Willkommen auf Webshopsystem.ch - Ihr professioneller Webshop Server"; &Headerout; print &tparser("$cgipfad/templates/usershopadmin/header.html"); print &tparser("$cgipfad/templates/usershopadmin/contentkopf.html"); print qq~
Sie sind auf der Suche nach einem Webshop System?!

Hier sind Sie richtig - in nur 5 Minuten, verkaufen auch Sie, Ihre Produkte über Ihren eigenen Webshop!

Wir bieten Ihnen ein kostenloses Webshopsystem inkl. Webspace, das Sie sofort selbst einrichten und völlig frei anpassen können.
Alle Einstellungen sind "kinderleicht" per Browserbasiertem Setup anpassbar.

Die Shopadministration kann weltweit von jedem Computer mit Internetzugang, aufgerufen und administrier werden.
Sie benötigen keine eigene Software, keine Programmierkentnisse und auch keinen eigenen freien Webspace (Speicherplatz)!

Klicken Sie links im Menü auf den Link "Regestrierung" um einen kostenlosen Webshop anzumelden, einzurichten und ausgiebig zu testen.
Sind Sie bereits registrierter Benutzer geben Sie bitte ihre Zugangsdaten ein um die Shopverwaltung aufzurufen.

Das Webshopsystem
Das Webshopsystem ist eine professionelle Software, die auf unserem Server (bei issp.at) läuft. Wir überwachen und erweitern das System laufend. Erneuerungen (Updates) werden von uns angekündigt und natürlich kostenlos in Ihren Webshop eingearbeitet!

Die Shop Verwaltung (Administration)
  1. Shopverwaltung Startseite mit Statistiken, Formular um den Shop zu schließen/öfnen und Newsausgabe
  2. Dies beinhaltet
    • Anzahl Shopartikel
    • Anzahl Shopbesucher
    • Kundenanzahl
    • Neue Bestellungen
    • Werbestatus (Shop mit/ohne Werbung, wie lange)
    • Shopstatus (offen/geschlossen)
    • Top 10 Artikel der Shopverkäufe
  3. Formular zum ändern der Benutzerdaten und ändern des Passwortes
  4. Hilfetexte auflisten, diese können insgesamt ausgedruckt werden
  5. Kontaktformular für Supportanfragen o.ä.
  6. Shop Bestellungen
    • Liste mit neu eingegangenen Bestellungen, diese können abgerufen werden und auf eine eigene Rechnungsvorlage gedruckt werden.
    • Rechnungsarchiv mit der Liste bearbeiteter Bestellungen. Hierbei können entweder alle angezeigt werden oder eine Auswahl nach Jahr und Monat.
  7. Shop Konfiguration mit der Möglichkeit der Anpassung von:
    • Shoptitel, max. 250 Zeichen
    • Homepagelinktitel und URL nebst Target
    • Darstellungsbreite des Shop-Templates und des Shopmenüs
    • Shopwährung und MwSt Berechnung
    • Währung im Shop
    • Anzahl Artikel pro Seite im Shop, Anzahl Artikel pro Seite in Shopverwaltung, Anzahl Kunden pro Seite in Shopverwaltung
    • Max. anzuzeigende Topangebote
    • Welches Shopmenü soll genutzt werden?
      • Alle Kategorien/Unterkategorien sichtbar
      • Unterkategorienauswahl von Hauptkategorie
      • Unterkategorienauswahl mit Auswahlliste
      • Unterkategorienauswahl in Shophauptseite
    • Vorschaubilder und große Artikelbilder in der Größe anpassen?
    • Default Ausgabereihenfolge der Shopartikel, Sortierung nach ID, Preis, Name auf und absteigend
  8. Anpassung der Zahlungsarten, Mwst. Sätze, Shopinhaberdaten nebst Bankverbindung und Versandkosten
  9. Einstellmöglichkeit der Länder in die geliefert wird nebst entsprechendem Versandkostenzuschlag.
  10. Shop Design
    • Vorabansicht aller Templates als Screenshots
    • Designauswahl eines Templates
    • Bearbeiten der CSS Definition
    • Header und Footer erstellen
    • Design, Inhalte der Startseite anpassen
  11. AGB/Impressum
    • Erstellen und bearbeiten der AGB und Impressumsinformationen
    • Erstellung und Verwaltung einer Kategorisierbaren Hilfe/FAQ für den Shop.
  12. Shopuploads
    • Uploadmöglichkeit für Dateien die im Shop Verwendung finden, dies können die AGB als Zip Datei sein, das Shoplogo oder Grafiken für Header/Footer
  13. Kundenverwaltung
    • Suche nach Kunden
    • Liste aller Kunden, es besteht hier die Möglichkeit einzelnen Kunden den Einkauf auf Rechnung zu ermöglichen
    • Newsletterversand an alle im System registrierten Kunden.
  14. Shopkategorien, Produktfruppen und Artikel
    • Anlegen von Haupt-, und Unterkategorien, diese können dabei aktiviert oder deaktiviert sein
    • Erstellen beliebiger Produktgruppendateien zur Zusammenfassung von Artikeln
    • Verwaltung von Artikeln mit vielen Einstellmöglichkeiten
  15. Verschiedene Shopparameter anpassen im Shopbetrieb
    • Mehrwertsteuer der Artikel ändern
    • Rechnungsnummer auf 1 setzen oder anderweitig anpassen
    • Alte Rechnungen löschen
Shop
  1. Warenkorb wird auch beim verlassen des Shops für 2 Stunden gespeichert
  2. Registrierte Kunden können Benutzerdaten ändern
  3. Bestellbestätigung wird auf Wunsch als extra HTML Attachement mitgesendet
  4. Suchfunktion
  5. Topartikel auf Startseite verlinkt
  6. Kontaktformular für Anfragen an Shopinhaber
  7. Hilfeseite, AGB, Kontaktformular
  8. Seitenweise Anzeige der Shopartikel und Suchergebnisse
  9. Bequeme Warenkorbverwaltung
  10. Kundencenter mit Verwaltungsfunktionen der Anschrift, Passwortdaten ändern, Zugangsdaten zusenden, Optional Speicherung der Bankdaten.


Wieso kostenlos?!
Der "kostenlose" Webshop ist limitiert auf 10 Produkt-Infoseiten und wird durch Sponsoren-Werbung finanziert!
Sie können natürlich jeder Zeit, auf ein kostengünstiges Webshopsystem umsteigen, bzw. die Limite der Produkt-Infoseiten erhöhen oder die Sponsoren-Werbung deaktivieren lassen.

Webshop mit Sponsoren-Werbung Webshop ohne Sponsoren-Werbung
Shop "mini" GRATIS
Limitiert auf 10 Produkt-Infoseiten
Preis: CHF 0.-*
Shop "mini"
Limitiert auf 10 Produkt-Infoseiten
Preis: CHF 5.-*
Weitere Angebote und Preise auf Anfrage.

Weitere Angebote und Preise auf Anfrage.

* Preis pro Monat, inkl. Webspace (Speicherplatz)
~; print &tparser("$cgipfad/templates/contentfuss.html"); } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Registrierung # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # sub register { $sektionstitel = "Shopserver - Registrierung, Schritt 1 von 2"; &Headerout; ############################################ # Evtl. abgelaufene Useranmeldungen loeschen my $verzeichnis = "$cgipfad/tmpuser"; my $alter = 86400; # In Sekunden angeben! opendir(DIR, $verzeichnis) || scripterror("Fehler: Kann $verzeichnis nicht oeffnen!",$!);; while (my $entry = readdir(DIR)) { $entry = $verzeichnis.'/'.$entry; unless (-f $entry) { next; # Verzeichnisse ausschließen ./ und ../ } my @stat = stat($entry); if ((time - $stat[8]) > $alter) { unlink($entry); } } closedir(DIR); print &tparser("$cgipfad/templates/usershopadmin/header.html"); print &tparser("$cgipfad/templates/usershopadmin/contentkopf.html"); opendir(DIR,"$cgipfad/user"); @ufiles = grep {/^.*(\.pl$)/i} readdir DIR; closedir(DIR); $gesshops = @ufiles; if ($gesshops < $maxshops) { # AGB auslesen open(F,"$cgipfad/setup/agb.dat")|| scripterror("Fehler: Kann $cgipfad/setup/agb.dat nicht oeffnen!",$!); &locksh(F); my $shopagb = join('',); close(F); print qq~
Schritt 1, Registrierung...
Erläuterungen zum Registrierungsablauf:
  1. Geben Sie unterhalb zunächst die erforderlichen Daten ein, es sind alle Felder auszufüllen.
  2. Achten Sie darauf das Sie eine korrekte E-Mail Adresse angeben, an diese werden die Registrierungsinformationen gesendet.
  3. Befolgen Sie dann die Anweisungen in der E-Mail um die Registrierung abzuschließen.

    Wird die Registrierung nicht binnen 24 Stunden abgeschlossen verfallen die hier angegebenen Daten.
Ihr Vor und Zuname
Ihre E-Mail Adresse
Ihre Homepage URL
Unsere AGB/Regeln
$shopagb
Einverstanden mit den AGB/Regeln
~; } else { print qq~
Keine Anmeldungen möglich


Es sind derzeit leider keine Shopanmeldungen möglich!

~; } print &tparser("$cgipfad/templates/contentfuss.html"); } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Registrierungsinformationen und Registrierungskey senden # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # sub sendkey { $sektionstitel = "Shopserver - Registrierungsdaten senden"; ############################### my $vzname = $FORM{'vzname'}; my $email = $FORM{'email'}; my $hpurl = $FORM{'hpurl'}; my $agb = $FORM{'agb'}; $vzname = datensaver($vzname); $email = datensaver($email); $hpurl = datensaver($hpurl); $agb = datensaver($agb); $email = lc($email); # Check auf doppelte E-Mail $vorhanden = 0; open(PRUEFUNG,"<$cgipfad/setup/emailliste.pl") || scripterror("Fehler: Kann setup/emailliste.pl nicht oeffnen!",$!); &lock(PRUEFUNG); while() { ($useremail,$regid) = split(/\|/,$_); chomp $regid; if ($email eq $useremail) { $vorhanden = 1; last; } } close(PRUEFUNG); if (-e "$cgipfad/tmpuser/$email.tmp") { $vorhanden = 1; } $vzname =~ s/ /_/g; $vzname = substr($vzname, 0, 50) if length($vzname) > 50; $hpurl = substr($hpurl, 0, 150) if length($hpurl) > 150; # Fehlerpruefung $fehlermeldung = ""; $fehler_gefunden = ""; # ----------------------------------------------------------------------- $errormeldung = "
  • Es existiert schon ein Benutzer mit der angegebenen E-Mail Adresse.\n" ; if ($vorhanden) { $fehlermeldung = $fehlermeldung.$errormeldung ; $fehler_gefunden = 1 ; } $errormeldung = "
  • Das Feld \"Ihr Vor und Zuname\" wurde nicht oder nicht mit korrekten Daten ausgefüllt. Es sind nur Buchstaben, Bindestrich, Punkt und das Leerzeichen zugelassen.\n" ; if (($vzname eq '') || ($vzname !~ /^([a-zA-Z-äöüÄÖÜß][a-zA-ZäöüÄÖÜß_\.\-]*)$/)) { $fehlermeldung = $fehlermeldung.$errormeldung ; $fehler_gefunden = 1 ; } $errormeldung = "
  • Bitte geben Sie eine gültige E-Mail Adresse ein.\n"; if ($email !~ /^([a-zA-Z0-9][a-zA-Z_0-9-\.]*)(\@)([a-zA-Z0-9][a-zA-Z_0-9-\.]*[a-zA-Z0-9])(\.)([a-zA-Z0-9]*)$/) { $fehlermeldung = $fehlermeldung.$errormeldung ; $fehler_gefunden = 1 ; } $errormeldung = "
  • Das Feld \"Ihre Homepage URL\" wurde nicht korrekt ausgefüllt.\n" ; if ((length($hpurl) < 12 || $hpurl !~ /^http:\/\//)) { $fehlermeldung = $fehlermeldung.$errormeldung ; $fehler_gefunden = 1 ; } $errormeldung = "
  • Die Checkbox \"Einverstanden mit den AGB/Regeln\" wurde nicht bestätigt.\n" ; if ($agb !~ /^JA$/) { $fehlermeldung = $fehlermeldung.$errormeldung ; $fehler_gefunden = 1 ; } # ----------------------------------------------------------------------- if ($fehler_gefunden) { &fehlerausgabeverwaltung; exit; } else { ############################### # Daten zwischenspeichern und Mail senden $svzname = "$vzname"; $svzname =~ s/_/ /g; $randomid = &pw_gen("15", "3", "0"); $regtmp = "$svzname|$email|$hpurl|$agb"; &writelinie("$regtmp", "$cgipfad/tmpuser/$randomid.tmp"); $leertmp = ''; &writelinie("$leertmp", "$cgipfad/tmpuser/$email.tmp"); # Mail an User my $mailbodyt = <\n"; print MAIL "To: $email ($svzname)\n"; print MAIL "From: $adminemail ($sitetitel)\n"; print MAIL "Subject: Ihre Registrierungsinformationen\n\n"; print MAIL $mailbodyt; print MAIL "\n\n"; print MAIL "Gesendet am: $heutiges_datum\n"; close MAIL; ############################### &Headerout; print &tparser("$cgipfad/templates/usershopadmin/header.html"); print qq~
    $sektionstitel
    Ihre Anmeldungsdaten wurden gespeichert. Sie erhalten nun eine E-Mail mit weiteren Informationen. Bitte befolgen Sie nun die Anweisungen in der E-Mail um die Registrierung erfolgreich abzuschließen.

    Sie werden in 10 Sekunden automatisch weitergeleitet, wenn ihr Browser keine Weiterleitung unterstützt klicken Sie bitte auf diesen Link

    $clink
    ~; } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Userame und Registrierungskey eingeben # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # sub key { $sektionstitel = "Shopserver - Registrierung, Schritt 2 von 2"; &Headerout; print &tparser("$cgipfad/templates/usershopadmin/header.html"); print &tparser("$cgipfad/templates/usershopadmin/contentkopf.html"); print qq~
    Schritt 2, Registrierung abschließen und Shop anlegen
    Erläuterungen zum Registrierungsablauf:
    1. Geben Sie unterhalb zunächst einen Benutzernamen an, dieser darf nur aus Buchstaben und Zahlen bestehen und sollte zwischen 5 und 15 Zeichen lang sein.
    2. Geben Sie dann den zugesandten Registrierungsschlüssel in das zweite Feld ein.
    3. Sie erhalten nach absenden des Formulares alle Daten per E-Mail zugestellt um ihren Shop bearbeiten zu können.

      Das Passwort wird vom System generiert, dies können Sie später aber ändern im Adminbereich.
    Gewünschter Benutzername
    Registrierungsschlüssel
    ~; print &tparser("$cgipfad/templates/contentfuss.html"); } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Registrierungsinformationen speichern und neuen Shop anlegen # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # sub newshop { $sektionstitel = "Shopserver - Registrierungsdaten abgeschlossen"; ############################### my $username = $FORM{'username'}; my $key = $FORM{'key'}; $username = datensaver($username); $key = datensaver($key); # Check auf doppelten Username $namevorhanden = 0; open(PRUEFUNG,"<$cgipfad/setup/mitgliederliste.pl") || scripterror("Fehler: Kann setup/mitgliederliste.pl nicht oeffnen!",$!); &lock(PRUEFUNG); while() { ($loginname,$loginid) = split(/\|/,$_); chomp $loginid; if ($username eq $loginname) { $namevorhanden = 1; last; } } close(PRUEFUNG); $wieviele = length($username); # Fehlerpruefung $fehlermeldung = ""; $fehler_gefunden = ""; # ----------------------------------------------------------------------- $errormeldung = "
  • Es wurde kein passender Registrierschlüssel gefunden, bitte Eingabe überprüfen\n" ; if (!-e "$cgipfad/tmpuser/$key.tmp") { $fehlermeldung = $fehlermeldung.$errormeldung ; $fehler_gefunden = 1 ; } $errormeldung = "
  • Es existiert schon ein Benutzer mit dem angegebenen Benutzernamen.\n" ; if ($namevorhanden) { $fehlermeldung = $fehlermeldung.$errormeldung ; $fehler_gefunden = 1 ; } $errormeldung = "
  • Das Feld \"Gewünschter Benutzername\" wurde nicht oder nicht mit korrekten Daten ausgefüllt. Es sind nur Buchstaben und Zahlen zugelassen.\n" ; if (($username eq '') || ($username !~ /^([a-zA-Z0-9äöüÄÖÜß]*)$/)) { $fehlermeldung = $fehlermeldung.$errormeldung ; $fehler_gefunden = 1 ; } $errormeldung = "
  • Das Feld \"Gewünschter Benutzername\" enthält nicht die benötigte Anzahl an Zeichen. Es wurden $wieviele Zeichen angegeben, erlaubt sind zwischen 5 und 15 Zeichen. \n" ; if ((length($username) < 5 || length($username) > 15)) { $fehlermeldung = $fehlermeldung.$errormeldung ; $fehler_gefunden = 1 ; } # ----------------------------------------------------------------------- if ($fehler_gefunden) { &fehlerausgabeverwaltung; exit; } else { ############################### # Daten speichern Shop anlegen und Mail senden # Temp Daten lesen @tmpusr = &DateialsZeile("$cgipfad/tmpuser/$key.tmp"); # Usernummer generieren open(DATEI,"+<$cgipfad/setup/membercounter.pl") || scripterror("Fehler: Kann Datei setup/membercounter.pl nicht oeffnen!",$!); &lock(DATEI); @lastentryid = ; seek(DATEI,0,0); $last_id = $lastentryid[0] + 1; $last_id = sprintf("%6d",$last_id); $last_id =~ tr/ /0/; print DATEI "$last_id"; &unlock(DATEI); close(DATEI); chmod(0666, "$cgipfad/setup/membercounter.pl"); # wenn Datei nicht vorhanden... if (!-e "$cgipfad/user/$last_id.pl") { # Emailliste speichern $emailsave = "$tmpusr[1]|$last_id\n"; &printfile("$emailsave", "$cgipfad/setup/emailliste.pl"); # Memberliste speichern $membersave = "$username|$last_id\n"; &printfile("$membersave", "$cgipfad/setup/mitgliederliste.pl"); # Userdatei anlegen $genpassuser = &pw_gen("10", "3", "0"); $userfiledaten = "$username|$genpassuser|$tmpusr[0]|$tmpusr[1]|$tmpusr[2]|s$last_id"; &writelinie("$userfiledaten", "$cgipfad/user/$last_id.pl"); } else { scripterror("Fehler: Es existiert bereits eine Datei die angelegt werden soll!",$!); exit; } ################################ # Shopdateien anlegen # HTML Hauptverzeichnis fuer Shoppics und dergl. mkdir ("$htmlpfad/s$last_id",0777) || scripterror("Fehler: Kann neues HTML-Shopverzeichnis $htmlpfad/s$last_id nicht anlegen!",$!); chmod(0777, "$htmlpfad/s$last_id"); # HTML Verzeichnis fuer kleine Shoppics mkdir ("$htmlpfad/s$last_id/mini",0777) || scripterror("Fehler: Kann neues HTML-Shopverzeichnis $htmlpfad/s$last_id/mini nicht anlegen!",$!); chmod(0777, "$htmlpfad/s$last_id/mini"); # HTML Verzeichnis fuer grosse Shoppics mkdir ("$htmlpfad/s$last_id/maxi",0777) || scripterror("Fehler: Kann neues HTML-Shopverzeichnis $htmlpfad/shops/s$last_id/maxi nicht anlegen!",$!); chmod(0777, "$htmlpfad/s$last_id/maxi"); # CGI Verzeichnis fuer Shop anlegen. mkdir ("$cgipfad/shops/s$last_id",0755) || scripterror("Fehler: Kann neues CGI-Shopverzeichnis s$last_id nicht anlegen!",$!); chmod(0755, "$cgipfad/shops/s$last_id"); # CGI Unterverzeichnisse fuer Shop anlegen. mkdir ("$cgipfad/shops/s$last_id/artikel",0777) || scripterror("Fehler: Kann neues CGI-Shopverzeichnis s$last_id/artikel nicht anlegen!",$!); chmod(0777, "$cgipfad/shops/s$last_id/artikel"); mkdir ("$cgipfad/shops/s$last_id/bestellungen",0777) || scripterror("Fehler: Kann neues CGI-Shopverzeichnis s$last_id/bestellungen nicht anlegen!",$!); chmod(0777, "$cgipfad/shops/s$last_id/bestellungen"); mkdir ("$cgipfad/shops/s$last_id/kunden",0777) || scripterror("Fehler: Kann neues CGI-Shopverzeichnis s$last_id/kunden nicht anlegen!",$!); chmod(0777, "$cgipfad/shops/s$last_id/kunden"); mkdir ("$cgipfad/shops/s$last_id/menue",0777) || scripterror("Fehler: Kann neues CGI-Shopverzeichnis s$last_id/menue nicht anlegen!",$!); chmod(0777, "$cgipfad/shops/s$last_id/menue"); mkdir ("$cgipfad/shops/s$last_id/setup",0777) || scripterror("Fehler: Kann neues CGI-Shopverzeichnis s$last_id/setup nicht anlegen!",$!); chmod(0777, "$cgipfad/shops/s$last_id/setup"); mkdir ("$cgipfad/shops/s$last_id/tmpuser",0777) || scripterror("Fehler: Kann neues CGI-Shopverzeichnis s$last_id/tmpuser nicht anlegen!",$!); chmod(0777, "$cgipfad/shops/s$last_id/tmpuser"); mkdir ("$cgipfad/shops/s$last_id/warenkorb",0777) || scripterror("Fehler: Kann neues CGI-Shopverzeichnis s$last_id/warenkorb nicht anlegen!",$!); chmod(0777, "$cgipfad/shops/s$last_id/warenkorb"); # .htaccess Dateien anlegen in Shopunterverzeichnissen $htaccessfileinhalt = qq~AuthType Basic Order Allow,Deny Deny from all Order Allow,Deny Deny from all ~; &writelinie("$htaccessfileinhalt", "$cgipfad/shops/s$last_id/artikel/.htaccess"); &writelinie("$htaccessfileinhalt", "$cgipfad/shops/s$last_id/bestellungen/.htaccess"); &writelinie("$htaccessfileinhalt", "$cgipfad/shops/s$last_id/kunden/.htaccess"); &writelinie("$htaccessfileinhalt", "$cgipfad/shops/s$last_id/menue/.htaccess"); &writelinie("$htaccessfileinhalt", "$cgipfad/shops/s$last_id/setup/.htaccess"); &writelinie("$htaccessfileinhalt", "$cgipfad/shops/s$last_id/tmpuser/.htaccess"); &writelinie("$htaccessfileinhalt", "$cgipfad/shops/s$last_id/warenkorb/.htaccess"); ################################ # Dateien kopieren und CHMOD setzen # Shophauptdatei copy("$cgipfad/orginal/index.cgi","$cgipfad/shops/s$last_id/index.cgi") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/index.cgi kopieren!",$!); chmod(0755, "$cgipfad/shops/s$last_id/index.cgi") || scripterror("Fehler: Kann Datei shops/s$last_id/index.cgi nicht mit chmod 755 versehen!",$!); # Datei in artikel copy("$cgipfad/orginal/artikel/topangebote.katalog","$cgipfad/shops/s$last_id/artikel/topangebote.katalog") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/artikel/topangebote.katalog kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/artikel/topangebote.katalog") || scripterror("Fehler: Kann Datei shops/s$last_id/artikel/topangebote.katalog nicht mit chmod 666 versehen!",$!); # Dateien in kunden copy("$cgipfad/orginal/kunden/emailliste.pl","$cgipfad/shops/s$last_id/kunden/emailliste.pl") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/kunden/emailliste.pl kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/kunden/emailliste.pl") || scripterror("Fehler: Kann Datei shops/s$last_id/kunden/emailliste.pl nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/kunden/membercounter.pl","$cgipfad/shops/s$last_id/kunden/membercounter.pl") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/kunden/membercounter.pl kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/kunden/membercounter.pl") || scripterror("Fehler: Kann Datei shops/s$last_id/kunden/membercounter.pl nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/kunden/mitgliederliste.pl","$cgipfad/shops/s$last_id/kunden/mitgliederliste.pl") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/kunden/mitgliederliste.pl kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/kunden/mitgliederliste.pl") || scripterror("Fehler: Kann Datei shops/s$last_id/kunden/mitgliederliste.pl nicht mit chmod 666 versehen!",$!); # Dateien in menue copy("$cgipfad/orginal/menue/counter.dat","$cgipfad/shops/s$last_id/menue/counter.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/menue/counter.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/menue/counter.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/menue/counter.dat nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/menue/subcounter.dat","$cgipfad/shops/s$last_id/menue/subcounter.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/menue/subcounter.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/menue/subcounter.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/menue/subcounter.dat nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/menue/topcat.dat","$cgipfad/shops/s$last_id/menue/topcat.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/menue/topcat.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/menue/topcat.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/menue/topcat.dat nicht mit chmod 666 versehen!",$!); # Dateien in setup copy("$cgipfad/orginal/setup/agb.dat","$cgipfad/shops/s$last_id/setup/agb.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/agb.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/agb.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/agb.dat nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/artikelcounter.dat","$cgipfad/shops/s$last_id/setup/artikelcounter.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/artikelcounter.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/artikelcounter.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/artikelcounter.dat nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/floodsperre.dat","$cgipfad/shops/s$last_id/setup/floodsperre.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/floodsperre.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/floodsperre.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/floodsperre.dat nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/impressum.dat","$cgipfad/shops/s$last_id/setup/impressum.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/impressum.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/impressum.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/impressum.dat nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/mwst.dat","$cgipfad/shops/s$last_id/setup/mwst.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/mwst.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/mwst.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/mwst.dat nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/shopopenclosed.pl","$cgipfad/shops/s$last_id/setup/shopopenclosed.pl") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/shopopenclosed.pl kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/shopopenclosed.pl") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/shopopenclosed.pl nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/userbank.pl","$cgipfad/shops/s$last_id/setup/userbank.pl") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/userbank.pl kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/userbank.pl") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/userbank.pl nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/versandkosten.dat","$cgipfad/shops/s$last_id/setup/versandkosten.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/versandkosten.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/versandkosten.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/versandkosten.dat nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/zahlungsarten.dat","$cgipfad/shops/s$last_id/setup/zahlungsarten.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/zahlungsarten.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/zahlungsarten.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/zahlungsarten.dat nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/defaultdesign.pl","$cgipfad/shops/s$last_id/setup/defaultdesign.pl") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/defaultdesign.pl kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/defaultdesign.pl") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/defaultdesign.pl nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/shopheader.html","$cgipfad/shops/s$last_id/setup/shopheader.html") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/shopheader.html kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/shopheader.html") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/shopheader.html nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/shopfuss.html","$cgipfad/shops/s$last_id/setup/shopfuss.html") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/shopfuss.html kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/shopfuss.html") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/shopfuss.html nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/startseitendaten.dat","$cgipfad/shops/s$last_id/setup/startseitendaten.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/startseitendaten.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/startseitendaten.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/startseitendaten.dat nicht mit chmod 666 versehen!",$!); copy("$cgipfad/orginal/setup/selbstabholer.dat","$cgipfad/shops/s$last_id/setup/selbstabholer.dat") || scripterror("Fehler: Kann Datei nicht nach shops/s$last_id/setup/selbstabholer.dat kopieren!",$!); chmod(0666, "$cgipfad/shops/s$last_id/setup/selbstabholer.dat") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/selbstabholer.dat nicht mit chmod 666 versehen!",$!); # CSS Datei kopieren copy("$htmlpfad/defaultcss/design.css","$htmlpfad/s$last_id/design.css") || scripterror("Fehler: Kann Datei nicht nach s$last_id/design.css kopieren!",$!); chmod(0666, "$htmlpfad/s$last_id/design.css") || scripterror("Fehler: Kann Datei s$last_id/design.css nicht mit chmod 666 versehen!",$!); open(FILE,">$cgipfad/shops/s$last_id/setup/usershopsetup.pl") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/usershopsetup.pl nicht oeffnen!",$!); print FILE qq~########################################### # Shopsetupdaten ########################################### # Shopnummer \$shopnummer = "s$last_id"; # Shoptitel fuer Browsertitelzeile \$shoptitel = "Mein Webshop - webshopsystem.ch"; # Shopinhabername \$shopinhabername = "$tmpusr[0]"; # Shopinhaberemail \$shopkontaktmail = '$tmpusr[1]'; # Homepagelink und Parameter in Fusszeile \$shopbottomlink = "$tmpusr[2]"; \$shopbottomtext = "Homepage"; \$shopbottomtarget = "_blank"; # Kundenregistration notwendig fuer Einkauf? \$nurreg = "JA"; # Artikel pro Seite \$aps = "4"; # Verwendete Waehrung \$geld = "EUR"; # Verwendetes Menue static/dynamic \$menueart = "static"; # Kontodaten im Impressum JA/NEIN \$zk = "NEIN"; ########################################### 1; ~; close(FILE); chmod(0666, "$cgipfad/shops/s$last_id/setup/usershopsetup.pl") || scripterror("Fehler: Kann Datei shops/s$last_id/setup/usershopsetup.pl nicht mit chmod 666 versehen!",$!); # Shopstatistikdatei my $regdat = &aktuelles_datum(); $reglogfiledaten = "$regdat|||0|||"; &writelinie("$reglogfiledaten", "$cgipfad/shopstat/s$last_id.pl"); ################################ # Mail an User my $mailbodyt = <\n"; print MAIL "To: $tmpusr[1] ($tmpusr[0])\n"; print MAIL "From: $adminemail ($sitetitel)\n"; print MAIL "Subject: Ihr Shop wurde angelegt\n\n"; print MAIL $mailbodyt; print MAIL "\n\n"; print MAIL "Gesendet am: $heutiges_datum\n"; close MAIL; ################################ # Mail an Admin my $mailbodyta = <\n"; print MAIL "To: $adminemail ($sitetitel)\n"; print MAIL "From: $adminemail ($sitetitel)\n"; print MAIL "Subject: Neuer Shop angelegt\n\n"; print MAIL $mailbodyta; print MAIL "\n\n"; print MAIL "Gesendet am: $heutiges_datum\n"; close MAIL; ############################### # Temporaere User Dateien loeschen unlink("$cgipfad/tmpuser/$key.tmp"); unlink("$cgipfad/tmpuser/$tmpusr[1].tmp"); ############################### &Headerout; print &tparser("$cgipfad/templates/usershopadmin/header.html"); print qq~
    $sektionstitel
    Ihre Anmeldungsdaten wurden gespeichert und der Shop angelegt. Sie erhalten nun eine E-Mail mit allen nötigen Informationen.

    Sie werden in 10 Sekunden automatisch weitergeleitet, wenn ihr Browser keine Weiterleitung unterstützt klicken Sie bitte auf diesen Link

    $clink
    ~; } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Loginformular und Passwortversand fuer registrierte Benutzer # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # sub login { $sektionstitel = "Login und Passwort versenden Formular"; &Headerout; print &tparser("$cgipfad/templates/usershopadmin/header.html"); print &tparser("$cgipfad/templates/usershopadmin/contentkopf.html"); print qq~
    » Login für Shopadministration
    $loginfehlertext  
    Shopinhaber Username
    Shopinhaber Passwort
    Hinweis!
    Bitte sicherstellen das der Browser Cookies akzeptiert, ansonsten ist kein Login möglich.



    » Zugangsdaten vergessen?
    Geben Sie ihre E-Mail Adresse an um die Zugangsdaten zu ihrem Shop zu erhalten
    E-Mail Adresse
    ~; print &tparser("$cgipfad/templates/contentfuss.html"); } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Logincheck und Cookiesetzen # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # sub logincheck { my $loginpass = $FORM{'loginpass'}; my $loginuser = $FORM{'loginuser'}; $loginpass = datensaver($loginpass); $loginuser = datensaver($loginuser); if ($loginpass eq '' || $loginuser eq '') { $loginfehlertext = "Keine oder falsche Daten eingegeben!"; &login($loginfehlertext); exit; } my @zeilendaten =(); my @gesuchte =(); my $linie; open(DATEI, "<$cgipfad/setup/mitgliederliste.pl") || scripterror("Fehler: Kann $cgipfad/setup/mitgliederliste.pl nicht oeffnen!",$!); &lock(DATEI); while ($linie = ) { chomp($linie); @zeilendaten = split(/\|/, $linie); if ($loginuser eq $zeilendaten[0]) { $memberfile = "$zeilendaten[1]"; #@gesuchte = split(/\|/, $linie); last; } } close(DATEI); unless (-e "$cgipfad/user/$memberfile.pl") { $loginfehlertext = "Keine oder falsche Daten eingegeben!"; &login($loginfehlertext); exit; } my @openuser = &DateialsZeile("$cgipfad/user/$memberfile.pl"); my $salt = "sz"; my $cryptedlogin = crypt($loginpass, $salt); my $cryptedopenuser = crypt($openuser[1], $salt); if (($loginuser eq $openuser[0]) && ($cryptedlogin eq $cryptedopenuser)) { print "Set-Cookie: shoplogin=$openuser[0]|$cryptedopenuser|$openuser[5]; \n"; # Loginlog my $aktuelles_datum = &aktuelles_datum(); my @st = &DateialsZeile("$cgipfad/shopstat/$openuser[5].pl"); $printlogfiledaten = "$st[0]|$aktuelles_datum|$st[2]|$st[3]|$st[4]|$st[5]|$st[6]"; &writelinie("$printlogfiledaten", "$cgipfad/shopstat/$openuser[5].pl"); print "Location: $cgiverzeichnis/$ushopadmin \n\n"; } else { $loginfehlertext = "Keine oder falsche Daten eingegeben!"; &login($loginfehlertext); exit; } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Vergessene Zugangsdaten senden # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # sub pwsend { $sektionstitel = "Zugangsdaten senden"; my $shopemail = $FORM{'shopemail'}; $shopemail = lc($shopemail); # Festellen der Shopid = Userdateinummer my $sidfound = 0; open(CHECK,"<$cgipfad/setup/emailliste.pl") || scripterror("Fehler: Kann setup/emailliste.pl nicht oeffnen!",$!); &lock(CHECK); while() { my ($regmail,$shopnum) = split(/\|/,$_); chomp $shopnum; if ($shopemail eq $regmail) { $shopnummer = "$shopnum"; $sidfound = 1; last; } } close(CHECK); # Fehlerpruefung $fehlermeldung = ""; $fehler_gefunden = ""; # ----------------------------------------------------------------------- $errormeldung = "
  • Zu der angegebenen E-Mail Adresse wurden keine Daten gefunden!\n" ; if (!$sidfound) { $fehlermeldung = $fehlermeldung.$errormeldung ; $fehler_gefunden = 1 ; } # ----------------------------------------------------------------------- if ($fehler_gefunden) { &fehlerausgabeverwaltung; exit; } else { my @userfile = &DateialsZeile("$cgipfad/user/$shopnummer.pl"); ################################ # Mail an User my $pwmailbodyt = <\n"; print MAIL "To: $userfile[3] ($userfile[2])\n"; print MAIL "From: $adminemail ($sitetitel)\n"; print MAIL "Subject: Ihre Zugangsdaten\n\n"; print MAIL $pwmailbodyt; print MAIL "\n\n"; print MAIL "Gesendet am: $heutiges_datum\n"; close MAIL; &Headerout; print &tparser("$cgipfad/templates/usershopadmin/header.html"); print qq~
    $sektionstitel
    Ihre Zugangsdaten wurden gefunden, Sie erhalten nun eine E-Mail mit allen nötigen Informationen.

    Sie werden in 10 Sekunden automatisch weitergeleitet, wenn ihr Browser keine Weiterleitung unterstützt klicken Sie bitte auf diesen Link

    $clink
    ~; } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Fehlermeldungen ausgeben # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # sub fehlerausgabeverwaltung { $sektionstitel = "Fehler festgestellt!"; &Headerout; print &tparser("$cgipfad/templates/usershopadmin/header.html"); print &tparser("$cgipfad/templates/usershopadmin/contentkopf.html"); print qq~

      $fehlermeldung

    Zurück
    ~; print &tparser("$cgipfad/templates/usershopadmin/contentfuss.html"); exit; } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # # Hauptmenue ausgeben fuer Registrierung, PW vergessen und Login # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # sub hauptmenue { $hauptmenueinhalt = &tparser("$cgipfad/templates/usershopadmin/hauptmenue.html"); } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #