Visualizzazione dei risultati da 1 a 8 su 8

Discussione: reindirizzare utente

  1. #1

    reindirizzare utente

    io vorrei mettere un blocco ad alcune pagine
    del mio sito
    cioe che solo gli utenti registrati possono accedere
    e se non si e registrati voglio che appaia un messaggio di errrore
    con scritto:
    non sei ancora registrato tra pochi secondi verrai re-indirizzato alla pag di iscrizione

    e dopo voglie che l'utente non registrato venga reindirizzato
    alla pagina iscriviti.html

    se no se sei registrato vieni automaticamente reindirizzato alla pagina download.html

    poi voglio che ci sia anche integrato un login
    cioe questo:
    Codice PHP:
    <?php 
    session_start
    (); 
    $utente = ((isset($_SESSION['utente']))?($_SESSION['utente']):(false));
    /* session_start - Inizializza i dati di sessione 
    creando una sessione (o riprendendo quella corrente). 
    N.B. session_start() va messo all'inizio delle pagine php e prima del codice HTML*/ 
    /*$_SESSION['log'] è la prima variabile di sessione che utilizzeremo. 
    In questo esempio $_SESSION['log'] contiene un valore asseganto nella pagina di login, 
    che vedremo più avnti, che in pratica assume due valori (da noi stabiliti): 0 se 
    l'utente non ha effettuato il login e 1 se l'utente ha effettuato il login. 
    Nell'esempio concreto impediamo ad un utente logato di effettuare un'altra iscrizione*/ 
    if ($_SESSION['log'] == 1

    echo 
    "

    [b]<font clor="
    white">Sei già registrato![/b]
    Per effettuare una nuova registrazione" 

          
    "ritorna alla Home Page ed effettua il Logout.

    "

    echo 
    "<a href=\"iscriviti.html\"><<< Clicca qui per ritornare alla Home Page</font></a></p>"
    exit(); 

    ?> 
    <html> 
    <head> 
    <title>Registrazione</title> 
    <!-- Per comodita e completezza, nello svolgimento degli script, 
    utilizzeremo 2 javascript che ci permettono di contollare le seguenti azioni: 
    1. function ver() - la quale controlla che tuttti i campi del nostro form 
    di inserimento siano compilati. 
    2. function ControllaMail() - la quale controlla che l'email inserita sia 
    solo sintatticamente corretta (e non se realmente esistente). 
    Possiamo dire che il loro utilizzo in questo caso risulta 
    essere più adatto, rispetto a script equivalenti in php, in quanto gli javascript 
    vengono eseguiti sul lato client, mentre quelle php 
    passano al server (lato server) e poi restituite all'utente sotto forma di html. --> 
    <SCRIPT LANGUAGE="JavaScript"> 
    function ver() 
       { 
       for (i=0; i<document.forms[0].elements.length; ++i) 
          if(document.forms[0].elements[i].value == "") 
             { 
             alert("Riempire tutti i campi!"); 
             document.forms[0].elements[i].focus(); 
             return false; 
             } 
       return true; 
       } 
    </SCRIPT> 
    <SCRIPT> 
    function ControllaMail() 
       { 
       EmailAddr = document.modulo.email.value; 
       Filtro = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-]{2,})+.)+([a-zA-Z0-9]{2,})+$/; 
       if (Filtro.test(EmailAddr)) 
          return true; 
       else 
          { 
          alert("Controlla l'indirizzo e-mail inserito!"); 
          document.modulo.email.focus(); 
          return false; 
          } 
       } 
    </SCRIPT> 
    </head> 
    <body> 


     
    <!-- Procediamo costruendo il nostro form che passerà le informazioni inserite alla pagina data_insert.php.
    Da notare: 
    1. action="data_insert.php?action=add&type=user" - che ci permette di passare le 2 variabili action e type,
    con i loro rispettivi valori, add e user 
    2. il richiamo delle funzioni javascript al premere del pulsante "Conferma": onSubmit="return (ver() && ControllaMail());" --> 
    <form name="modulo" action="data_insert.php?action=add&type=user" method="post" onSubmit="return (ver() && ControllaMail());"> 
    <font color="white">Nome</font>
     
    <input name="firstname" type="text" size="25" maxlength="30">

     
    <font color="white">Cognome</font>
     
    <input name="lastname" type="text" size="25" maxlength="30">

     
    <font color="white">Username</font>
     
    <input name="user" type="text" size="20" maxlength="11">

     
    <font color="white">Password</font>
     
    <input name="pass" type="password" maxlength="8">

     
    <font color="white">E-mail</font>
     
    <input name="email" type="text" size="40" maxlength="50">

     
    <input type="submit" name="Submit" value="Iscriviti"> 
    </form> 
    </p> 
    </body> 
    </html>
    E DOPO FATTO IL LOGIN SI VIENE RE INDIRIZZATI ALLA PAGINA DOWNLOAD.HTML

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sinceramente non ho analizzato più di tanto il codice postato, semplicemente prova questo:

    guarda cosa attualmente viene mostrato ai tuoi utenti e dove viene generato il corrispondente codice HTML... se vuoi fare un reindirizzamento metti nel blocco PHP come ultimo comando header('location: paginadaaprire.php'), mentre se vuoi un reindirizzamento "ritardato" (tipo: compare un messaggio che dice "verrai reindirizzato... etc... etc...") aggiungi un blocco JavaScript che effettua questa operazione.

  4. #4
    non mi intendo molto di javascript quindi non so come fare

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    nella parte HTML dove vuoi che compaia aggiungi (come aggiungeresti qualunque altro blocco HTML):

    codice:
    <script type="text/javascript">
    <!--
    function cambiopagina() {
        window.location = "nuovapagina.php";
    };
    setTimeout('cambiopagina()', 5000);
    //-->
    </script>
    <div>
       Stai per essere reindirizzato su "nuovapagina.php"
    </div>
    naturalmente metti al posto di "nuovapagina.php" quella dove reindirizzare (anche con percorsi se occorre) e puoi cambiare 5000 con quel che vuoi: sono i millisecondi di attesa (5000ms=5 secondi)

  6. #6
    non funziona ho meglio si ma
    anche se non si effettua il login
    si viene reindirizzati alla pagina selezionata
    QUESTO E IL CODICE C'E QUALCOSA DI SBAGLIATO
    Codice PHP:
    <?php
    <div>
    <
    font color="white">Per accede a questa area del sito devi essere Registrato

    fai il login qui sotto oppure registrati
    </font>[url="iscriviti.php"_QUI_[/url]
    </
    div>
    include (
    'config.php');

    $username $_POST['username'];
    $password $_POST['password'];

    $query "SELECT * FROM utenti WHERE username = '$username' AND password = '$password'";

    $result mysql_query($query$conn);
    $num_rows mysql_num_rows($result);

    if (
    $num_rows != 1) {    
        echo 
    'Errore, dati non presenti nel nostro database. [url="index.php?pg=3"]Effettua il login[/url]';

    } else {
        
    session_start();
        
        include_once (
    'function.php');
        
        
    $chiave SessioneCasuale();
        
        
    $insert "UPDATE utenti SET chiave = '$chiave' WHERE username = '$username'";
        
    $res_insert mysql_query($insert) or die('Errore query: ' mysql_error());
        
    //REINDIRIZZAZIONE IN JAVASCRIPT
        
    $_SESSION['chiave'] = $chiave;
        
        <
    script type="text/javascript">
    <!--
    function 
    cambiopagina() {
        
    window.location "mews.php";
    };
    setTimeout('cambiopagina()'5000);
    //-->
    </script>
    <div>
       Stai per essere reindirizzato su "news.php"
    </div>
        }

    ?>

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    a occhio sembra giusto... prova a stampare a video nell'HTML una scritta tipo "REINDIRIZZAMENTO JAVASCRIPT" e assicurati che compaia solo agli utenti registrati... o meglio fai così:

    al posto del blocco <script>....</script> metti <div>REINDIRIZZAMENTO</div> e poi posta l'html che viene generato nel caso l'utente sia loggato e nell'altro caso.

    Una cosa non ho capito: quando l'utente è erroneamente reindirizzato compare la scritta "Stai per essere reindirizzato su "news.php"?

  8. #8
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ciao , mi intrometto nel discorso chiedendovi questo:

    io ho preso lo script per il reindirizzamento , ma ho un problema , non so dove richiamarlo.

    io vorrei che una volta inviato il form alla pagina (che è la stessa) mi reinderizzi solo ed esclusivamente se l'utente ha inserito i campi e siano stati trovati nel db:
    posto il codice :
    codice:
    <script type="text/javascript">
    <!--
    function cambiopagina() {
        window.location = "inserimento_deb.php";
    };
    setTimeout('cambiopagina()', 1000);
    //-->
    </script>
    
    </head>
    
    
    <body>
    	<?php 
    	//LA SESSIONE HA INIZIO , QUANDO VERIFICATO SE IL CLIENTE è REGISTRATO ALLORA INSERIAMO ALMENO L'ID IN SESSIONE
    	session_start();
    	include 'connect.php';
    	//CARICO LE VARIABILI INVIATE VIA POST
    	$idus = $_GET['id_user'];
    	$tips = $_GET['tipoadd'];
    	$utente = $_POST['user_name'];
    	$pass = $_POST['password'];
    	$controllo = false;
    	if (!empty($_POST['accedi'])){
    		//VERIFICO SE LA CONNESSIONE HA AVUTO SUCCESSO
    if (!$connesso){
    	die ("errore di connessione --> " .mysql_error());
    }else{
    	//SE CONNESSO AL DB LANCIO LA QUARY
    	$sql = "SELECT id_utente , user_name, password , last_login FROM $tab_utente;" ;
    	$query = mysql_db_query($db_nome , $sql);
    	if (!$query){
    		die ("richiesta non eseguita contattare un amministratore di sisteme --> "  .mysql_error());
    	}else{
    	//SE L'ESECUZIONE DELLA QUARY HA AVUTO SUCCESSO ESTRAPOLO I DATI 	
    	$count = 0;
    		while ($row=mysql_fetch_array($query)){
    			$id_utente = $row['id_utente'];	
    			$pws = $row['password'];
    			$utenza = $row['user_name'];
    			//VERIFICO SE I DATI NEL DB SONO UGUALI CON QUELLI DI LOGIN
    			if (($pws === $pass) && ($utente === $utenza)){
    				$_SESSION['id'] = $id_utente ;
    				$controllo = true;
    				break;
    			}else{
    				$controllo = false;
    				}
    		}
    		}
    		//SE CONTROLLO è POSITIVO FACCIO ACCEDERE SALVANDO IN SESSIONE ID DI CHI HA APPENA EFFETTUATO L'ACCESSO
    		if ($controllo){
    			echo "reindirizzamento";
    			
    		}else{
    			echo "<font color=\"red\"><td>errore nella fase di login ricontrollare user e password</td></font>";
    			}
    	}
    	mysql_close;
    }
    	 echo "<h1>Login</h1>
    	 <form action=\"login.php?id_user=$idus&tipoadd=$tips\" method=\"post\" onUnload=\"cambiopagina()\">
    	 <table border=\"1\">
    	 <tr>
    	 <td>inserire nome e password per accedere al sito</td>
    	 <td></td>
    	 </tr>
    	 <tr>
    	 <td>user_name<td>
    	 <td><input type=\"text\" name=\"user_name\" value=\"\"><td>
    	 </tr>
    	 <tr>
    	 <td>password<td>
    	 <td><input type=\"password\" name=\"password\" value=\"\"><td>
    	 </tr>
    	 <tr>
    	 <td><input type=\"submit\" name=\"accedi\" value=\"ACCEDI\"><input type=\"reset\" name=\"reset\" value=\"RESET\"><td>
    	 <td><td>
    	 </tr>
    	 </table>
    	 </form>
    	 ";		
    	?>
    </body>
    </html>
    io ho inserito un onunload nel form , ma se richiamo la pagina per la prima volta lui mi reinderizza all'altra, se il valore è sbagliato mi reinderizza , anche se è giusto...
    ma io ho bisogno che mi reinderizzi solo quando la condizione qui sotto sia positiva
    codice:
    if (($pws === $pass) && ($utente === $utenza)){
    				$_SESSION['id'] = $id_utente ;
    				$controllo = true;
    				break;

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.