Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    Login, sessioni ed utenti

    Ho un problema: ho trovato questo codice php per creare pagine protette, con un form di login...

    Il problema è che in questo caso può esistere uno ed un solo user in grado di accedere alle pagine protette:admin.

    Se volessi creare più user come potrei fare?

    Qualsiasi soluzione anche senza dover utilizzare mysql è beneaccetta!

    Grazie, questo è il codice!

    codice:
    1.	<?php 
    2.	//dati per il login 
    3.	$login_user="admin"; 
    4.	$pass_user="189bbbb00c5f1fb7fba9ad9285f193d1"; //passwd="prova" 
    5.	$redirect="http://localhost/~m3xican/m3xican/su.php"; 
    6.	 
    7.	//gestione della sessione nel caso in cui i cookie sono disabilitati 
    8.	if(IsSet($_POST['PHPSESSID']) && !IsSet($_COOKIE['PHPSESSID'])) 
    9.	{ 
    10.	  $PHPSESSID=$_POST['PHPSESSID']; 
    11.	  header("Location: $redirect?PHPSESSID=$PHPSESSID"); //si ricarica la pagina di login 
    12.	} 
    13.	 
    14.	session_start(); //si inizia o continua la sessione 
    15.	 
    16.	//controllo user e passwd da login
    17.	if(IsSet($_POST['posted_username']) && IsSet($_POST['posted_password'])) 
    18.	{
    19.     if($login_user==($_POST['posted_username']) && pass_user==md5($_POST['posted_password'])) 
    20. $_SESSION['user']=$_POST['posted_username']; 
    21.	} 
    22.	 
    23.	//creazione cookie per login automatico 
    24.	if(IsSet($_POST['ricorda']) && IsSet($_SESSION['user'])) 
    25.	{ 
    26.	  $cok=md5($login_user)."%%".$pass_user; 
    27.	  setcookie("sav_user",$cok,time()+31536000); 
    28.	} 
    29.	 
    30.	//logout 
    31.	if($_GET['logout']==1) 
    32.	{ 
    33.	  $_SESSION=array(); // Desetta tutte le variabili di sessione. 
    34.	  session_destroy(); //DISTRUGGE la sessione. 
    35.	  if(IsSet($_COOKIE['sav_user'])) //se presente si distrugge il cookie di login automatico 
    36.	    setcookie("sav_user",$cok,time()-31536000); 
    37.	  header("Location: $redirect"); //si ricarica la pagina di login 
    38.	  exit; //si termina lo script in modo da ritornare alla schermata di login 
    39.	} 
    40.	 
    41.	//controllo user e passwd da cookie 
    42.	if(IsSet($_COOKIE['sav_user'])) 
    43.	{ 
    44.	  $info_cok=$_COOKIE['sav_user']; 
    45.	  $cok_user=strtok($info_cok,"%%"); 
    46.	  $cok_pass=strtok("%%"); 
    47.	  setcookie("sav_user",$info_cok,time()+31536000); 
    48.	 
    49.	  if($cok_user==md5($login_user) && $cok_pass==$pass_user) 
    50.	    $_SESSION['user']=$login_user; 
    51.	} 
    52.	 
    53.	//caso in cui si vuole ricordare il login, ma i cookie sono off 
    54.	if(!IsSet($_COOKIE['PHPSESSID']) && IsSet($_POST['ricorda'])) 
    55.	  header("Location: $redirect?nocookie=1"); 
    56.	?> 
    57.	<HTML> 
    58.	<HEAD> 
    59.	</HEAD> 
    60.	<BODY> 
    61.	<?php 
    62.	 
    63.	$PHPSESSID=session_id(); 
    64.	 
    65.	if(!IsSet($_SESSION['user'])) //non siamo loggati, pagina di login 
    66.	{ 
    67.	  if($_GET['nocookie']==1) //i cookie sono off e si vuole ricordare il login 
    68.	    print("Spiacente, ma con i cookie disabilitati non posso fare i miracoli ;)
     
    69.	Attivali se vuoi ricordare il tuo login.
    "); 
    70.	  print("
    
     <FORM METHOD=POST ACTION=\"login.php\"> 
    71.	username: 
    72.	<INPUT TYPE=TEXT SIZE=20 NAME=posted_username>
     
    73.	password: 
    74.	<INPUT TYPE=PASSWORD SIZE=20 NAME=posted_password>
     
    75.	ricordami: <INPUT TYPE=CHECKBOX NAME=ricorda VALUE=1>
    
     
    76.	<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Loggami\">
    "); 
    77.	 
    78.	  if(!IsSet($_COOKIE['PHPSESSID'])) //i cookie sono off, dobbiamo propagare noi il PHPSESSID 
    79.	    print("<INPUT TYPE=HIDDEN NAME=PHPSESSID VALUE=$PHPSESSID>"); 
    80.	  print("</FORM>"); 
    81.	} 
    82.	else //siamo loggati pagina riservata 
    83.	{ 
    84.	  $username=$_SESSION['user']; 
    85.	  print("Il tuo ID ?: $PHPSESSID 
    
    "); 
    86.	  print("Sei loggato come: $login_user
    
    "); 
    87.	  print("<A HREF=\"login.php?logout=1\">logout</A>"); 
    88.	} 
    89.	?> 
    90.	</BODY> 
    </HTML>

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    55

    array[ ]

    La cosa migliore sarebbe avere un DB mysql a disposizione per cresre una tabella "consulenti" rendendo dinamico tutto il sistema di gestione delle password.

    ... ma per iniziare una matrice contenente le informazioni di chi si stà loggando per poter sapere chi ha fatto cosa e quando è più che sufficiente.

    http://it2.php.net/manual/it/ref.array.php
    la vita è dura ... per gli altri!

  3. #3
    esattamente come dovrebbe essere scritto il codice?

  4. #4
    codice:
    $utenti = array (
    			array(
    				"login_user" => "utente1",
    				"pass_user" => "35ae31add1bb5d083fc9b8e198eb1c5f"
    				),
    			array(
    				"login_user" => "admin",
    				"pass_user" =>  "35ae31add1bb5d083fc9b8e198eb1c5f"
    				)
    			);
    $vet = array(
    			"login_user" => $_POST["posted_username"],
    			"pass_user" => $_POST["posted_pass"]
    			);
    
    
    session_start(); //si inizia o continua la sessione 
    
    
    //gestione della sessione nel caso in cui i cookie sono disabilitati 
    if(IsSet($_POST['PHPSESSID']) && !IsSet($_COOKIE['PHPSESSID'])) 
    { 
      $PHPSESSID=$_POST['PHPSESSID']; 
      header("Location: $redirect?PHPSESSID=$PHPSESSID"); //si ricarica la pagina di login 
    } 
     
    //controllo user e passwd da login 
    if(IsSet($_POST['posted_username']) && IsSet($_POST['posted_password'])) 
    { 
      //if($login_user==($_POST['posted_username']) && $pass_user==md5($_POST['posted_password'])) 
        if (in_array($vet,$utenti))
    	$_SESSION['user']=$_POST["posted_username"]; 
    } 
    
    //creazione cookie per login automatico 
    if(IsSet($_POST['ricorda']) && IsSet($_SESSION['user'])) 
    { 
      $cok=md5($login_user)."%%".$pass_user; 
      setcookie("sav_user",$cok,time()+31536000); 
    } 
     
    //logout 
    if($_GET['logout']==1) 
    { 
      $_SESSION=array(); // Desetta tutte le variabili di sessione. 
      session_destroy(); //DISTRUGGE la sessione. 
      if(IsSet($_COOKIE['sav_user'])) //se presente si distrugge il cookie di login automatico 
        setcookie("sav_user",$cok,time()-31536000); 
        header("Location: $redirect_home"); //si ricarica la pagina di login 
      exit; //si termina lo script in modo da ritornare alla schermata di login 
    } 
     
    //controllo user e passwd da cookie 
    if(IsSet($_COOKIE['sav_user'])) 
    { 
      $info_cok=$_COOKIE['sav_user']; 
      $cok_user=strtok($info_cok,"%%"); 
      $cok_pass=strtok("%%"); 
      setcookie("sav_user",$info_cok,time()+31536000); 
     
      if($cok_user==md5($login_user) && $cok_pass==$pass_user) 
        $_SESSION['user']=$login_user; 
    } 
     
    //caso in cui si vuole ricordare il login, ma i cookie sono off 
    if(!IsSet($_COOKIE['PHPSESSID']) && IsSet($_POST['ricorda'])) 
      header("Location: $redirect?nocookie=1"); 
    
     
    $PHPSESSID=session_id(); 
    if(!IsSet($_SESSION['user'])) //non siamo loggati, pagina di login 
    { 
      if($_GET['nocookie']==1) //i cookie sono off e si vuole ricordare il login 
        echo"<h2 class=\"warning\">Spiacente, ma con i cookie disabilitati non posso fare i miracoli
     Attivali se vuoi ricordare il tuo login.
    </h2>"; 
        echo"
    <center><h2 class=\"warning\">[img]Control-Panel.jpg[/img] Gestione Spiritus Domini</h2></center>
    			
    
    
    			<FORM METHOD=POST ACTION=\"admin.php\"> 
    			<div class='div.center'>
    			<center>
    			User Name
    
    			<INPUT TYPE=TEXT SIZE=20 NAME=posted_username>
     
    			
    
    			Password
     
    			<INPUT TYPE=PASSWORD SIZE=20 NAME=posted_password>
     
    			
    
    			Ricorda Accesso
    
    			<INPUT TYPE=CHECKBOX NAME=ricorda VALUE=1> 
    			
    
    
    
    
    			<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Entra\">
    
    			<center>
    	 	 	</div>
    		 "; 
     
      if(!IsSet($_COOKIE['PHPSESSID'])) //i cookie sono off, dobbiamo propagare noi il PHPSESSID 
        echo"<INPUT TYPE=HIDDEN NAME=PHPSESSID VALUE=$PHPSESSID>"; 
    	echo"</FORM>"; 
    } 
    else //siamo loggati pagina riservata 
    { 
      $username=$_SESSION['user']; 
      print("Il tuo ID ?: $PHPSESSID 
    
    "); 
      echo "Bentornato $login_user
    
    "; 
    }
    ma non funziona....

    dove sbaglio?

  5. #5
    ciao, non potresti fare una cosa più semplice, nel senso, su un db metti user e pass passate dal login, e se esistono sul db fai partire la sessione, poi se vuoi ci puoi anche aggiungere un script che ti tracci tutto quello che l'utente ha fatto all'interno dell'area privata. Ciao ciao

  6. #6
    come posso realizzare una cosa del genere? Mi aiuti

    sarebbe l'ideale


  7. #7
    per le sessioni non ci sono problemi giusto?? è tutto postato sopra!
    per i db, hai installato phpmyadmin?

  8. #8
    si si tutto installato e funzionante

    ho creato una tabella utenti con id user e pass

  9. #9
    inserisci nel db più di una username e una relativa password. Sai usare il ciclo di controllo if?

  10. #10
    le condizioni quali dovrebbero essere?

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.