Limitare accesso a form html con User e Password

Discussione in 'PHP' iniziata da newanfa, 30 Ottobre 2012.

  1. newanfa

    newanfa Utente Attivo

    Registrato:
    12 Maggio 2010
    Messaggi:
    131
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Allora Borgo ti spiego meglio quello che vorrei fare io.

    1) Io ho la pagina Manchester.html dalla quale invio il form con le caselle della squadra. Ti ricordi?

    2) Bene...Siccome il form è diventato perfetto...Per essere perfezionisti ho pensato (anche se non succederebbe mai e anche se il nostro blog è chiuso a noi 7) che chiunque può entrare nella mia pagina e inserire la formazione al mio posto.

    3) Allora io vorrei fare così. Quando io dalla Homepage clicco il collegamento alla mia pagina vengo indirizzato ad una pagina con presente Username e Password e se non lo ho devo seguire il pulsante registrati. Uno si deve registrare semplicemente scrivento Nome Cognome Squadra email e pass. I dati vanno nel database e poi la prossima volta uno se scrive es: manchester@libero.it e pass ciao va nella pagina manchester mentre se mette gli altri dati di accesso va nella pagina dell'altra squadra...

    Questo si può fare? Perchè mi viene il dubbio di come fare a sapere la password che va a finire in mysql...

    4) La cosa importante è che la sessione di ogni squadra deve essere aperta sino a quando uno non resetta il proprio browser un pò come succede su google...

    Mi delucidi? Grazie mille!
     
  2. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.028
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao, vediamo se ho capito
    1. nella home vuoi un link che ti permetterebbe di accedere ad una pag di log (loggati.php)
    2. in loggati php c'è un form in cui inserire user e pass, con il controllo
    2.1. se user e pass errati vai ad una pag in cui registrarti (tutti possono registrarsi? o solo voi 7?)
    2.2. se pass e user giusta, in funzione di user e pass vai alla pagina del form delle squadre, giusto?
    se siete in 7 la pag del form è uguale per tutti e cosa eventualmente cambia (es. qualche indirizzo email o l'oggeto o qualche altra cosa)?

    p.s.
    per prima cosa ti conviene (anzi necessario) salvare tutte le pagine con estensione .php (aggiustando i vari link interni)

    p.s. al p.s.
    cosa intendi con

    cioè che i dati del form inseriti rimangano selectati? (con il numero di dati che hai è una rogna)
     
  3. newanfa

    newanfa Utente Attivo

    Registrato:
    12 Maggio 2010
    Messaggi:
    131
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Allora per il punto 1 ci siamo.

    2) La pagina loggati.html ha un form con nome utente(email) e password e nella stessa pagina il tasto REGISTRATI se non ti sei già loggato precedentemente. Altrimenti i miei amici se vedono solo user e password la prima volta mi dicono che non possono accedere perchè non si sono registrati.
    2.1) Ci dobbiamo registrare noi 8.
    2.2) Se mail e pass giuste ognuno deve essere reindirizzato alla propria pagina di form per l'invio della squadra.
    Se per esempio io metto manutd2003 e pass manchester vado a manchester.php, mentre con un'altra mail e password vai da un'altra pagina.

    Per quanto riguarda l'ultimo punto intendo dire che se io mi sono loggato...invio tranquillamente la squadra e poi continuo ad utilizzare il blog. ..se ritorno sulla pagina non devo rieffettuare il log almenochè non ho fatto il logout...
     
  4. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.028
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    mi serve sapere che differenza c'è tra le varie pagine di voi 8 e cosa di uguale.
    è inutile e controproducente fare 8 pagine che si differenziano per poco

    edit
    dimenticavo
    la pass la scelglie l'utente? la sua email deve essere unica?
     
  5. newanfa

    newanfa Utente Attivo

    Registrato:
    12 Maggio 2010
    Messaggi:
    131
    Mi Piace Ricevuti:
    0
    Punteggio:
    0
    Non so se ti ricordi. Ogni pagina è completamente diversa dall'altra in quanto cambiano tutti i select e gli option e i vari indirizzi email.

    Ognuno avrà una mail unica e una passwors unica che è quella che sceglieremo al momento della registrazione e che andrà a finire nel database.
     
  6. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.028
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    un esempio di pagina di log, guarda se può fare il caso tuo
    leggi i commenti
    PHP:
    <?php
    ob_start
    ();
    session_start();
    //simulo una tabella del db chiamata utenti con un array
    $utente=array();
    $utente['pinco']='aa@aa.it';
    $utente['pallo']='bb@bb.it';
    $utente['pallino']='cc@cc.it';
    $utente['sempronio']='dd@dd.it';
    $utente['sofonisba']='ee@ee.it';
    $utente['asdrubale']='ff@ff.it';
    $utente['attenzio']='gg@gg.it';
    $utente['pancrazio']='hh@hh.it';
    //qui si potrebbe fare un require_once "elenco_pass.php"; //se non usi il db
    //o eventualmente usare un file txt (piu rognoso a fare)
    //***************************
    if(isset($_POST['log'])){
        
    $errori="";
        if(!
    filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){//valido l'indirizzo email
            
    $errori.="hai inserito un indirizzo non valido<br />";
        }else{
            
    $email=$_POST['email'];
        }
        if(
    htmlspecialchars(trim($_POST['pass'])) ==""){//valido la password
            
    $errori.="la password non pu&ograve; essere vuota<br />";
        }else{
            
    $passstrtolower($_POST['pass']);
        }
        if(
    $errori==""){//se non ci sono errori controllo se registrato
            
    if(!isset($utente[$pass])){
                
    $errori.="non sei autorizzato ad entrare<br />";//l'utente NON è registrato
            
    }else{
                if(
    $email != $utente[$pass]){
                    
    $errori.="paswsword e email non coincidono<br />";
                }
            }
            if(
    $errori==""){//tutto è andato ok
                
    $_SESSION['email']=$email;//queste due sessioni mi serviranno nella riservata
                
    $_SESSION['pass']=$pass;
                
    header ('location: pagina_riservata.php');//riinvio alla pagina riservata
                /*oppure se vuoi mantenere una pagina per utente potresti fare
                switch($pass){
                    case 'pinco': header ('location: pagina_di_pinco.php');
                    break;
                    case 'pallo': header ('location: pagina_di_pallo.php');
                    break;
                    //eccetera......
                }
                */
                
    exit();
            }
        }
        
    //ci sono stati errori quindi mostro messaggio e rimando al form
        
    echo $errori;
        
    header("Refresh content=3; URL={$_SERVER['PHP_SELF']}");
        exit();
    }
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <table width="37%"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="25%">tua email</td>
        <td width="42%"><input name="email" type="text"></td>
        <td width="33%">&nbsp;</td>
        </tr>
      <tr>
        <td>tua password </td>
        <td><input name="pass" type="password"></td>
        <td>&nbsp;</td>
        </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td><input name="log" type="submit" id="log" value="loggati"></td>
        </tr>
      <tr>
        <td>&nbsp;</td>
        <td><a href="registrati.php">registrati</a></td>
        <td><a href="index.php">esci</a></td>
        </tr>
    </table>
    </form>
    <?php
    ob_end_flush
    ();
    ?>
    se poi gli utenti sono solo 8 (al massimo una decina) forse non ti conviene usare un db (a meno che non ti serva per altro) ma assegni tu le password e usi lo script che ti ho postato
     
Sto caricando...

Condividi questa Pagina