2017-08-09 1 views
-2

Je sais que les variables globales ne sont pas recommandables à utiliser mais dans mon cas je n'ai pas d'autre alternative. Je voudrais stocker des données dans des variables globales pour une utilisation ultérieure dans le même script. Voici mon code:PHP Globals variable

<?php 
if(isset($_POST['details_submit'])){ 
    $body = json_decode(file_get_contents('php://input'),true); 

    $GLOBALS['details'] = ""; 
    foreach ($body as $key => $value) { 
     $details.= "Item : ".$value['item_name']; 
     $details.= ", Quantity : ".$value['quantity']; 
     $details.= ", Amount : ".$value['amount']; 
     $details.= ", Total : ".$value['total']."\n"; 
    } 
    echo $details; 

    $GLOBALS['subtotal'] = 0; 
    foreach ($body as $key => $value) { 
     $subtotal = $value['total'] + $subtotal; 
    } 
    echo $subtotal; 
}// end if statement 

if(isset($_POST['customer_submit'])){ 
    $customer = ""; 
    $customer.= "Customer : ".$_POST['Name']."\n"; 
    $customer.= "Email : ".$_POST['Email']."\n"; 
    $customer.= "Phone Number : ".$_POST['Phone']."\n"; 
    $customer.= "Residence : ".$_POST['Area']; 
    echo $customer; 

    $email = $_POST['Email']; 

    $to = '[email protected]'; 
    $subject = 'Natures Touch Order'; 
    $message = "<b>Customer Order</b> \n" 
        .$details."\n 
       <b>Customer Details</b> \n" 
        .$customer."\n 
       The subtotal is KSH ".$subtotal."."; 

    $headers = 'From: '.$email."\r\n"; 
      'X-Mailer: PHP/' . phpversion(); 
    $send1 = mail($to, $subject, $message, $headers); 
} 
?> 

Les variables globales sont details et subtotal comme indiqué dans mon code. La raison pour laquelle j'utilise des variables globales est parce que j'ai deux différentes instructions if et que j'aimerais utiliser certains des résultats dans la première instruction if dans la deuxième instruction if. Tout fonctionne bien, mais quand il s'agit d'envoyer le courrier, je reçois erreur Undefined variable details and subtotal. Se pourrait-il que les données ne soient pas stockées dans les variables lors de l'exécution de la première instruction if? Ou quel pourrait être le problème ??

+1

variables en php sont pas bloquer scope. –

+1

Note latérale '$ headers' a besoin d'une concaténation, pas de point-virgule. Le "X-Mailer: PHP /". phpversion() 'n'est pas inclus dans votre en-tête comme vous l'avez. – Rasclatt

Répondre