Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 42
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    110

    Login basato su tabelle phpbb

    ciao a tutti ho un altersito con delle pagine solo che vorrei mettere una registrazione e login. Visto che ho anche un forum collegato alla home vorrei mettere solo un login php che si basa sulle tabelle create da phpbb.Il login però dovrà avere come form username e password però non tutti gli utenti iscritti al forum potranno loggarsi alla mia home e vorrei mettere che solo un gruppo non potrà accedere cioè se metto che il gruppo 1 di phpbb non può fare il login alla home e l'utente x iscritti l gruppo 1 sul forum tenta di fare il login gli appare un messaggio di errore.
    Non so se mi sono spiegato, qualcuno riuscirebbe a farmi alemno una bozza così per avere un idea del codice??

  2. #2
    Ciao idro
    Se hai il pieno controllo alle tabelle degli utenti e la gestione della pagina dove effettuare il login e molto semplice.

    Esempio

    login.php --- Pagina in cui appare il form di autenticazione
    check_param.php --- Pagina che riceve i dati dal post del form della pagina login.php
    In quest'ultima pagina, basta fare il seguente controllo:
    (do per scontatto che abbia pulito per bene le stringhe ricevute dal post)
    codice:
      $auth_group = mysql_query("SELECT ID FROM grp_user WHERE username = $user AND pwd = $pwd";
      if(mysql_num_rows($auth_group)>0)
      {
          $record = mysql_fetch_array($auth_group);
          if($record[ID]==1)
          header("Location login.php?status=denied");
      }
      else
         header("Location index.php"); //vai alla pagina richiesta
    Nella pagina di login.php invece devi mettere il seguente controlllo
    codice:
        if($_GET[msg]=='denied')
           print "Non sei abilitato ad entrare ";
          //mostra form
    Spero di esserti stato d'aiuto.
    Ho una logica tutta mia, fatta di if else ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    110
    dove metto però l'ID del gruppo che non può accedere??

  4. #4
    Ciao idro.
    Dal primo post sembrava che nella tabella degli utenti aveva una reazione con quella dei gruppi.
    Se cosi non fosse è ho sbagliato io, basta creare una tabella chiamata "user_group" con un ID, e un nome, poi basta aggiungere un campo alla tabella utenti, che sarebbe la foreign key della tabella user_group, ovvero l'ID stesso della tabella.
    Spero di esserti stato d'aiuto.

    Ho una logica tutta mia, fatta di if else ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    110
    nella tabella degli utenti c'è anche l'ID del gruppo di appartenenza cioè 1, 2,3 ecc
    Quindi lo script dovrebbe controllare che dopo l'immissione dei dati username e password se l'utente appartiene al gruppo id=1 allora da errore altrimenti procede
    Edit: La password è in md5 quindi bisogna convertirla penso prima

  6. #6
    Allora è semplicissimo !
    Quando ricevi i dati dal post del form, innanzitutto ripulisci le stringhe tramite le funzioni addslashes e trim, la prima serve nel caso fossero presenti caratteri come apici o virgolette nella stringa, la seconda invece serve a eliminare eventuali spazi all'inizio e alla fine della stringa, poi una volta pulita la stringa, converti la password tramite la funzione md5() un esempio completo lo trovi sotto :
    codice:
       $user = $_POST['user']; // ricevo dal form la variabile user
       $pwd = $_POST['pwd']; // ricevo dal form la variabile pwd
       $user = addslashes($user); // aggiungo alla variabile user eventuali slash
       $pwd = addslashes($pwd); // aggiungo alla variabile pwd eventuali slash
       $user = trim($user) // elimino alla variabile user eventuali spazi vuoti
       $pwd = trim($pwd) // elimino alla variabile pwd eventuali spazi vuoti
       $query = mysql_query("SELECT group FROM utenti WHERE user=$user AND pwd=$pwd");
       if(mysql_num_rows<1)
       {
           header("Location login.php?msg=invalid");
           exit;
       }
       else
       {
           $grp = mysql_fetch_array[$query];
           if($grp[group] == 1)
           {
               header("Location login.php?msg=denied");
               exit;
           }
           else
           {
              header("Location index.php");
              exit;
           }
       }
    Spero di esserti stato d'aiuto.

    Ho una logica tutta mia, fatta di if else ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    110
    mi da errore a questa riga:
    Codice PHP:
    $pwd trim($pwd// elimino alla variabile pwd eventuali spazi vuoti 
    Come risolvo l'errore???

  8. #8
    Posta la stringa di errore.
    Ho una logica tutta mia, fatta di if else ...

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    110
    codice:
    Parse error: syntax error, unexpected T_VARIABLE in E:\wamp\www\homepage\dologin.php on line 7
    è in locale forse per questo da errore

  10. #10
    Ciao idro.
    Il parser di php ha perfettamente ragione ha darti errore !
    Infatti è un errore di sintassi relativo al punto è virgola mancante alla linea 7, ovvero dove si ha il trim delle variabili.
    Infatti Php cerca di processare la variabile $user = trim($user) e non trovando il ; associa la linea successiva come continuazione della precedente.
    Basta mettere il punto è virgola ad entrambe le variabili prima dell'inizio dei commenti.
    Ah un ultima correzione dove vai a effettuare la mysql_fetch_array le parentesi quadre vanno sostituite con le tonde.
    Scusami ma lo script l'ho scritto di fretta.

    Ho una logica tutta mia, fatta di if else ...

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.