Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    header("Location: $dest[?]");

    mettiamo che io abbia un file in cui ogni riga di divida in $user $pass $dest......

    come faccio ad associare ad ogni $user o $pass il proprio $dest in modo da mandare l'user alla SUA paginetta personale.
    di seguito una porzione del php che non riesco a far funzionare (diciamo che non ci capisco nulla!!!)

    <?php
    $userlist = file("users.inc.php");

    if ( authUser($username,$userpass) ) {
    for ($i=1; $i<count($userlist); $i++) {
    $dest = explode(':',trim($userlist[$i]));
    }
    header("Location: $dest[1]");
    }
    function authUser($name, $pass) {
    $userlist = file("users.inc.php");
    $done = false;
    $auth = false;
    $found = false;
    $i = 1;
    while (!$done && !$found) {
    list($n,$p,$a) = explode(':',$userlist[$i]);
    $found = ($n==$name);
    $auth = $found && ($p == md5($name.$pass));
    $done = $auth || ($i>=count($userlist));
    $i++;
    }
    return $auth;
    }
    if (!$auth) {
    readfile("login.php");
    die("");
    }
    ?>

    sono preventivamente grato ad ogni uomo/donna dotato di pazienza che si prenda la briga di darmi una mano
    cecco

  2. #2

    Re: header("Location: $dest[?]");

    prova così
    codice:
    <?php
    function authUser($name, $pass) {
         // se la pass è criptata qui metti ex $pass = md5($pass); 
         $userlist = file("users.inc.php");
         foreach($userlist as $user) {
               list($n, $p, $d) = explode(":", trim($user));
               if($name == trim($n) && $pass == trim($p)) {
                    return $d;
               }
         }
    
         return false;
    }
    
    if(isset($_POST['login'])) {
           $username = htmlentities(trim($_POST['username']));
           $password = htmlentities(trim($_POST['password']));
           if($username != '' && $password != '' && ($dest = authUser($username, $password)) !== false) {
                   header("Location: $dest");
                   exit();
           } 
    }
    
    echo "<form action=\"".basename($_SERVER['PHP_SELF'])."\" method=\"post\">
            Username <input type=\"text\" name=\"username\">
    
            Password <input type=\"password\" name=\"password\">
    
            <center><input type=\"submit\" name=\"login\" value=\"login\">
           </form>";
    ?>
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  3. #3

    ora ci provo

    grazie della cortesia!

  4. #4

    non funziona ma.......

    ecco come l'ho modificato e credo che il malfunzionamento sia causa mia. seguono gli altri file che compongono il sistema così chi volesse aiutarmi a risolvere il problema ha tutte le unfo che necessita.

    gradisco moltissimo l'abuso di commento a spiegazione dello script, non immaginate quanto sia utile per imparare!

    lo scopo finale è questo:
    un distema di autenticazione con amministrazione (creare e distruggere utenti) che ad ogni utente assegni una destinazione personale (pagina personale che lui userà per gestire il suo spazio)
    tale pagina dovrebbe essere accessibile solo a lui quindi protetta e il login dovrebbe essere normalmente effettuato da una pagina diversa e comune per tutti (anche admin magari).

    1: pagina login_____________________________________________ _________

    <form action="auth_login.php" method=post>
    <input name="username" value="" size=10>
    <input name="password" type=password value="" size=10>
    <input name=submit type=submit value="Login">
    <input type=reset value="Clear">
    </form>

    2: php che controlla i dati (come proposto e modificato)_____________

    <?php
    function authUser($username, $password) {
    // se la pass è criptata qui metti ex $pass = md5($pass);
    $p = md5($username.$password);
    $userlist = file("users.inc.php");
    foreach($userlist as $user) {
    list($n, $p, $d) = explode(":", trim($user));
    if($name == trim($n) && $pass == trim($p)) {
    return $d;
    }
    }

    return false;

    }

    if(isset($_POST['login'])) {
    $username = htmlentities(trim($_POST['username']));
    $password = htmlentities(trim($_POST['password']));
    if($username != '' && $password != '' && ($dest = authUser($username, $password)) !== false) {
    header("Location: $dest");
    exit();
    }
    }

    echo "<form action=\"".basename($_SERVER['PHP_SELF'])."\" method=\"post\">
    Username <input type=\"text\" name=\"username\">

    Password <input type=\"password\" name=\"password\">

    <center><input type=\"submit\" name=\"login\" value=\"login\">
    </form>";
    ?>

    3: file che detiene le informazioni (users.inc.php)__________________

    <?php die("Access Restricted"); ?>
    a:4124bc0a9335c27f086f24ba207a4912:a.php

    b:21ad0bd836b90d08f4cf640b4c298e7c:b.php

    c:e0323a9039add2978bf5b49550572c7c:c.php


    4: file gestione utenti (adduser.php)________________________________

    <?php
    if (!isset($submit)) {
    ?>
    <form>
    <input name="name" size=10>
    <input name="pass" size=10>
    <input type="hidden" name="dest" value=".php">
    <input type=submit name="submit" value=" Set ">
    </form>
    <form action="admin_delchecked.php" method=post>
    <?php
    $userlist = file("users.inc.php");
    for ($i=1; $i<count($userlist); $i++) {
    list($n,$p,$a) = explode(':',chop($userlist[$i]));
    echo "[*]<input type=checkbox name=\"user[]\" value=\"$n\"> $n | $a ";
    }
    ?>




    <input type=submit name="submit" value=" Set ">
    </form>
    <? } else {
    $userlist = file("users.inc.php");
    $done = false;
    $auth = false;
    $found = false;
    $i = 0;
    while ((!$found) && ($i<count($userlist))) {
    $i++;
    list($n,$p,$a) = explode(':',$userlist[$i]);
    $found = ($n==$name);
    }
    if ($found) {
    echo "Error: Username $name already exists

    ";
    echo "<a href=adduser.php>Back</a>";

    } else {
    $p = md5($name.$pass);
    $a = $name.$dest;
    $i = count($userlist);
    $userlist[$i] = implode(':',array($name,$p,$a));
    sort($userlist);
    $fd = fopen("users.inc.php","w");
    fputs($fd,"<?php die(\"Access restricted\"); ?>\n");
    for ($i=1; $i < count($userlist); $i++) {
    fputs($fd,chop($userlist[$i])."\n");
    }
    fclose($fd);
    header("Location: $HTTP_REFERER");
    }
    }
    ?>

    5: file cancella utenti (admin_delchecked.php)_______________________

    <?php
    if (isset($user)) {
    $userlist = file("users.inc.php");
    $fd = fopen("users.inc.php","w");
    fputs($fd, "<?php die(\"Access Restricted\"); ?>\n");

    for ($i=1; $i < count($userlist); $i++) {
    list($n,$p,$a) = explode(':',$userlist[$i]);
    if (!in_array($n,$user)) {
    fputs($fd,$userlist[$i]);
    }
    }
    fclose($fd);
    }
    header("Location: $HTTP_REFERER");
    ?>



    quanta roba!!!

    ciao!

  5. #5
    login.php
    codice:
    <?php
    function authUser($username, $password, $archive) {
             $pass = md5($username.$password);
             $userlist = file($archive);
             array_shift($userlist); // salta la protezione
             foreach($userlist as $user) {
                     list($n, $p, $d) = explode(":", trim($user));
                     if($username == trim($n) && $pass == trim($p)) {
                        return $d;
                     }
             }
             return false;
    }
    
    $archive = "users.inc.php";
    if(isset($_POST['login'])) {
       $username = htmlentities(trim($_POST['username']));
       $password = htmlentities(trim($_POST['password']));
       if($username != '' && $password != '' && ($dest = authUser($username, $password, $archive)) !== false) {
          header("Location: $dest");
          exit();
       }
    }
    echo "
          <form action=\"".basename($_SERVER['PHP_SELF'])."\" method=\"post\">
           Username <input type=\"text\" name=\"username\">
    
           Password <input type=\"password\" name=\"password\">
    
           <center><input type=\"submit\" name=\"login\" value=\"login\">
          </form>";
    ?>
    adduser.php
    codice:
    <?php
    function check_user($username, $archive) {
             $userlist = file($archive);
             array_shift($userlist); // salta la protezione
             foreach($userlist as $user) {
                     list($n, $p, $d) = explode(":", trim($user));
                     if($username == trim($n)) {
                        return true;
                     }
             }
             return false;
    }
    
    $archive = "users.inc.php";
    $protection = "<? die(\"Accesso riservato\"); ?>\n";
    if(isset($_POST['submit'])) {
       $errors = array();
       $username = isset($_POST['username']) && trim($_POST['username']) != '' ? htmlentities(trim($_POST['username'])) : false;
       $password = isset($_POST['password']) && trim($_POST['password']) != "" ? htmlentities(trim($_POST['password'])) : false;
       $dest = isset($_POST['dest']) && trim($_POST['dest']) != "" ? htmlentities(trim($_POST['dest'])) : false;
    
       if($username === false) {
          $errors[] = "Il campo username è obbligatorio";
       } else if(check_user($username, $archive) === true) {
          $errors[] = "Username già presente nel database";
       }
    
       if($password === false) {
          $errors[] = "Il campo password è un campo obbligatorio";
       }
    
       if($dest === false) {
          $errors[] = "Il campo destinazione è obbligatorio";
       }
    
       if(count($errors) > 0) {
          echo implode("
    \n", $errors)."
    
    ";
       } else {
          $dati = array($username, md5($username.$password), $dest);
          $addline = (file_exists($archive) ? "" : $protection).implode(":", $dati)."\n";
          $fd = fopen($archive, "a") or die("Errore nell'apertura dell'archivio");
          fputs($fd, $addline);
          fclose($fd);
          echo "$username inserito nell'archivio: $username -&gt; $dest
    ";
       }
    
    }
    
    echo "
          <form action=\"".basename($_SERVER['PHP_SELF'])."\" method=\"post\">
           <input type=\"text\" name=\"username\" size=10>
           <input type=\"password\" name=\"password\" size=10>
           <input type=\"text\" name=\"dest\" value=\".php\">
           <input type=submit name=\"submit\" value=\" Set \">
          </form>";
    ?>
    deluser.php
    codice:
    <?php
    $archive = "users.inc.php";
    $protection = "<? die(\"Accesso riservato\"); ?>\n";
    if(isset($_POST['submit'])) {
       $errors = array();
       if(!isset($_POST['username']) || count($_POST['username']) <= 0) {
           $errors[] = "Procedura non valida o utenti non specificati";
       } else if(!is_array($_POST['username'])) {
           $errors[] = "Dati non validi";
       } else if(@!file_exists($archive)) {
           $errors[] = "Archivio non trovato";
       } else {
           $usernames = array();
           $del_users = array();
           $undel_users = array();
           foreach($_POST['username'] as $user) {
                   $usernames[] = htmlentities($user);
           }
           $userlist = file($archive);
           array_shift($userlist); // rimuove la protezione
           foreach($userlist as $key=>$user) {
                   list($n, $p, $d) = explode(":", trim($user));
                   if(in_array(trim($n), $usernames)) {
                      $del_users[$key] = trim($n);
                   }
           }
           $undel_users = array_diff($usernames, $del_users);
       }
    
       if(count($errors) > 0) {
          echo implode("
    \n", $errors);
       } else {
          if(count($undel_users) > 0) {
             echo "Utenti non trovati:".implode(", ", $undel_users);
          } else if(count($del_users) > 0) {
             foreach( $del_users as $key=>$value) {
                      unset($userlist[$key]);
             }
             $fp = fopen($archive, "w") or die("Errore nell'apertura dell'archivio");
             fputs($fp, $protection.implode("", $userlist));
             fclose($fp);
             echo "Utenti cancellati dall'archivio:".implode(", ", $del_users);
          }
       }
    }
    
    echo "
          <form action=\"".basename($_SERVER['PHP_SELF'])."\" method=\"post\">";
          if(@file_exists($archive)) {
              $userlist = file($archive);
              array_shift($userlist);
              foreach($userlist as $user) {
                     list($n, $p, $d) = explode(":", trim($user));
                     echo "$n <input type=\"checkbox\" name=\"username[]\" value=\"$n\">
    \n";
              }
          }
    echo "
           <input type=\"submit\" name=\"submit\" value=\"cancella i valori selezionati\">
          </form>";
    ?>
    users.inc.php
    codice:
    <? die("Accesso riservato"); ?>
    a:6d940e785d9e49adfd80b8b5464cecc4:a.php
    c:e0323a9039add2978bf5b49550572c7c:c.php
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  6. #6

    grazie davvero.....

    per l'interessamento, ora per me è tardi ma domani la provo!
    oggi è tutto il giorno che mi picchio col servizio clienti aruba perchè mi hanno abbattuto a tradimento il sito ma ti assicuro che nei prossimi giorni mi darò da fare....

    ancora grazie!

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.