come faccio ad uscire da una funzione? tipo il break per i cicli??
ho provato a fare cerca, ma è disabilitato![]()
grassie
come faccio ad uscire da una funzione? tipo il break per i cicli??
ho provato a fare cerca, ma è disabilitato![]()
grassie
break teorcamente andrebbe usato solo ed esclusivamente su uno switch e non dentro i cicli ...
i cicli di per se vengono compiuti su check di tipo booleano , il check puo' essere interrotto ed e' questa la procedura piu' giusta per finire un ciclo.
esempio
$check = true;
while( $check ) {
if( ... contrllo OK ) { $check = false; }
}
e non brake;
for( $a = 0; $a < 10; $a++ ) {
if( ... contrllo OK ) { $a = 10; }
}
e non brake
le funzioni invece dovrebbero avere un unico return, il return termina la funzione passando all' operazione successiva, se la funzione e' ricorsiva l' ultimo return che non restituisce la funzione stessa permettera' alla funzione di uscire da se stessa
ora scrivi la funzione che non esce, grazie![]()
ma uff :P
scusami, ho scritto poco poco e non ti ho fatto capire :P
io nei cicli, uso le condizioni e quando queste non si verificano più, il ciclo esce.
se però ho un ciclo infinito e devo uscirne fuori solo in un caso posso usare il break. non è corretto, non è logico e tutto quello che ti pare ma è comodo
ora, ho una funzione che a seconda degli argomenti fa cose.
se ci sono gli argomenti, fa un passaggio in meno, se non ci sono li recupera da un cookie.
dopo aver ottenuto gli argomenti, eseguo il resto della funzione.
se però non ho gli argomenti e non posso recuperarli, devo uscire dalla funzione senza eseguire il resto della funzione. è qui che necessito di "uscire" dalla funzione.. mi sono spiegato?
allora metti tutto il resto delle operazioni dentro un ifOriginariamente inviato da Lotti
se però non ho gli argomenti e non posso recuperarli, devo uscire dalla funzione senza eseguire il resto della funzione. è qui che necessito di "uscire" dalla funzione.. mi sono spiegato?
if( $argomenti ) {
....
}
cioe', piu' che uscire non devi proprio entrare nelle procedure ...![]()
![]()
![]()
già ce l'ho quel check.. te la incollo facciamo prima :P
codice:function login($passedusername=0, $passedpassword=0, $setcookie=0) { global $dbhost, $dbuser, $dbpass, $dbname, $Userdbtable; $a=0; //imposto la connessione al database $db = mysql_connect($dbhost, $dbuser, $dbpass) or die("<font color=\"#FF0000\">Error, I could not connect to the database. Please go back and try again.</font>"); mysql_select_db($dbname, $db) or die("<font color=\"#FF0000\">Error, I could not select the database. Please go back and try again.</font>"); //casi: //se non vengono inviati dati al login.. if ($passedusername==0 && $passedpassword==0) { //controllo il cookie if (isset($_COOKIE[$cookie["name"]])) { $cookie_info=$_COOKIE[$cookie['name']]; $cookie_user=strtok($cookie_info,"%%"); $cookie_pass=strtok("%%"); setcookie($cookie["name"],$info_cookie,time()+31536000,$cookie['path'],$cookie['domain']); $passedusername=$cookie_user; $passedpassword=$cookie_pass; } else { //IO DOVREI USCIRE QUI, CIOE TERMINARE LA FUNZIONE QUI //potrei usare un return anche qui? } } //procedo con i controlli.. $query = "SELECT user, password FROM ".$Userdbtable." WHERE user='$passedusername' LIMIT 1"; $result = mysql_query($query, $db) or die("An Error Occurred while trying to resolve the query. Please go back and try again. ".$query." "); list($user, $password)=mysql_fetch_row($result) //se i dati corrispondono, creo il cookie e creo la sessione if ($passedusername==$user && $passedpassword==$password) { $query = "SELECT id, user, password, email, lvl FROM ".$Userdbtable." WHERE user='$user' LIMIT 1"; $result = mysql_query($query, $db) or die("An Error Occurred while trying to resolve the query. Please go back and try again. ".$query." "); list($id, $user, $password, $email, $lvl)=mysql_fetch_row($result) $_SESSION['uid']=$id; $_SESSION['username']=$user; $_SESSION['password']=$password; $_SESSION['email']=$email; $_SESSION['lvl']=$lvl; $cookie_info=$user."%%".$password; setcookie($cookie['name'],$cookie_info,time()+31536000,$cookie['path'],$cookie['domain']); $a=1; } return $a; }
visto che e' il cookie la chiave di tutto e che se non c'e' non lo setti ...Originariamente inviato da Lotti
già ce l'ho quel check.. te la incollo facciamo prima :P
if( ( $passedusername!=0 && $passedpassword!=0 ) || isset($_COOKIE[$cookie["name"]]) )
{
//procedo con i controlli..
$query = "SELECT user, pas... etc etc
}
P.S. occhio che il cookie e' in locale e non fai niente per evitare SQL INJECTIONS, imho LOGIN completamente scavalcabile, insicuro
ok![]()