Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    15

    Query di inserimento che non funziona interamente ..

    Ciao a tutti,
    ho una pagina php che riceve dati da form (e in parte legge altri dati da db) per l'invio di un sms.
    Ho fatto in modo che dopo l'invio viene loggata nel db tutta l'operazione.
    Lo script funziona, ma non mi memorizza nel db il valore nel campo desesitoinv_sms (dovrebbe scrivermi il valore di $esito). Eppure il contenuto me lo stampa a video prima della query.
    Qualcuno sa dirmi perchè???
    Grazie in anticipo

    Codice PHP:
    /* Leggo le impostazioni per l'invio degli SMS da Parametri Genarali  */
    $query "SELECT sms_gateway, sms_username, sms_password, sms_mittalf, sms_tsmscont FROM config_settings WHERE sett_id = 1";
    $result mysql_query($query);
    $number mysql_num_rows($result);

    /* Metto in una variabile i parametri di invio  letti dal DB */
    $record mysql_fetch_array($result);
    $sendgateway $record['sms_gateway'];
    $sendusername $record['sms_username'];
    $sendpassword $record['sms_password'];
    $sendcodute $record['sms_codute'];
    $sendstring $record['sms_mittalf'];
    $sendtiposms $record['sms_tsmscont'];

    // Recupero altri dati per eseguire la query di inserimento nel db
    $senderstring $_POST['sender_string'];
    $tiposms $_POST['tiposms'];
    $celldest $_POST['recipients']; // Per log e visualizzaione post invio
    $text $_POST['text'];
    $idrifmess $_POST['idrifmessaggio'];
    $nomedest $_POST['nomedest'];
    $iduser $_POST['idoperatore'];    // Id utente che esegue l'invio
    $username $_POST['username'];     // Nome utente che esegue l'invio
    $dtorainvio date ("Y-m-d H:i:s"); 

     
    var_dump(httpPost(array(
     
    'user' => $sendusername,
    'pass' => $sendpassword,
    'rcpt' => $celldest,
    'data' => $text,
    'sender' => $sendstring,
    'qty' => $tiposms,
    ),
    'app.smsend.it' 
    ));
    function 
    httpPost($fields$host 'app.smsend.it'$url =
     
    '/sms/send.php')
     { 
    $qs = array();
    foreach (
    $fields as $k => $v)
    $qs[] = $k.'='.urlencode($v);
    $qs join('&'$qs);
    $errno $errstr '';
    if (
    $fp = @fsockopen('app.smsend.it'80$errno$errstr,
     
    30))
    {
     
    fputs($fp"POST ".$url." HTTP/1.0\r\n");
    fputs($fp"Host: ".$host."\r\n"); 
    fputs($fp"User-Agent: PHP/".phpversion()."\r\n"); 
    fputs($fp"Content-Type:application/x-www-form-urlencoded\r\n"); 
    fputs($fp"Content-Length: ".strlen($qs)."\r\n"); 
    fputs($fp"Connection: close\r\n"); 
    fputs($fp"\r\n".$qs); 
    $content ''
    while (!
    feof($fp)) 
    $content .= fgets($fp1024); 
    fclose($fp);
     }

    // Metto in una nuova variabili il log completo dell'invio per memorizz nel db
    $esito $content

    //   visualizzo messaggio
    if (strpos($esito"KO")===FALSE
    echo 
    "MESSAGGIO INVIATO CON SUCCESSO! ";
    else
    print 
    "MESSAGGIO NON INVIATO! ";
    print 
    $esito;
    print 
    "<br>";
    print 
    "<br>";
    return 
    preg_replace("/^.*?\r\n\r\n/s"''$content);
    return 
    false;
    }

    //  Eseguo la query per inserire i dati del SMS nel DB
    $query1 mysql_query("INSERT INTO mod_contatti_sms (idrifmsg_sms, mittstring_sms, nomedest_sms, celldest_sms, testo_sms, dtorainv_sms, nomeuteinv_sms, iduteinv_sms, tipo_sms, esitoinv_sms, desesitoinv_sms) VALUES ('$idrifmess', '$sendstring', '$nomedest', '$celldest', '$text', '$dtorainvio', '$username', '$iduser', '$tiposms', ' ', '$esito')"); 
    Ultima modifica di ninext72; 31-07-2015 a 16:47

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Qual'è il tipo del campo ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    15
    E' un campo blob

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Gli altri campi hanno un valore oppure il record non viene inserito ?

    Hai provato con $esito = addslashes($content); ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    15
    Tutti i campi vengono inseriti a parte l'ultimo ...
    Provo col tuo suggerimento e ti faccio sapere.
    Intanto grazie mille.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    15
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Gli altri campi hanno un valore oppure il record non viene inserito ?

    Hai provato con $esito = addslashes($content); ?
    Non funziona nemmeno così.

    Puo' dipendere dalle condizioni?? o Da dove ho posizionato il codice della query?

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    stampa la query a schermo prima di eseguirla, poi la copi e incolli in un client per SQL e vedi cosa succede

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da ninext72 Visualizza il messaggio
    Non funziona nemmeno così.

    Puo' dipendere dalle condizioni?? o Da dove ho posizionato il codice della query?
    Non avevo visto che c'è una funzione in mezzo al codice. In effetti il problema viene da li. Il valore di $esito non viene ritornato dalla funzione. Di più non capisco i 2 return della funzione. Uno basta.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    15
    Ho provato anche ad eliminare il secondo return, ma non va lo stesso.

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Il problema sta nel fatto che setti la variabile $esito nella funzione httpPost ( non dimenticare che con php le variabili di una funzione valgono solo nella funzione) mentre usi un'altra variabile con lo stesso nome che non ha alcun valore.

    Che cosa puoi fare ?
    1 - dichiarare la variabile $esito come "globale"
    2 - fare un return $esito al posto del return attuale (non dimenticare di farlo quando funziona e quando non funziona). Pero' non sapendo come e dove usi la funzione potrebbe creare altri problemi.
    3 - aggiungere un parametro "per riferimento" alla funzione.


    function httpPost($fields, $host = 'app.smsend.it', $url ='/sms/send.php',&$esito)

    Poi quando richiami la funzione aggiungi il nome della variabile che usi nella query.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.