Ergebnis 1 bis 3 von 3

Thema: Sprachendatei in 'externes' Skript laden

  1. #1
    Azubi(ne) Avatar von Sysmatic
    Registriert seit
    01.10.2018
    Ort
    Thüringen
    Alter
    31
    Beiträge
    67
    Danke
    10
    Bekam 0 mal "Danke" in 0 Postings

    Standard Sprachendatei in 'externes' Skript laden

    Guten Morgen allerseits!

    Auf meiner Website ermögliche ich mit Sessions eine Sprachenauswahl.
    index.php:
    Code:
    //Language-Session    
        if(!isset($_GET["language"]))
        {
            if(!isset($_SESSION["language"]))
            {
                include('_include/lang/de.php');
                $_SESSION["language"] = 'de';
            }
            else
            {
                include('_include/lang/' . $_SESSION["language"]  . '.php');
            }
        }
        else
        {
            $_SESSION["language"] = $_GET["language"];
            include('_include/lang/' . $_SESSION["language"]  . '.php');
        }
    
    //End of Language-Session
    
    Nun will ich diese Sprachdateien auch in einem Mailing-Script verfügbar machen, welches nicht direkt in die Website eingebunden, sondern per Ajax angesprochen wird.

    Der Ajax-Teil:
    Code:
    /* ==================================================
       Contact Form
    ================================================== */
    
    BRUSHED.contactForm = function(){
        $("#contact-submit").on('click',function() {
            $contact_form = $('#contact-form');
            
            var fields = $contact_form.serialize();
            
            $.ajax({
                type: "POST",
                url: "_include/php/contact.php",
                data: fields,
                dataType: 'json',
                success: function(response) {
                    
                    if(response.status){
                        $('#contact-form input').val('');
                        $('#contact-form textarea').val('');
                    }
                    
                    $('#response').empty().html(response.html);
                }
            });
            return false;
        });
    
    }
    
    Und hier das aktuelle Mailing-Script, welches übersetzt werden soll:
    Code:
    <?php
    
        header('Cache-Control: no-cache, must-revalidate');
        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
        header('Content-type: application/json');
    
        require_once ('db_connect.php');
        $statement = $db->query('SELECT mail_contact FROM settings');
        $admin_email = $statement->fetch()['mail_contact'];
    
        $message_min_length = 5;
    
        //PHPmailer v6 Setup
        use PHPMailer\PHPMailer\PHPMailer;
        use PHPMailer\PHPMailer\Exception;
        require 'Exception.php';
        require 'PHPMailer.php';
        require 'SMTP.php'; 
    
        class Contact_Form 
        {
            function __construct($details, $admin_email, $message_min_length) 
            {
                $this->name = stripslashes($details['name']);
                $this->email = trim($details['email']);
                $this->subject = 'Blechlavine.com - Kontaktnachricht eingegangen';
                $this->message = stripslashes($details['message']);
                $this->admin_email = $admin_email;
                $this->message_min_length = $message_min_length;
                $this->response_status = 1;
                $this->response_html = '';
            }
    
            private function validateEmail() 
            {
                $regex ='/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i';
    
                if ($this->email == '')
                    return false;
    
                $string = preg_replace($regex, '', $this->email);
                return empty($string);
            }
    
            private function validateFields() 
            {
                // Check name
                if(!$this->name) 
                {
                    $this->response_html .= '<p>'.$lang['contact_errorname'].'</p>';
                    $this->response_status = 0;
                }
    
                // Check email
                if(!$this->email) 
                {
                    $this->response_html .= '<p>'.$lang['contact_erroremail'].'</p>';
                    $this->response_status = 0;
                }
    
                // Check valid email
                if( $this->email &&!$this->validateEmail() ) 
                {
                    $this->response_html .= '<p>'.$lang['contact_erroremail2'].'</p>';
                    $this->response_status = 0;
                }
    
                // Check message length
                if(!$this->message || strlen($this->message) < $this->message_min_length) 
                {
                    $this->response_html .= '<p>'.$lang['contact_errormessage'].'</p>';
                    $this->response_status = 0;
                }
            }
    
    
            private function sendEmail() 
            {
                //PHPmailer v6 Instanz
                $oMailer = new PHPMailer;
                $oMailer->CharSet = 'UTF-8';
    
                // SMTP aktivieren
                $oMailer->isSMTP();
    
                // SMTP-Server
                $oMailer->Host ='smtp.strato.de';
    
                // SMTP Authentifizierung aktivieren
                $oMailer->SMTPAuth = true;
    
                // SMTP Benutzer
                $oMailer->Username = $this->admin_email;
    
                // SMTP Benutzer Passwort
                $oMailer->Password = 'xxxxxx';
    
                // Verbindungssicherheit setzen ( SSL und TLS möglich )
                $oMailer->SMTPSecure = 'ssl';
    
                // Verbindungsport festlegen
                $oMailer->Port = 465;
    
                // Absender Adresse setzen
                $oMailer->From = $this->email;
    
                // Absender Alias setzen
                $oMailer->FromName = $this->name;
    
                // Empfänger Adresse und Alias hinzufügen
                $oMailer->addAddress($this->admin_email, 'Webmaster Blechlavine'); 
    
                // HTML aktivieren
                $oMailer->isHTML(true);
    
                // Betreff
                $oMailer->Subject = 'Blechlavine.com - Nachricht eingegangen';
    
                // Der Nachrichteninhalt als HTML
                $oMailer->Body = $this->message;
    
                // Alternativer Nachrichteninhalt für Clients, die kein HTML darstellen
                $oMailer->AltBody = strip_tags($oMailer->Body);
    
    
                //PHPmailer v6 Versand prüfen
                if(!$oMailer->send()) 
                {
                    $this->response_html .= '<p>'.$lang['contact_erroremail'].'</p>';
                    $this->response_status = 0;
                }
                else 
                {
                    $this->response_status = 1;
                    $this->response_html .= '<p>'.$lang['contact_success'].'</p>';
                    exit;
                } 
            }
    
            public function sendRequest() 
            {
                $this->validateFields();
                
                if($this->response_status)
                    $this->sendEmail();
    
                $response = array();
                $response['status'] = $this->response_status;   
                $response['html'] = $this->response_html;
    
                echo json_encode($response);
            }
        }
    
        $contact_form = new Contact_Form($_POST, $admin_email, $message_min_length);
        $contact_form->sendRequest();
    
    ?>
    
    Wie mach ich die Übersetzung möglich?

    Vielen Dank für eure Unterstützung!
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Mir raucht der Gulliver

  2. #2
    Moderator Avatar von Arne Drews
    Registriert seit
    20.01.2016
    Ort
    Friedrichstadt, NF
    Beiträge
    1.837
    Danke
    24
    Bekam 140 mal "Danke" in 139 Postings

    Standard AW: Sprachendatei in 'externes' Skript laden

    Zur Frage: Im Mailing-Skript einfach auch session_start(); verwenden und Du hast Zugriff auf die Session-Variablen.

    Nur mal als Anregung: Bevor ich mit IF-Ketten arbeite, nutze ich bspw. die Array-Funktionen von PHP:
    PHP-Code:
    $languages array_filter([
        
    'de',
        
    $_GET['language'] ?? null,
        
    $_SESSION['language'] ?? null
      
    ]);

    $_SESSION['language'] = end$languages );
    include_once 
    '_include/lang/' $_SESSION['language'] . '.php'
    Bei mir habe ich noch eine Routine drin, die anhand des User-Agent die primäre Sprache versucht herauszufinden. Das Ergebnis packe ich mit in das array_filter().
    Hinterher habe ich in $languages nur gültige Werte und übernehme den letzten Eintrag in die Session. Das setzt natürlich voraus, dass die Elemente im array_filter() nach Prio aufsteigend sortiert sind, damit der letzte die höchste hat.


    EDIT: Korrigiert von array_map() auf array_filter()
    Geändert von Arne Drews (14.11.2018 um 10:23 Uhr)

  3. #3
    Azubi(ne)
    Themenstarter
    Avatar von Sysmatic
    Registriert seit
    01.10.2018
    Ort
    Thüringen
    Alter
    31
    Beiträge
    67
    Danke
    10
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Sprachendatei in 'externes' Skript laden

    Hat geholfen, führt mich aber wieder zu einem anderen Thema.

    Deine Anregung werde ich nach dieser Odyssey umsetzen.
    Danke!

    Code:
    <?php
        session_start();
    
        header('Cache-Control: no-cache, must-revalidate');
        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
        header('Content-type: application/json');
    
        require_once ('db_connect.php');
    
        //Language-Session
        if(!isset($_GET["language"]))
        {
            if(!isset($_SESSION["language"]))
            {
                include('../lang/de.php');
                $_SESSION["language"] = 'de';
            }
            else
            {
                include('../lang/' . $_SESSION["language"]  . '.php');
            }
        }
        else
        {
            $_SESSION["language"] = $_GET["language"];
            include('../lang/' . $_SESSION["language"]  . '.php');
        }
        //End of Language-Session
        $contact_errorname = $lang['contact_errorname'];
        $contact_erroremail = $lang['contact_erroremail'];
        $contact_erroremail2 = $lang['contact_erroremail2'];
        $contact_errormessage = $lang['contact_errormessage'];
        $contact_fail = $lang['contact_fail'];
        $contact_success = $lang['contact_success'];
    
        $statement = $db->query('SELECT mail_contact FROM settings');
        $admin_email = $statement->fetch()['mail_contact'];
    
        $message_min_length = 5;
    
        //PHPmailer v6 Setup
        use PHPMailer\PHPMailer\PHPMailer;
        use PHPMailer\PHPMailer\Exception;
        require 'Exception.php';
        require 'PHPMailer.php';
        require 'SMTP.php'; 
    
        class Contact_Form 
        {
            function __construct($details, $admin_email, $message_min_length, $contact_errorname, $contact_erroremail, $contact_erroremail2, $contact_errormessage, $contact_fail, $contact_success) 
            {
                $this->name = stripslashes($details['name']);
                $this->email = trim($details['email']);
                $this->subject = 'Blechlavine.com - Kontaktnachricht eingegangen';
                $this->message = stripslashes($details['message']);
                $this->admin_email = $admin_email;
                $this->message_min_length = $message_min_length;
                $this->response_status = 1;
                $this->response_html = '';
                $this->contact_errorname = $contact_errorname;
                $this->contact_erroremail = $contact_erroremail;
                $this->contact_erroremail2 = $contact_erroremail2;
                $this->contact_errormessage = $contact_errormessage;
                $this->contact_fail = $contact_fail;
                $this->contact_success = $contact_success;
    
            }
    
            private function validateEmail() 
            {
                $regex ='/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i';
    
                if ($this->email == '')
                    return false;
    
                $string = preg_replace($regex, '', $this->email);
                return empty($string);
            }
    
            private function validateFields() 
            {
                // Check name
                if(!$this->name) 
                {
                    $this->response_html .= '<p>' . $this->contact_errorname . '</p>';
                    $this->response_status = 0;
                }
    
                // Check email
                if(!$this->email) 
                {
                    $this->response_html .= '<p>' . $this->contact_erroremail . '</p>';
                    $this->response_status = 0;
                }
    
                // Check valid email
                if( $this->email &&!$this->validateEmail() ) 
                {
                    $this->response_html .= '<p>' . $this->contact_erroremail2 . '</p>';
                    $this->response_status = 0;
                }
    
                // Check message length
                if(!$this->message || strlen($this->message) < $this->message_min_length) 
                {
                    $this->response_html .= '<p>' . $this->contact_errormessage . '</p>';
                    $this->response_status = 0;
                }
            }
    
    
            private function sendEmail() 
            {
                //PHPmailer v6 Instanz
                $oMailer = new PHPMailer;
                $oMailer->CharSet = 'UTF-8';
    
                // SMTP aktivieren
                $oMailer->isSMTP();
    
                // SMTP-Server
                $oMailer->Host ='smtp.strato.de';
    
                // SMTP Authentifizierung aktivieren
                $oMailer->SMTPAuth = true;
    
                // SMTP Benutzer
                $oMailer->Username = $this->admin_email;
    
                // SMTP Benutzer Passwort
                $oMailer->Password = 'xxxxx';
    
                // Verbindungssicherheit setzen ( SSL und TLS möglich )
                $oMailer->SMTPSecure = 'ssl';
    
                // Verbindungsport festlegen
                $oMailer->Port = 465;
    
                // Absender Adresse setzen
                $oMailer->From = $this->email;
    
                // Absender Alias setzen
                $oMailer->FromName = $this->name;
    
                // Empfänger Adresse und Alias hinzufügen
                $oMailer->addAddress($this->admin_email, 'Webmaster Blechlavine'); 
    
                // HTML aktivieren
                $oMailer->isHTML(true);
    
                // Betreff
                $oMailer->Subject = 'Blechlavine.com - Nachricht eingegangen';
    
                // Der Nachrichteninhalt als HTML
                $oMailer->Body = $this->message;
    
                // Alternativer Nachrichteninhalt für Clients, die kein HTML darstellen
                $oMailer->AltBody = strip_tags($oMailer->Body);
    
    
                //PHPmailer v6 Versand prüfen
                if(!$oMailer->send()) 
                {
                    $this->response_html .= '<p>' . $this->contact_fail . '</p>';
                    $this->response_status = 0;
                }
                else 
                {
                    $this->response_status = 1;
                    $this->response_html .= '<p>' . $this->contact_success . '</p>';
                    exit;
                } 
            }
    
            public function sendRequest() 
            {
                $this->validateFields();
                
                if($this->response_status)
                    $this->sendEmail();
    
                $response = array();
                $response['status'] = $this->response_status;   
                $response['html'] = $this->response_html;
    
                echo json_encode($response);
            }
        }
    
        $contact_form = new Contact_Form($_POST, $admin_email, $message_min_length, $contact_errorname, $contact_erroremail, $contact_erroremail2, $contact_errormessage, $contact_fail, $contact_success);
        $contact_form->sendRequest();
    
    ?>
    
    Geändert von Sysmatic (14.11.2018 um 14:29 Uhr)
    Mir raucht der Gulliver

Ähnliche Themen

  1. Werbung über externes CSS einbinden
    Von Busdriver im Forum HTML & CSS Forum
    Antworten: 0
    Letzter Beitrag: 21.04.2017, 15:46
  2. Externes Programm aufrufen
    Von enfrea im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 25.02.2009, 10:09
  3. Externes Laufwerk
    Von computer-freak im Forum Computer - Internet Forum
    Antworten: 1
    Letzter Beitrag: 29.01.2009, 10:11
  4. Externes Menü, aber wie?
    Von Rebekka im Forum Script-Archiv
    Antworten: 1
    Letzter Beitrag: 19.11.2006, 17:34
  5. TS² Externes Interface
    Von Gigazone im Forum Computer - Internet Forum
    Antworten: 5
    Letzter Beitrag: 07.02.2006, 19:13

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •