Se ho una variabile get di questo tipo:
Codice PHP:
b=PAY1_TRANSACTIONRESULT=KO*P1*PAY1_SHOPTRANSACTIONID=135*P1*PAY1_BANKTRANSACTIONID=
Come posso estrarre il primo valore? Ossia "transactionresult=ko"
Come potete vedere si tratta di una variabile get relativa ad una transazione di denaro, ossia un pagamento. A questa variabile get ho associato questo script:
Codice PHP:
<?php
$parm_b = (isset($_POST['b'])?$_POST['b']:(isset($_GET['b'])?$_GET['b']:NULL));
if (isset($parm_b)) {
$TrovataOTP = '';
$a = explode("*P1*", $parm_b);
foreach ($a as $v) {
$val = explode("=", $v);
if (ereg("^PAY1_OTP", $v)) {
$TrovataOTP = $val[1];
}
}
$nome_file = "merchant.ris";
$array = file($nome_file);
$ok = NULL;
foreach ($array as $k => $v) {
if ($TrovataOTP == trim($v)) {
$CancellaOTP = trim($v);
unset($array[$k]);
$ok = TRUE;
break;
}
}
if (isset($ok)) {
$fp = fopen($nome_file,"wb");
fwrite($fp,implode("",$array));
fclose($fp);
print "La transazione è stata conclusa correttamente. "."Grazie per l'acquisto tornate presto a trovarci.
";
} else {
print "La transazione non si è conclusa correttamente. "."Vi preghiamo di riprovare. Grazie.
";
}
}
Altro non fa che estrarre una password temporanea inclusa nella variabile get, vedere se esiste nel file di testo "merchant.ris" e se la trova cancellarla. A questo script vorrei aggiungere una condizione che verificasse se il valore transaction è ok oppure no. Se è ok allora vorrei mi dicesse che il pagamento è concluso. Quindi che prelevasse i dati di un ordine dalla tabella "pagamenti", li copiasse nella tabella "archivio" e cancellasse i dati sempre dalla tabella pagamenti.
Se la transaction non è ok, allora vengo rimandato alla pagina "pagamento.php".
So che sicuramente non è semplice, ma vi chiedo qualche spunto, suggerimento, esempio. E' importantissimo
p.s. non so perchè nel codice in alto mi inserisce quell'immagine....... comunque non c'entra nulla con lo script