Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Problema apparentemente stupido ma che non riesco a risolvere!

    Seguendo la guida sulla gestione utenti con php di html.it http://freephp.html.it/articoli/view...olo.asp?id=132 ricostruito la gestione utenti. Tutto funziona perfettamente se lavoro direttamente sulle pagine del tipo pippo.php, ma utilizzo il tutto in un include di una'altra php e ho un problema, che credo possa dipendere da due cose:

    o

    questo form non invia $link

    <form action="index.php?voce=login<?php print ($link);?>" method="post">

    posto tutto il codice di seguito

    <?php
    include_once("include/config.php");
    include_once("include/auth.lib.php");

    list($status, $user) = auth_get_status();

    if($status == AUTH_LOGGED & auth_get_option("TRANSICTION METHOD") == AUTH_USE_LINK){
    $link = '&uid='.urlencode($_GET['uid']);
    }else $link = '';
    ?>
    <html>
    <head>
    <title>Home Page</title>
    </head>
    <body>
    <div align="center">
    <table cellspacing="2">
    <tr>
    <td><a href="index.php?voce=editofferte<?=$link?>">
    Inserimento offerte speciali</a></td>
    </tr>
    </table>
    <?php
    switch($status){
    case AUTH_LOGGED:
    ?>
    Sei loggato con il nome di <?=$user["name"];?> Logout
    <?php
    break;
    case AUTH_NOT_LOGGED:
    ?>
    <form action="index.php?voce=login<?php print ($link);?>" method="post">
    <table cellspacing="2">
    <tr><td>Nome Utente:</td>
    <td><input type="text" name="uname"></td>
    </tr>
    <tr>
    <td>Password:</td><td><input type="password" name="passw"></td>
    </tr>
    <tr>
    <td colspan="2"><input type="submit" name="action" value="login"></td>
    </tr>
    </table>
    </form>
    <?php
    break;
    }
    ?>



    oppure

    la pagina di login non reinderizza o non riceve $link quando è in inclusa (naturalmente con
    l'include) in un'altra pagina php.

    vi posto la pagina di seguito:

    <?php
    include_once("include/config.php");
    include_once("include/auth.lib.php");

    list($status, $user) = auth_get_status();

    if($status == AUTH_NOT_LOGGED){
    $uname = strtolower(trim($_POST['uname']));
    $passw = strtolower(trim($_POST['passw']));

    if($uname == "" or $passw == ""){
    $status = AUTH_INVALID_PARAMS;
    }else{
    list($status, $user) = auth_login($uname, $passw);
    if(!is_null($user)){
    list($status, $uid) = auth_register_session($user);
    }
    }
    }

    switch($status){
    case AUTH_LOGGED:
    header("Refresh: 5;URL=home.php");
    echo '<div align="center">Sei gia connesso ... attendi il reindirizzamento</div>';
    break;
    case AUTH_INVALID_PARAMS:
    header("Refresh: 5;URL=home.php");
    echo '<div align="center">Hai inserito dati non corretti ... attendi il reindirizzamento</div>';
    break;
    case AUTH_LOGEDD_IN:
    switch(auth_get_option("TRANSICTION METHOD")){
    case AUTH_USE_LINK:
    header("Refresh: 5;URL=home.php?uid=".$uid);
    break;
    case AUTH_USE_COOKIE:
    header("Refresh: 5;URL=home.php");
    setcookie('uid', $uid, time()+3600*365);
    break;
    case AUTH_USE_SESSION:
    header("Refresh: 5;URL=home.php");
    $_SESSION['uid'] = $uid;
    break;
    }
    echo '<div align="center">Ciao '.$user['name'].' ... attendi il reindirizzamento</div>';
    break;
    case AUTH_FAILED:
    header("Refresh: 5;URL=home.php");
    echo '<div align="center">Fallimento durante il tentativo di connessione ... attendi il reindirizzamento</div>';
    break;
    }
    ?>


    Mi scuso per la lunghezza del messaggio ma ritenvo fondamentale la pubblicazione del codice per cercare di risolvere il problema.

    Naturalmente vi sono già eternamente grato se anche solo avete la pazienza di leggerlo un attimo.

    Come detto il problema non credo che sia trascendentale... ma sono un pò alle prime armi.

    Ancora grazie

    Lorenzo

  2. #2
    Leggere del codice messo cosi' si fa solo fstica. Mettilo tra tag [ code ]

    alle prime righe si evidenzia un AND bitwise (&) invece di un AND logico (&&) nella prima if....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Ecco qua il codice riscritto per bene. Questa pagina se non viene inclusa funziona, quando la includo, invece, non refrescia:

    codice:
    <?php
    include_once("include/config.php");
    include_once("include/auth.lib.php");
    
    list($status, $user) = auth_get_status();
    
    if($status == AUTH_NOT_LOGGED){
    	$uname = strtolower(trim($_POST['uname']));
    	$passw = strtolower(trim($_POST['passw']));
    
    	if($uname == "" or $passw == ""){
    		$status = AUTH_INVALID_PARAMS;
    	}else{
    		list($status, $user) = auth_login($uname, $passw);
    		if(!is_null($user)){
    			list($status, $uid) = auth_register_session($user);
    		}
    	}
    }
    
    switch($status){
    	case AUTH_LOGGED:
    		header("Refresh: 5;URL=home.php");
    		echo '<div align="center">Sei gia connesso ... attendi il reindirizzamento</div>';
    	break;
    	case AUTH_INVALID_PARAMS:
    		header("Refresh: 5;URL=home.php");
    		echo '<div align="center">Hai inserito dati non corretti ... attendi il reindirizzamento</div>';
    	break;
    	case AUTH_LOGEDD_IN:
    		switch(auth_get_option("TRANSICTION METHOD")){
    			case AUTH_USE_LINK:
    				header("Refresh: 5;URL=home.php?uid=".$uid);
    			break;
    			case AUTH_USE_COOKIE:
    				header("Refresh: 5;URL=home.php");
    				setcookie('uid', $uid, time()+3600*365);
    			break;
    			case AUTH_USE_SESSION:
    				header("Refresh: 5;URL=home.php");
    				$_SESSION['uid'] = $uid;
    			break;
    		}
    		echo '<div align="center">Ciao '.$user['name'].' ... attendi il reindirizzamento</div>';
    	break;
    	case AUTH_FAILED:
    		header("Refresh: 5;URL=home.php");
    		echo '<div align="center">Fallimento durante il tentativo di connessione ... attendi il reindirizzamento</div>';
    	break;
    }
    ?>

    Un'altra causa del fatto che la precende non refrescia, può essere che da questa non venga inviata bene la variabile, vedi parte sottolineata.

    codice:
     <?php
    include_once("include/config.php");
    include_once("include/auth.lib.php");
    
    list($status, $user) = auth_get_status();
    
    if($status == AUTH_LOGGED & auth_get_option("TRANSICTION METHOD") == AUTH_USE_LINK){
    	$link = '&uid='.urlencode($_GET['uid']);
    }else	$link = '';
    ?>
    <html>
    	<head>
    		<title>Home Page</title>
    	</head>
    	<body>
    	<div align="center">
    		<table cellspacing="2">
    			<tr>
    				<td>Inserimento offerte speciali</td>
    			</tr>
    		</table>
    		<?php
    		switch($status){
    			case AUTH_LOGGED:
    			?>
    		Sei loggato con il nome di <?=$user["name"];?> Logout
    			<?php
    			break;
    			case AUTH_NOT_LOGGED:
    			?>
    		<form action="index.php?voce=login<?php print ($link);?>" method="post">
    			<table cellspacing="2">
    				<tr>
    					<td>Nome Utente:</td>
    					<td><input type="text" name="uname"></td>
    				</tr>
    				<tr>
    					<td>Password:</td>
    					<td><input type="password" name="passw"></td>
    				</tr>
    				<tr>
    					<td colspan="2"><input type="submit" name="action" value="login"></td>
    				</tr>
    			</table>
    		</form>
    		<?php
    			break;
    		}
    		?>
    	</div>
    	</body>
    </html>
    Che ne pensate?

    Ripeto senza includerle funzionano, quindi credo dipenda da quel form che non invia, oppure dall'altra pagina che per qualche motivo quando è inclusa non reflescia

    Lore

  4. #4
    ti ripeto che dovresti usare la AND logica && e non bitwise &.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Si si scusa, nel mio file l'ho cambiata... però non ho risolto il problema, anche perchè come ho scritto la pagina in realtà funziona. Se cioè su quell'action metto

    login.php<?php print ($link);?> ,

    cioè richiamo login.php fuori dall'include tutto va. Quindi o scrivendo

    action="index.php?voce=login<?php print ($link);?>"

    cioè richimando login.php dentro index.php, la variabile link non viene mandata, oppure la la pagina login non funziona quando è inclusa.

    che ne dici? è corretta l'ultima action che ho scritto? (la dichiarazione di $link è all'inizio della seconda parte di codice.

    Grazie per la disponibilità


    Lore

  6. #6
    Originariamente inviato da PiccioOne
    Si si scusa, nel mio file l'ho cambiata... però non ho risolto il problema, anche perchè come ho scritto la pagina in realtà funziona. Lore
    Vedi un po' tu.... per me e' un gran bailamme quello script. Farcito di costanti sempre che lo siano, solo per un autenticazione (ma poi sono costanti?) ??? , se usi POST passa tutto con POST. Fai due campi HIDDEN e prendili con $_POST. Qualunque cosa sia che riguarda l'autenticazione passata nell'URL per me e' una minchia extrabuffa.

    Ho visto una incongruenza e l'ho segnalata. Ma sono troppi i punti che non si capiscono, bisognerebbe vedere cosa c'e' nei file che includi.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    non credo tu li voglia vedere... ... nel caso contrario te li posto.

    Ti ringrazio per il tempo che mi hai dedicato.

    Lore

  8. #8
    Infatti... gli script gia' preparati non sono mai riuscito ad utilizzarli con soddisfazione. Vuoi perche' obsoleti, nel senso scritti per versioni ormai obsolete di php e mysql, vuoi perche' si trascinano orpelli inutili al mio bisogno...

    Allora li leggo (ne avessi trovato uno senza errori), cerco di capire la logica (bellissimi quelli di andr3a e daniele per come sono documentati), recepisco le idee e soluzioni interessanti, e poi sviluppo il mio script secondo il bisogno.

    Dietro ad uno script non c'e' solo codice, ma un modo di interpretare, una filosofia.

    Curiosita' ... hai errori e notice abilitati? .... io credo di no.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.