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??