• User Newbie

    Form autenticazione utenti registrati

    Ciao ragazzi,

    sono un principiante di Php e ho un problema che non riesco a risolvere e cioè:

    devo consentire di raggiungere una determinata pagina per il download solo ad utenti registrati che hanno nome utente e password.

    Queste informazioni (utente e password) sono scritte in un file di testo e sono separate dal carattere ":", per es. tizio:caio per nome utente e password;

    Ho pensato di leggere il file di testo delle password e di mettere le righe in un array in questomodo:

    $script = explode("\n", file_get_contents("/path/filepassword"));

    se questo fosse corretto come devo fare per ciclare nell'array e verificare ad ogni ciclo se il nome utente e la password digitata dall'utente esiste all'interno del file?

    Poi vorrei che il numero di tentativi non fosse superiore a 3 e nel caso di 3 tentativi non riusciti che mi scrivesse un messaggio, mentre ovviamente se il nome utente e password esistono mi aprisse la pagina del download.

    Un grazie a chi saprà darmi una mano.

    Ciao.


  • Super User

    Ciao toposauro,
    prova così:

    
    <?php
    session_start();
    $_SESSION[tentativi]=0;
    $script=file("/path/filepassword");
    foreach($script as $riga){
    $el=explode(":",$riga);
    if(**$usernamedigitato**=$el[0] && **$passworddigitata**=$el[1] && $_SESSION[tentativi]<=3){
    //istruzioni se l'utente è loggato correttamente
    }
    else{
    $_SESSION[tentativi]++;
    }
    if($_SESSION[tentativi]>=3){
    echo "Hai utilizzato i tre tentativi a disposizione";
    }
    
    ?>
    ```Sostituisci le variabili in grassetto,prova lo script e fammi sapere se funziona ;)
    ciao!

  • User Attivo

    Ciao Matt come stai? E' un bel po' che non ci si sente , ma sapevo di trovarti qui.
    Cercavo uno script che mi permettesse difare in modo che un utente si registri ed avesse una pagina personale per caricare informazioni.
    E' complicato?
    Spero di no
    Che fine ha fatto il tuo forum?
    Fammi sapere ci sentiamo presto.
    Marco


  • User Newbie

    @probid said:

    Ciao toposauro,
    prova così:

    >
    <?php
    session_start();
    $_SESSION[tentativi]=0;
    $script=file("/path/filepassword");
    foreach($script as $riga){
    $el=explode(":",$riga);
    if(**$usernamedigitato**=$el[0] && **$passworddigitata**=$el[1] && $_SESSION[tentativi]<=3){
    //istruzioni se l'utente è loggato correttamente
    }
    else{
    $_SESSION[tentativi]++;
    }
    if($_SESSION[tentativi]>=3){
    echo "Hai utilizzato i tre tentativi a disposizione";
    }
     
    ?>
    >```Sostituisci le variabili in grassetto,prova lo script e fammi sapere se funziona ;)
    ciao!
     
    Purtroppo quando tento il Login mi da questo errore:
     
    **Parse error**: parse error, unexpected $ in **/var/www/...../autentica.php** on line **17**
     
    I File utilizzati sono form.php e autentica.php.
     
    Questo** è il loro testo**:
     [php]
    form.php:
    <form name="modulo" action="autentica.php" method="post">
    <head>
    <meta http-equiv="Content-Language" content="it">
    </head>
    <title>Login</title>
    <table border="0" width="100%" id="table1" frame="box">
     <tr>
      <td width="10%"><b><font face="Verdana" size="2" color="#0000FF">
      Login Area DownLoad:</font></b></td>
      <td height="30" width="89%">&nbsp;</td>
     </tr>
     <tr>
      <td width="13%" style="font-family: Verdana; font-size: 10"><b>Nome Utente</b></td>
      <td height="21" valign="top" width="89%"><input name="nomeutente" size="50"></td>
     </tr>
     <tr>
      <td width="13%" style="font-family: Verdana; font-size: 10">Password</td>
      <td height="21" valign="top" width="89%"><input name="password" size="50"></td>
     </tr>
     <tr>
      <td width="13%" style="font-family: Verdana; font-size: 10">&nbsp;</td>
      <td height="21" valign="top" width="89%">
      <form method="POST" action="--WEBBOT-SELF--">
              <!--webbot bot="SaveResults" U-File="../_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
              <p><input type="submit" value="Login" name="B1"></p>
            </form>
      </td>
     </tr>
     </table>
    </form>
     [/php]
    autentica.php:
     [php]
    <?php
    session_start();
    $_SESSION[tentativi]=0;
    $script=file("/download/dbuser/spinnaker.pwd");
    foreach($script as $riga){
    $el=explode(":",$riga);
    if($nomeutente=$el[0] && $password=$el[1] && $_SESSION[tentativi]<=3){
    //istruzioni se l'utente è loggato correttamente
    }
    else{
    $_SESSION[tentativi]++;
    }
    if($_SESSION[tentativi]>=3){
    echo "Hai utilizzato i tre tentativi a disposizione";
    }
    ?>
     [/php]
    Spero tu possa aiutarmi.
     
    Ciao e Grazie.

  • User Attivo

    Prova così:
    autentica.php
    [PHP] <?php
    session_start();
    $_SESSION[tentativi]=0;
    $script=file("/download/dbuser/spinnaker.pwd");
    foreach($script as $riga){
    $el=explode(":",$riga);
    if($_POST[nomeutente]=$el[0] && $_POST[password]=$el[1] && $_SESSION[tentativi]<=3){
    //istruzioni se l'utente è loggato correttamente
    }
    else{
    $_SESSION[tentativi]++;
    }
    if($_SESSION[tentativi]>=3){
    echo "Hai utilizzato i tre tentativi a disposizione";
    }
    ?>[/PHP]
    Fammi sapere 😉


  • Super User

    @toposauro said:

    Purtroppo quando tento il Login mi da questo errore:

    Parse error: parse error, unexpected $ in /var/www/...../autentica.php on line 17

    Spero tu possa aiutarmi.

    Ciao e Grazie.
    [php]
    <?php
    session_start();
    $_SESSION[tentativi]=0;
    $script=file("test2.php");
    foreach($script as $riga){
    $el=explode(":",$riga);
    if($_POST[nomeutente]=$el[0] && $_POST[password]=$el[1] && $_SESSION[tentativi]<=3){
    //istruzioni se l'utente è loggato correttamente
    }
    else{
    $_SESSION[tentativi]++;
    echo "password errata";
    }
    if($_SESSION[tentativi]>=3){
    echo "Hai utilizzato i tre tentativi a disposizione";
    }}?>[/php]Ho aggiustato.
    Prova ora 🙂

    @Piterrey said:

    Ciao Matt come stai? E' un bel po' che non ci si sente , ma sapevo di trovarti qui.
    Cercavo uno script che mi permettesse difare in modo che un utente si registri ed avesse una pagina personale per caricare informazioni.
    E' complicato?
    Spero di no
    Che fine ha fatto il tuo forum?
    Fammi sapere ci sentiamo presto.
    Marco

    Ciao peter 😄
    Usa lo script che ho fornito a toposauro,e se l'utente è loggato correttamente esegui una semplice query sul db mysql dal quale estrai il codice della pagina abbinata al nome dell'utente 🙂

    Il database del forum è andato perduto dopo alcuni problemi sul server del provider.
    Ora abbiamo venduto il dominio e lo spazio.
    [/OT]

    Ciao!