Condizione Sempre Valida? postato il 22/12/2009 13:35:04 nel forum programmazione, gdrcd e open source
Allora ragazzi c'ho un problema per il controllo del nome.
In pratica dovrei fare in modo che nella registrazione di un personaggio,qual'ora nel nome ci fosse un carattere diverso da quello alfabetico(A -> Z) e(a -> z) ci dovrebbe da errore.
Per tale ragione ho creato un ciclo for,che si ripete per tutta la lunghezza del nome controllando carattere per carattere con la funzione substr.
Però da quanto ho potuto capire,la variabile $Carattere (derivata dalla funzione substr) non assume nex valore.
Quindi,qualcuno di buona voglia,potrebbe indicarmi dov'è l'errore?...
Grazie >.<
<?php
//Ci calcoliamo la lunghezza della stringa e controlliamo che il nome sia scritto
//correttamente
$Nome = "Nando";
$Lunghezza = strlen($Nome);
for ($Contatore=1;$Contatore = $Lunghezza;$Contatore++)
{
$Carattere = substr($Nome, $Contatore, 1);
$CarattereAsci = Ord($Carattere);
If (($CarattereAsci < 65) || ($CarattereAsci > 122))
{
echo "Il nome ".$Nome." non è scritto correttamente.<br>Esso contiene il carattere: ".$Carattere.".";
print "<br>Ri-Iscriviti";
exit();
}
}
?>
Pagine → 1
22/12/2009 13:55:53 e modificato da blancks il 22/12/2009 14:09:35
Usa le regexp, in questi casi sono molto più pratiche:
22/12/2009 14:19:13 e modificato da mr_faber il 22/12/2009 14:19:40
A parte che, come ti han detto, in questo caso si usa le espressioni regolati, hai preso una soluzione che fa il suo lavoro, ma e' un po troppo di "basso livello" per il tuo problema.
L'errore sta qui:
for ($Contatore=1;$Contatore = $Lunghezza;$Contatore++)
$Contatore = $Lunghezza; esegue un assegnamento. Quello che desideravi e' $Contatore <= $Lunghezza. E' un errore frequente di distrazione.
22/12/2009 14:43:09
Neanche con minore e uguale va!!!...
Ho provato con un maggiore e uguale(Cioè che quando il numero che viene è maggiore o uguale,il ciclo for si blocca!)ma comunque non va.
La variabile $Carattere non me la stampa e non s il motivo!!!..
Poi,della Prg_match non ho capito tanto ehehhe..come detto so abbastanza di programmazione,ma molte funzioni non le conosco ancora :-).
Potreste spiegarmi bene a cosa serve quest'ultima?
22/12/2009 22:54:41
Le espressioni regolari sono fondamentalmente regole grammaticali di composizione delle frasi, espresse in un linguaggio sintetico matematico. In pratica, specificata la regola di composizione quella funzione ti dice se una parola e' composta secondo quelle regole o no. Ergo, se la regola e' "solo lettere minuscole e maiuscole" allora la funzione risponde al tuo problema.
A parte questo, a livello didattico, per capire cosa non va ancora in quella iterazione (cosi' a occhio non lo vedo) devi fare un po di debugging, ovvero contraollare, passo passo nel codice, il contenuto della variabili, printandole.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
I dati del generatore di rank sono stati aggiornati!