bräuchte Hilfe... achtung umfangreich *g*

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

  • bräuchte Hilfe... achtung umfangreich *g*

    Hi,

    ich beschäftige mich noch nicht so lang mit PHP; Programmen im allgemeinen und habe daher ein kleines Problem mit einem Webshop (Cauposhop classic 1.20d -> http://www.caupo.de) den ich gerade modifiziere.

    Folgendes, ich habe dort schon einige Funktionen, templates und neue Optionen eingebaut. Das hat selbst mit meinen eingeschränkten php kenntnissen ohne große probs bisher gut geklappt. Doch an dem Problem häng ich nun schon fast 3 tage und ich finde einfach keine lösung...

    Also, relevant ist die datei csc_order_exec.php in der die funktion function "CheckAdressInput" aufgerufen wird:

    Code:
    // Wenn neue oder geänderte Adresse ** if new or changed adress
    if ( $insert || strlen($insert_x) || $update || strlen($update_x) )
    {   
       // Checke kreditkarten-felder auf inhalt. ** Check creditcard fields 
       if (!$svCreditCard) $svCreditCard = "0";  // Wenn leer, setze auf "0" ** if empty set to 0
       if (!$svCreditCardNr) $svCreditCardNr = "0";
       
       // Überprüfe Adress-Felder ** Check fields
       $bAdressOK = CheckAdressInput
                (  $svSalutation,
                   $svFirstname,
                   $svSurname,
                   $svCompany,
                   $svStreet_Nr,
                   $svZipCode,
                   $svTown,
                   $svPhone,
                   $svEmail,
                   $svCreditCard,
                   $svCreditCardNr,
                   $svPassword,
                   $svPassword2
                );
       // Wenn OK, trage Adresse ein  ** if ok, insert adress
       if ($bAdressOK)
       {   
          WriteCustomer
          (  $nID,
             $svSalutation,
             $svFirstname,
             $svSurname,
             $svCompany,
             $svStreet_Nr,
             $svZipCode,
             $svTown,
             $svCountry,
             $svPhone,
             $svFax,
             $svEmail,
             $svCustomerNr,
             $svDeAdSalutation,
             $svDeAdFirstname,
             $svDeAdSurname,
             $svDeAdCompany,
             $svDeAdStreet,
             $svDeAdZipCode,
             $svDeAdTown,
             $svDeAdCountry,
             $svDeAdPhone,
             $svDeAdFax,
             $svDeAdEmail,
             $svCreditCard,
             $svCreditCardNr,
             $svCreditCardDate,
             $bCreditCardValid,
             $svBank,
             $svBankCode,
             $svBankAccount,
             $svPayment,
             $svPassword
             );
          
    	  
          // Ermittle Kunden-ID und Email ** Get customer-id and email adress
          $nAdressID = CheckCustomer ($svEmail, $svPassword);
          $svEmail = GetAdressField ($nAdressID, "email");
    
          // Führe Bestellung aus ** Execute the order
          $bExOrder = ExecuteOrder ($nAdressID, $VID);
    [b]
          if ($bExOrder) {  
    	  	 include ("$cfgTplPath/order_exec.tpl");
             DeleteBasket ($VID);
    [/b]		 
          }
          else  {
    	 include ("$cfgTplPath/cfg_err.inc.head.tpl");
             echo $cfgErrOrder[2];
             include ("$cfgTplPath/cfg_err.inc.bot.tpl");
    		}
       }
    }
    die funktion ansich sieht so aus:
    Code:
    function CheckAdressInput
             (  
    		    $svSalutation,
                $svFirstname,
                $svSurname,
                $svCompany,
                $svStreet_Nr,
                $svZipCode,
                $svTown,
                $svPhone,
                $svEmail,
                $svCreditCard,
                $svCreditCardNr,
                $svPassword,
                $svPassword2
             )
    {
    
    
       //Lese Fehler-Texte und funktionen zur verifizierung ein
       include ("inc/cfg_general.inc.php");
       include ("$cfgTplPath/cfg_err.inc.php");
    
       $bFieldOk = 1;
    
    
       //Überprüfe alle benötigten felder auf inhalt
       if ($svPassword != $svPassword2)
       {   
          echo $cfgErrAdr[0];
          $bFieldOk = 0;
       }
    [b]...und so weiter er checkt alle relevanten felder...[/b]
       if (!$svEmail)
       {   
          echo $cfgErrAdr[8];
          $bFieldOk = 0;
       }
       elseif (!CheckEmail($svEmail))
       {   
          echo $cfgErrAdr[9];
          $bFieldOk = 0;
       }
       return $bFieldOk;
    }
    so.. ich möchte erreichen das vor und nach der fehlermeldung ($cfgErrAdr[x] - die variablen sind in der datei cfg_err.inc.php definiert) jeweils ein template ("cfg_err.inc.head.tpl" und "cfg_err.inc.bot.tpl") geladen bzw. included wird, da ohne die neuen templates der untere teil der page nicht geladen wird und man nicht zurück zur bestellübersicht kommt (es wird nur ein text angezeigt).

    Ich habe das auch schon bei den meisten fehlermeldungen erreicht die templates zu includen (siehe oben), nur eben bei der funktion checkadressinput noch nicht, da er - wenn ich einfach davor und dahinter ein include hänge - das auch ausführt wenn die bestellung erfolgreich war.

    Und das soll er nicht; das Template das nach erfolgreicher bestellung angezeigt wird ("order_exec.tpl" soll also nicht in diese beiden "fehlertemplates" geparsed werden. Sonst wird das template nämlich falsch angezeigt.

    Ich hatte mir überlegt dies über eine if schleife zu realisieren, in der ich sage das er, wenn die funktion CheckAdressInput ein fehler gefunden hat, die beiden templates geladen werden, wenn die bestellung erfolgreich ist nicht.

    Leider waren meine versuche erfolglos, ich hoffe ich habe alles halbwegs verständlich erklärt, ansonsten bitte nachfragen!

    Im vorraus schon vielen dank für die Hilfe.

    Grtx...


    [Editiert von Shelak am 23-09-2001 um 17:20]
    Reality.sys corrupted! Reboot Universe? (Y/N)
Lädt...
X