Ankündigung

Einklappen
Keine Ankündigung bisher.

Teil einer Funktion nicht klar...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Teil einer Funktion nicht klar...

    Tagchen,

    ich habe durch Euch bereits das meiste meiner Probleme und Fragen lösen können. Danke dafür.

    Ich habe hier einmal eine Frage. Ich habe von meinem Provider ja meinen Mailer bekommen. Die meisten der Funktionen verstehe ich.

    Nur diese erschließt sich mir nicht. Darüber hinaus funzt alles auch ohne den unten aufgeführten Code Teil. Das da was überprüft wird, ist mir klar. Wird da was gekürzt ? Oder „beschnitten“ ?

    Hier der ganze Code (den ihr ja schon kennt…):

    PHP-Code:
    <?php

    ################################################################################################################################
    function check_email($email){
        return 
    eregi("^[_a-z0-9-]([-_.]?[a-z0-9])*@[a-z0-9]([-_.]?[a-z0-9])+[.][a-z0-9]+$",$email);
    }
    ##^=Zeilenanfang / $=Zeilenende##
    function check_telefon($telefon){
        return 
    eregi("^[0-9]*$",$telefon);
    }

    function 
    array_escape_and_strip($array)
    {
    if (!isset(
    $array_return)) $array_return '';
        if(!
    is_array($array)){
            return;
        }    
        foreach(
    $array AS $key => $inhalt){
            if(
    is_array($inhalt)){
                
    $array_return[$key] = array_escape_and_strip($inhalt);
            } else {
                if(
    get_magic_quotes_gpc()){
                    
    $array_return[$key] = trim(strip_tags($inhalt));
                    continue;
                } 
                
    $array_return[$key] = trim(strip_tags(addslashes($inhalt)));
            }
        }
        
    $array $array_return;
        return 
    $array;
    }
    function 
    array_unescape($array)
    {
    if (!isset(
    $array_return)) $array_return '';
        if(!
    is_array($array)){
            return;
        }
        foreach(
    $array AS $key => $inhalt){
            if(
    is_array($inhalt)){
                
    $array_return[$key] = array_escape_and_strip($inhalt);
            } else {
                
    $array_return[$key] = trim(stripslashes($inhalt));
            }
        }
        
    $array $array_return;
        return 
    $array;
    }
    ################################################################################################################################

    $ihre_email                 "altram@gmx.de"
    $betreff_der_nachrichten     "Eine Nachricht eines Besucher von www.btb-gerdes.de";

      
    $meldungen "";
      
    $error "";
      
    $write_db "";

      
    array_escape_and_strip(&$_POST);
    array_unescape(&$_POST);

    if(isset(
    $_POST['action'])){
        switch(
    $_POST['action']){
            case 
    'submit':    
                if(!
    check_email($_POST['email'])){
                    
    $meldungen .= "Bitte geben Sie eine gültige E-Mail Adresse ein.<br>";
                    
    $error 1;
                }
            
                if(!
    check_telefon($_POST['telefon'])){
                    
    $meldungen .= "Bitte geben Sie eine gültige Nummer ein.<br>";
                    
    $error 1;
                }
                
                if(empty(
    $_POST['nachricht'])){
                    
    $meldungen .= "Bitte geben Sie eine Nachricht ein.<br>";
                    
    $error 1;
                }
                
                if(
    $error) { break; }
                
                
    $message =  "Es wurde eine Nachricht fuer Sie hinterlassen:\n\n".
                            
    "Kontaktdaten:\n".
                            
    "Name: $_POST[name]\n".
                            
    "E-Mail: $_POST[email]\n".
                            
    "Telefon: $_POST[telefon]\n".
                            
    "Fax: $_POST[fax]\n".
                            
    "Uhrzeit: ".date('d.m.Y - H:i:s').
                            
    "\n\n".
                            
    "------------------------- Nachricht -------------------------\n\n".
                            
    "$_POST[nachricht]\n\n".
                            
    "--------------------------- ENDE ----------------------------\n\n";            
                
    $x = @mail($ihre_email,addslashes($betreff_der_nachrichten),$message,"from: $ihre_email");        
                if(
    $x){
                    
    $_POST = array();
                    
    $write_db 1;
                    break;
                }    
                
    $meldungen .= "Aufgrund eines technischen Fehlers konnten wir Ihre Nachricht nicht empfangen.<br>".
                              
    "Bitte setzen Sie sich anderweitig mit uns in Verbindung.<br>Vielen Dank für Ihr Verständnis!";
                break;    
        }
    }


    ?>
    Und hier der Teil, den ich nicht verstehe:

    PHP-Code:
    function array_escape_and_strip($array)
    {
    if (!isset(
    $array_return)) $array_return '';
        if(!
    is_array($array)){
            return;
        }    
        foreach(
    $array AS $key => $inhalt){
            if(
    is_array($inhalt)){
                
    $array_return[$key] = array_escape_and_strip($inhalt);
            } else {
                if(
    get_magic_quotes_gpc()){
                    
    $array_return[$key] = trim(strip_tags($inhalt));
                    continue;
                } 
                
    $array_return[$key] = trim(strip_tags(addslashes($inhalt)));
            }
        }
        
    $array $array_return;
        return 
    $array;
    }
    function 
    array_unescape($array)
    {
    if (!isset(
    $array_return)) $array_return '';
        if(!
    is_array($array)){
            return;
        }
        foreach(
    $array AS $key => $inhalt){
            if(
    is_array($inhalt)){
                
    $array_return[$key] = array_escape_and_strip($inhalt);
            } else {
                
    $array_return[$key] = trim(stripslashes($inhalt));
            }
        }
        
    $array $array_return;
        return 
    $array;

    Danke und schonmal ein schönes WE,

    Gruß Alex

  • #2
    Beide Funktionen gehen rekursiv durch ein Array und wenden verschiedene String-Funktionen auf die Inhalte an.

    Dei zweite Funktion scheint nicht ganz richtig zu sein. Dort wird, wenn es sich bei einem Element um ein Array handelt, "array_escape_and_strip" und nicht "array_unescape" aufgerufen. Oder ich verstehe den Sinn dahinter nicht..

    Wobei diese Sachen mit array_walk_recursive besser gelöst wären.

    Kommentar


    • #3
      Die Funktionen sind blanker Müll. Von der schlechten Einrückung mal abgesehen - was soll sowas:
      PHP-Code:
      function array_escape_and_strip($array)
      {
      if (!isset(
      $array_return)) $array_return ''
      PHP-Code:
          $array $array_return;
          return 
      $array
      if(get_magic_quotes_gpc())
      in einer Schleife,
      PHP-Code:
      $array_return '';
      ...
      $array_return[$key] = 
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar

      Lädt...
      X