|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 89
|
[PHP] problema insolito e strano
Ciao a tutti.
Quest'oggi sottopongo alla vostra attenzione un problema curioso e strano con il php, e su cui non riesco a trovare una soluzione (o un workaround). sto facendo una banalissima if di confronto, fra una variabile e una costante Codice:
if($count >= 1) {
fai qualcosa
}
else {
qualcos'altro
}
Ho verificato il valore della variabile $count....tutto apposto. Per tagliare la testa al toro allora ho sostituito alla variabile $count una cosatante (per esempio 5). 5 è per forza maggiore o uguale a 1, quindi il risultato del test è forzato ad essere true, ma invece continua per il false! Vi è mai capitato qualcosa di simile? sapete darmi un'aiuto? |
|
|
|
|
|
#2 |
|
Messaggi: n/a
|
edit
Ultima modifica di anonimizzato : 15-08-2010 alle 12:24. |
|
|
|
#3 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 89
|
Sicurissimo... $count funziona perfettamente sia in locale che in remoto. tra l'altro la sostituzione di $count con una costante è stato fatto solo per puro scrupolo...
ed effettivamente in locale funziona e su server no! E' questo che davvero non torna e non so dove sbattere la testa.... la versione php è la stessa Ultima modifica di brianss : 15-08-2010 alle 12:21. Motivo: ortografia |
|
|
|
|
|
#4 | |
|
Messaggi: n/a
|
Quote:
Molto strano in effetti. |
|
|
|
|
#5 |
|
Messaggi: n/a
|
Domanda: solo in quel punto o anche in altri hai un comportamento "anomalo"?
Prova a postare una porzione di codice un pò più estesa (se puoi) magari si riesce a capire meglio l'eventuale causa. |
|
|
|
#6 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 89
|
questo comportamento non lo riscontro da nessun'altra parte
ecco il codice più esteso...aggiungo dei commenti Codice:
// vengono contate le righe dell'insieme dei risultati
$count=mysql_num_rows($result);
// se ci sta almeno una riga in tabella che matcha con username allora l'username già esiste e fa il redirect
if($count >= 1)
header("location:../registrazione.php?regmsg=Attenzione l'username scelto non è disponibile");
//altrimenti prosegue con la normale procedura
//pulisci tutti i campi inseriti dall'utente
inoltre la funzione header in altre pagine, il suo dovere di interrompere lo script e cambiare pagina lo fa benissimo. |
|
|
|
|
|
#7 |
|
Messaggi: n/a
|
Solo un consiglio: dopo che fai un redirect con
Codice:
header("location ...")
Codice:
exit(); Codice:
header("location ...");
exit();
Ciao. |
|
|
|
#8 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 89
|
si, aggiungendo exit() ho la garanzia che lo script termina, ed effettivamente ora funziona sia in locale che su server.
Mi resta però un interrogativo: come mai in locale la versione precedente funzionava? forse il colpevole potrebbe essere il modo in cui il server gestisce le richieste di redirect? può esistere una cosa del genere? Onestamente ho i miei dubbi, ma va detto che non conosco a fondo le configurazioni che può avere apache |
|
|
|
|
|
#9 |
|
Messaggi: n/a
|
Uhm, non saprei è un pò che sono fermo con PHP.
Tuttavia mi stai dicendo che ora il problema sulla variabile $count è risolto? |
|
|
|
#10 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 89
|
si risolto, ma preciso che il problema non è la variabile $count (non lo è mai stato).
Pare invece che era la funzione header che in locale terminava lo script, mentre in remoto no. cmq ora è risolto ti ringrazio |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:45.




















