Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.48 KB | None | 0 0
  1. <?php
  2. header ('Content-Type: application/json');
  3.  
  4. function response($outputSpeech, $shouldEndSession = false)
  5. {
  6.   return json_encode([
  7.     'version' => '1.0',
  8.     'response' => [
  9.       'outputSpeech' => [
  10.         'type' => 'SSML',
  11.         'ssml' => "<speak>" . $outputSpeech . "</speak>"
  12.       ],
  13.       'reprompt' => [
  14.         'outputSpeech' => [
  15.           'type' => 'SSML',
  16.           'ssml' => "<speak>Tempo di risposta esaurito</speak>"
  17.         ]
  18.       ],
  19.       'shouldEndSession' => $shouldEndSession
  20.     ]
  21.   ]);
  22. }
  23.  
  24. $jsonRequest = file_get_contents('php://input');
  25. $data = json_decode($jsonRequest, true);
  26.  
  27. if (empty($data) || (!isset($data))) {
  28.     echo response('Bad request', true);
  29.     die('Bad Request');
  30. }
  31.  
  32. $intentType = $data['request']['type'];
  33. $sessionId = $data['session']['sessionId'];
  34.  
  35. if ($intentType == 'LaunchRequest'){
  36.     echo response('Dimmi cosa registrare', false);
  37.     die();
  38. } elseif ($intentType == 'IntentRequest'){
  39.     $dbhost = 'localhost';
  40.     $dbuser = 'ilmiobottelegram';
  41.     $dbpsw = '';
  42.     $dbname = 'my_ilmiobottelegram';
  43.  
  44.     // Create connection
  45.     $conn = new mysqli($dbhost, $dbuser, $dbpsw, $dbname);
  46.  
  47.     // Check connection
  48.     if ($conn->connect_error) {
  49.         //echo 'Connection failed: ' . $conn->connect_error;
  50.         echo response('Connessione alla base di dati fallita', false);
  51.         die();
  52.     }
  53.    
  54.     $intentName = $data['request']['intent']['name'];
  55.     switch($intentName) {
  56.         case 'GetData':
  57.             if ($data['request']['intent']['slots']['azionePerMatricola']['value'] != '') {
  58.                 $azione = $data['request']['intent']['slots']['azionePerMatricola']['value'];
  59.                 if ($azione == '?') {
  60.                     echo response('Non ho capito riprova', false);
  61.                     die();
  62.                 } else {
  63.                     $azione = strtolower($azione);
  64.                     $azioneSplittata = explode(' ', $azione);
  65.                     if (count($azioneSplittata) == 3) {
  66.                         if (
  67.                             (
  68.                                 $azioneSplittata[0] == 'ingresso' ||
  69.                                 $azioneSplittata[0] == 'entrata' ||
  70.                                 $azioneSplittata[0] == 'uscita'
  71.                             ) &&
  72.                             ctype_digit($azioneSplittata[2]) == true
  73.                         ) {
  74.                             $sql = "SELECT * FROM TPdipendenti WHERE Matricola = '" . $azioneSplittata[2] . "'";
  75.                             $result = $conn->query($sql);
  76.                             $row = mysqli_fetch_assoc($result);
  77.                             if ($result->num_rows > 0) {
  78.                                 $sql = "INSERT INTO TPpresenze(IDdipendente, azione) VALUES ('" . $row['IDdipendente'] . "', '" . $azioneSplittata[0] . "')";
  79.  
  80.                                 if ($conn->query($sql) === TRUE) {
  81.                                     echo response('Ok azione inviata ' . $azione . ' e ho trovato corrispondenza nella base di dati e ho inserito il record nel db<audio src="https://ilmiobottelegram.altervista.org/alexaSuccessRing.mp3" />', true);
  82.                                     die();
  83.                                 } else {
  84.                                     echo response('Ok azione inviata ' . $azione . ' ma non sono riuscito ad inserire il record nel db', false);
  85.                                     die();
  86.                                     //echo "Error: " . $sql . "<br>" . $conn->error;
  87.                                 }
  88.                             } else {
  89.                                 echo response('Mi hai inviato la seguente azione ' . $azione . ' ma nella base di dati non ho trovato nessuno che lo possieda riprova', false);
  90.                                 die();
  91.                             }
  92.                         } else {
  93.                             echo response('Non ho capito riprova', false);
  94.                             die();
  95.                         }
  96.                     } else {
  97.                         echo response('Non ho capito riprova', false);
  98.                         die();
  99.                     }
  100.                 }
  101.             } else{
  102.                 echo response('La chiave è null', true);
  103.                 die();
  104.             }
  105.             break;
  106.         default:
  107.             echo response('Nome intent ' . $intentName . ' non trovato', false);
  108.             die();
  109.     }
  110.    
  111. }
  112.  
  113. echo response('Ho dimenticato di gestire qualcosa', false);
  114.  
  115. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement