Newsgroup: it.comp.www.php
Titolo: Mi sento idiota

Scusate l'oggetto, ma credo di aver bisogno di un altro paio di occhi 
perchè non riesco a vedere l'errore:
$a = md5($str1);
$b = $str2;
// $b è già l'hash md5 di una stringa
if ($a == $b) {
	fai varie cose
}
else {
	fai altre cose
}
Ora: mi viene eseguito sempre 'fai altre cose'.
Se metto un die("$a<br>$b); prima dell'if, vedo che i due hash sono 
identici, cionostante mi viene eseguito l'else.
Se metto il medesimo die all'interno dell'else (prima delle altre 
istruzioni), viene stampato solo il valore di $a.
Mi potreste cortesemente illuminare su quale diavolo di errore idiota mi 
sta sfuggendo?
Grazie!
-- 
=====================
L'indirizzo riportato come reply non è valido. Per contattarmi in 
privato rispondere al presente messaggio nel newsgroup, indicando 
l'indirizzo a cui si desidera essere contattati.

 Grazie!
--
SEZIONE RECUPEO LAVORO: Lancio di una nuova lavatrice sul mercato, due 
morti e sei feriti.
[CapoBecchino] - hotmail/msn: capobecchino [@] hotmail [.] com


Così non ci sono errori.
Se l'aiuto di capobecchino non và, prova a postarci il codice completo, 
forse c'è qualche cosa che non và nel resto.
ciao,
Luca(riello) 

 che ad occhio hai testato e non li vedi) ???
Si, in una delle prove avevo 'trimmato' le due variabili, ma niente da 
fare. In preda allo sconforto ho anche valutato (gettype) il tipo, si sa 
mai, ma entrambe sono (ovviamente) string...


 $b = $str2;
Fai var_dump di $a e $b.
Ciao,
   Fabrizio
=== 
http://www.negusweb.it
 ===

 mai, ma entrambe sono (ovviamente) string...
Prova con strcmp()
-- 
Alessandro Pellizzari

Negus ha scritto:

string(32) "33d26732879568772bcd38d90b03223a"
string(32) "33d26732879568772bcd38d90b03223a"
*sigh*
Questo il codice (depurato di alcune cose per semplicità, comunque anche 
così ottengo il medesimo risultato
	$mac = md5($mac);
	// Redirect se il MAC non corrisponde
	$mac = strtolower($mac);
	$macget = strtolower($macget);
	if($mac == $macget) {
	  $get_append = '&myamount=' . $importo . '&myshoptransactionID=' . 
$numord . '&myauthorizationcode=' . $num_aut . '&mybanktransactionid=' . 
$idtrans . '&def_modpag=' . $def_modpag . '&def_tipo_trans=' . 
$def_tipo_trans . '&def_carta=' . $def_carta . '$tautor=' . $tautor . 
'&tcontab=' . $tcontab;
	  zen_redirect(zen_href_link(FILENAME_CHECKOUT_PROCESS, $get_append, 
'SSL', true, false));
	}
	else {
	   $myerrordescription = "Ordine non completato. Contattare il titolare 
del negozio per informazioni.";
            $get_append = '&error_message=' . $myerrordescription;
	   zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, $get_append, 
'SSL', true, false));
	}
Come si vede, fa parte di un modulo di pagamento per Zen Cart.
E' il 5 modulo di pagamento che scrivo ed è la prima volta che mi 
scontro con un problema del genere, ora provo a sostituire il codice 
presente nell'if con due semplici die e vediamo che succede



$macget dov'è definita prima?
procedi in questo modo:
costruiscici un esempio strutturale "non-funzionante" e postalo. Lo puoi 
costruire sostituendo ad alcune tue righe, altre righe di assegnazione più 
semplice. così dovresti trovare quanto meno la riga che dà errore :)
perché
$a= "ciao";
$b= "ciao";
if($a==$b) {
echo "ok";
}
else {
echo "no";
}
mi funziona perfettamente. Se riesci a fare una cosa del genere non 
funzionante, ci possiamo arrivare :).
Ovviamente con i dati che ci dai (senza definire $mac e $macget) non 
possiamo aiutarti.
ciao,
Luca(riello) 

Luca(riello) ha scritto:

Hmmm... non è arrivato un mio messaggio in replica al mio precedente.... 
Che strano ultimamente mi capita di frequente.
Comunque, grazie a tutti e scusate. Ho trovato l'errore che ovviamente 
non era nella struttura del codice postato, ma era dovuto ad una 
questione un po' più complessa, diciamo alla recursività dell'esecuzione 
del codice e quindi la prima voltà leggeva giusto, ma riprocessandolo la 
seconda si ritrovava valori diversi per mac e macget e quindi eseguiva 
l'else. (Un po' incasinato da spiegare per chi non sa com'è il flusso 
delle operazioni di pagamento in Zen Cart; c'è da dire che anch'io, al 5 
modulo di pagamento che scrivo per ZC, non avevo compreso che 
funzionasse in questo modo...).
Comunque, quanto sopra + il solito f########imo ' mancante in un diavolo 
di posto dove non dava errore...
Saluti
