Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema inserimento record nel db

    Buona sera,
    sto scrivendo una pagina php incaricata di gestire l'IPN di paypal; il problema è che al termine di tutti i controlli sull'autenticità dei dati trasmessi non viene inserito alcun nuovo record all'interno del db. Per cercare di capire meglio dove fosse l'errore ho fatto si che al momento dell'esecuzione venisse generato un file di log. Il problema che ho notato è che nonostante la variabile $receiver_mail contanga esattamente ciò con cui viene comparata nell'if esso risulta falso e compare quindi un messaggio di errore nel file di log, lo stesso vale anche per la verifica del payement status. Ho provato anche a eseguire l'inserimento nel db senza effettuare questi controlli problematici, ma non risulta inserito alcun record all'interno del db.
    Ecco il codice incriminato:

    Codice PHP:
    session_start();
        require_once(
    'mysqlconn.php');
        
    $txn_id $_POST['txn_id'];
        
    $payement_status $_POST['payement_status'];
        
    $receiver_email $_POST['receiver_email']; //EMAIL DEL VENDITORE
        
    $utente $_POST['custom'];
        
    $tipo $_POST['item_name'];

    if(
    $payement_status == "Completed"){//CONTROLLO STATO PAGAMENTO
    if(strcmp($receiver_mail,'******@gmail.com') == 0){

                
    $control mysql_query("SELECT * FROM richieste WHERE txn_id = '".$txn_id."' ") or die (mysql_error());
                if(
    mysql_num_rows($control) == 0){
                    
    $insert mysql_query("INSERT INTO richieste (txn_id, payement_status, utente, tipo) VALUES ('".$txn_id."', '".$payement_status."', '".$utente."', '".$tipo."')") or die (mysql_error());
                 }
                else{
                    
    file_put_contents('log.txt'"txn gia presente");}
    }else{
                
    file_put_contents('log.txt'$receiver_email);}
        } else {
            
    file_put_contents('log.txt'"STATO PAGAMENTO ERRATO: ".$payement_status." ");
        } 
    Cosa posso fare??
    Ultima modifica di masternick; 23-03-2015 a 23:52 Motivo: reindentazione

  2. #2
    Stampa le query prima di eseguirle e provale a mano.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Mancava la selezione del db... Ora i dati sono inseriti all'interno dell'db, ma continuo a non capire perchè la variabile $payement_status risulti vuota e quindi non verifichi l'if...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    88
    Quote Originariamente inviata da masternick Visualizza il messaggio
    Mancava la selezione del db... Ora i dati sono inseriti all'interno dell'db, ma continuo a non capire perchè la variabile $payement_status risulti vuota e quindi non verifichi l'if...
    facendo il debug, controlla la variabile $_POST e verifica che non sia vuoto.
    Se è vuota molto probabilmente dalla form di invio non hai passato correttamente i dati nella POST
    codice:
    $payement_status = $_POST['payement_status'];

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.