Demande d'explication
papyrus_12
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour les ami(e)s,
je dois ecrire un programme d'envoie d'sms en masse.
Les numeros sont uploadés à partir d'un formulaire dans un fichier .txt, maintenant si l'un de ces numeros appartient à un utilisateur qui est dans notre base de donnée, le slode de celui-ci doit etre incrementé de 10f.
Mon problème est que les numeros envoyés du fichier reçoivent les sms mais le solde ne s'incremente pas.
vraiment j'ai besoin de votre aide, si non je risque de passer à la casserole.
Voici mon code :
EDIT : Ajout des balises de code
je dois ecrire un programme d'envoie d'sms en masse.
Les numeros sont uploadés à partir d'un formulaire dans un fichier .txt, maintenant si l'un de ces numeros appartient à un utilisateur qui est dans notre base de donnée, le slode de celui-ci doit etre incrementé de 10f.
Mon problème est que les numeros envoyés du fichier reçoivent les sms mais le solde ne s'incremente pas.
vraiment j'ai besoin de votre aide, si non je risque de passer à la casserole.
Voici mon code :
<?php session_start(); if(isset($_POST['envoyer']) And !empty($_POST['nombresms']) And !empty($_FILES['destinataire']) And $_FILES['destinataire']['error'] == 0 And !empty($_POST['expediteur']) And !empty($_POST['message'])){ // initialization of the necessary variables for the program structure //initialisation des variable necessaire pour la structure du programme $compteurSms = 0; $smsErreur = 0; $smsSucces = 0; // receive the number of messages requested by the client //reception du nombre de message demandé par le client $nombreSms = strip_tags($_POST['nombresms']); $nombreSms = htmlspecialchars($nombreSms); // receive the recipient's number //reception du numero du destinataire $expediteur = strip_tags($_POST['expediteur']); $expediteur = htmlspecialchars($expediteur); // receipt and control of the file containing the customer's numbers, not complete control //recption et controle du fichier contenant les numeros du client, controle pas au complet if($_FILES['destinataire']['size'] < 2097152){ $info_fichier = pathinfo($_FILES['destinataire']['name']); $extension_upload = $info_fichier['extension']; $extension_autorises = array('txt'); if(in_array($extension_upload, $extension_autorises)){ $cart = "Joseph"; $destination = "Papyrus/".$cart."_".$info_fichier.".".$extension_upload; $deplacement = move_uploaded_file($_FILES['destinataire']['tmp_name'], $destination); // read the file to retrieve the numbers one by one! //lecture du fichier pour recuperer les numeros une à une ! $ouverture = fopen($destination, 'r+'); while($lecture = fgets($ouverture)){ $char ="+"; $prefix = 225; $lecture = $char.$prefix.$lecture; // infobip control //infobip control $to = $lecture; $text = $_POST['message']; $text = strip_tags($text); $text = htmlspecialchars($text); $username = "xxxxxxxx"; $password = "xxxxxxxx"; $from = $expediteur; $messageId = "xxxxxxxxxxx"; $postUrl = "https://83k51.api.infobip.com/sms/1/text/advanced"; // creation of SMS sending object // creation d'objet d'envoie d'sms $destination = array("messageId" => $messageId, "to" => $to); $message = array("from" => $from, "destinations" => array($destination), "text" => $text); $postData = array("messages" => array($message)); $postDataJson = json_encode($postData); $ch = curl_init(); $header = array("Content-Type:application/json", "Accept:application/json"); curl_setopt($ch, CURLOPT_URL, $postUrl); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_MAXREDIRS, 2); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postDataJson); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // response of the POST request $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $responseBody = json_decode($response); curl_close($ch); if ($httpCode >= 200 && $httpCode < 300) { $messages = $responseBody->messages; $compteurSms = $compteurSms + 1; $smsSucces = $smsSucces + 1; $compte = 0; // selection of the number in the database //selection du numero dans la base de donnee $requete = $base->query('SELECT * FROM clients WHERE Numero = "'.$num.'" '); $conteneur = $requete->fetch(); // check if the request is not null //verification si la requete n'est pas null if($conteneur['Pseudo'] != NULL){ $temp_user = $conteneur['Pseudo']; $compte = $conteneur['Solde'] + 10; // update user account //mise a jour du compte user $order = $base->prepare('UPDATE clients SET Solde = :solde WHERE Pseudo = "'.$temp_user.'"'); $order ->execute(array( 'solde' => $compte )); } } else { $compteurSms = $compteurSms + 1; $smsErreur = $smsErreur + 1; } } fclose($ouverture); $_SESSION['totalSms'] = $nombreSms; $_SESSION['smsSucces'] = $smsSucces; $_SESSION['smsErreur'] = $smsErreur; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx } else{ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx } } else{ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx } } else{ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; } ?>
EDIT : Ajout des balises de code
A voir également:
- Demande d'explication
- Foyer netflix explication - Accueil - Guide streaming
- Paris multiple 2/6 explication ✓ - Forum Loisirs / Divertissements
- Another earth explication fin - Forum Cinéma / Télé
- La blague des trois nains explication ✓ - Forum Loisirs / Divertissements
- Chambre 1408 explication fin ✓ - Forum Cinéma / Télé
2 réponses
Bonjour,
Commence par gérer correctement les éventuelles erreurs au niveau des requêtes
Pour ça, applique ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Je te conseille également de suivre les recommandations présentes ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Reviens nous voir une fois ces conseils appliqués avec ton code modifié si ton souci persiste.
PS: N'hésites pas à mettre des echo dans ton code pour essayer de voir si tu passes bien dans tes IF et voir le contenu de tes variables correspond bien à ce que tu attends....
Commence par gérer correctement les éventuelles erreurs au niveau des requêtes
Pour ça, applique ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Je te conseille également de suivre les recommandations présentes ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Reviens nous voir une fois ces conseils appliqués avec ton code modifié si ton souci persiste.
PS: N'hésites pas à mettre des echo dans ton code pour essayer de voir si tu passes bien dans tes IF et voir le contenu de tes variables correspond bien à ce que tu attends....
papyrus_12
Merci pour la reponse, je vais menager mon code et je verrai le resultat !
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, n'est-il pas plus simple de faire
UPDATE clients SET Solde = Solde + 10 WHERE ...?