- Home
- Categorie
- Coding e Sistemistica
- PHP
- Estrarre diversi valori da una variabile get
-
Estrarre diversi valori da una variabile get
Se ho una variabile get di questo tipo:
codice PHP:
b=PAY1_TRANSACTIONRESULT=KOP1PAY1_SHOPTRANSACTIONID=135P1PAY1_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']<img src="images/smilies/frown.gif" border="0" alt="">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.<br>"; } else { print "La transazione non si è conclusa correttamente. "."Vi preghiamo di riprovare. Grazie.<br>"; }
}
Altro non fa che estrarre una password, vedere se esiste nel file di testo "merchant.ris" e se la trova cancellarla. A questo script vorrei aggiungere una condizione che verifica se il valore transaction è ok oppure no. Se è ok allora mi dice che il pagamento è concluso. Quindi preleva ii dati di un ordine dalla tabella "pagamenti", li copia nella tabella "archivio" e cancella 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
-
[PHP]
$valori = array();
$stringa = "b=PAY1_TRANSACTIONRESULT=KOP1PAY1_SHOPTRANSACTIONID=135P1PAY1_BANKTRANSACTIONID=";
$stringa_arr = explode('_', $stringa);
// La stringa viene divisa in b=PAY1 + TRANSACTIONRESULT=KOP1PAY1 + SHOPTRANSACTIONID=135P1PAY1 + BANKTRANSACTIONID=
foreach($stringa_arr as $v) {
$temp = explode('', $v);
$valori[] = $temp[0];
}
/ $valori conterrà :
0 => b=PAY1
1 => TRANSACTIONRESULT=KO
2 => SHOPTRANSACTIONID=135
3 =>BANKTRANSACTIONID=
*/
[/PHP]Questo però solo se la stringa ha sempre il suddetto "formato"
Se ti interessa sapere solamente se la stringa contiene TRANSACTIONRESULT=KO puoi utilizzare la funzione eregi