2016-11-02 1 views
0

Bonjour J'ai donc mon formulaire de contact et tout fonctionne bien Ce que je veux faire est maintenant la PHP Générer un code unique/id par exemple « 002302103 » et le joindre à l'e-mail lorsque le courrier électronique est soumis. Fondamentalement, un numéro de référence aléatoire qui est généré chaque fois que le formulaire est utilisé et cet ensemble de nombres aléatoires est également envoyé à l'email. Est-ce que quelqu'un sait comment je vais à ce sujet?Générer un code/identifiant unique Dans le formulaire de contact? PHP/Ajax

Voici mon code php:

<?php 
if($_POST) 
{ 
    $to_Email  = "[email protected]"; 
    $subject  = 'Message from my website'; //Subject line for emails 


    //check if its an ajax request, exit if not 
    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { 

     //exit script outputting json data 
     $output = json_encode(
     array(
      'type'=>'error', 
      'text' => 'Request must come from Ajax' 
     )); 

     die($output); 
    } 

    //check $_POST vars are set, exit if any missing 
    if(!isset($_POST["userName"]) || !isset($_POST["userEmail"]) || !isset($_POST["userMessage"])) 
    { 
     $output = json_encode(array('type'=>'error', 'text' => 'Input fields are empty!')); 
     die($output); 
    } 

    //Sanitize input data using PHP filter_var(). 
    $user_Name  = filter_var($_POST["userName"], FILTER_SANITIZE_STRING); 
    $user_Email  = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL); 
    $user_Message  = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING); 

    $user_Message = str_replace("\&#39;", "'", $user_Message); 
    $user_Message = str_replace("&#39;", "'", $user_Message); 

    //additional php validation 
    if(strlen($user_Name)<4) // If length is less than 4 it will throw an HTTP error. 
    { 
     $output = json_encode(array('type'=>'error', 'text' => 'Name is too short or empty!')); 
     die($output); 
    } 
    if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation 
    { 
     $output = json_encode(array('type'=>'error', 'text' => 'Please enter a valid email!')); 
     die($output); 
    } 
    if(strlen($user_Message)<5) //check emtpy message 
    { 
     $output = json_encode(array('type'=>'error', 'text' => 'Too short message! Please enter something.')); 
     die($output); 
    } 

    //proceed with PHP email. 
    $headers = 'From: '.$user_Email.'' . "\r\n" . 
    'Reply-To: '.$user_Email.'' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

    $sentMail = @mail($to_Email, $subject, $user_Message . "\r\n\n" .'-- '.$user_Name. "\r\n" .'-- '.$user_Email, $headers); 

    if(!$sentMail) 
    { 
     $output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.')); 
     die($output); 
    }else{ 
     $output = json_encode(array('type'=>'message', 'text' => 'Hi '.$user_Name .'! Thank you for your email')); 
     die($output); 
    } 
} 
?> 

Merci à l'avance pour aider/me pointant dans la bonne direction

+0

Vous voulez une sorte de validation avec code unique/id ou son juste une sorte de numéro de référence? –

+0

Vous pouvez utiliser l'horodatage. dépend toujours de ce que vous essayez d'atteindre – Suraj

+0

@MayankPandeyz Juste un numéro de référence pour ainsi dire des nombres aléatoires qui sont juste différents à chaque fois que le formulaire est utilisé –

Répondre

1

Essayez quelque chose comme ceci:

echo mt_rand() . "\n"; 
echo mt_rand() . "\n"; 

Sa sortie est:

1604716014 
1478613278 

mt_rand() Reference:

Ajoutez ceci à votre message comme:

$subject = 'Message from my website - '.$mt_rand(); 
+0

Fonctionne parfaitement comment pourrais-je obtenir cela à afficher dans la ligne d'objet? $ subject = 'Message de mon site web'; J'ai joué avec mais ça brise la forme des idées? –

+0

Vérifiez ma réponse –

+0

mise à jour est ce que j'ai essayé à l'origine, il semble briser la forme étrange –

1

En utilisant time() comme mentionné ci vous donnera un moyen sortable pour créer des identifiants uniques. Concaténation également plus randomiser le résultat souhaité et garder encore sortable:

$uniqueId= time().mt_rand();