Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    12

    Due Login con stessa password

    Salve ho un problema, vorrei che all'interno dell'area privata, quando l'utente si logga possa accedere ad un pannello di controllo con una password uguale a quella del Login dell'area privata.
    Dunque, quando l'utente si logga cliccando su un tasto si lancia un programma PHP per copiare un'intera directori, alla fine della copia c'è un redirect su un accesso tramite password.
    L'accesso al pannello di controllo avviene tramite una password impostata su un file di configurazione:
    codice:
    require_once("../config.php");
    Dovrei trovare il sistema per far scrivere all'interno di questo file config.php la password richamata dal DB con l'apposita query.
    Nel secondo login per accesso al pannello di controllo le variabili vengono ripulite, quindi le riporto con un GET, ma non basta perchè il file config.php non le riceve.
    Ho provato quindi con una sessione:
    codice:
    session_start();
    
    function miSonoLoggato($email)
    {
        $_SESSION['email'] = $email;
    }
    
    function sonoLoggato()
    {
        if (isset($_SESSION['email']) && $_SESSION['email']!='') {
            return true;
        }
        
        header("Location: http://www.e-bookartist.com/index.php");
        
        
        return false;
    }
    
    function logout()
    {
        session_destroy();
    }
    ma in questo caso mi da errore che riporto:
    Fatal error: Cannot redeclare miSonoLoggato()

    Ciedo aiuto... non ne esco
    Grazie Maurizio

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Quell'errore probabilmente è perché includi un altro file contenente un'altra funzione con quel nome.

    Per scrivere la password nel file config.php puoi usare fwrite o file_put_contents

    Poi:
    Copi un'intera directory ogni volta che l'utente fa il login? O.o
    Sei sicuro che non ci sia altra strada? (La risposta è: si, c'è almeno un'altra strada)
    No

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    12
    grazie per la risposta,
    ma con fwrite o file_put_contents il file .php viene scritto?
    ho fatto una prova con fwrite e con file.txt funziona ma con file.php no

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Quote Originariamente inviata da tampertools Visualizza il messaggio
    Copi un'intera directory ogni volta che l'utente fa il login? O.o
    Sei sicuro che non ci sia altra strada? (La risposta è: si, c'è almeno un'altra strada)
    Assolutamente, penso sia la cosa più assurda che io abbia mai letto...
    Ricrea il sistema di gestione degli utenti e fatti consigliare su quello (aprendo anche un topic a riguardo per avere consigli e pareri).
    Se mai dovessi rendere il tuo sito "famoso" avresti uno spreco di risorse incredibile e il tutto sarebbe alquanto ingestibile.

    Fossi in te, che utilizzi flat-file come database, farei semplicemente questo:
    1) Creare una cartella con i file .php contenenti i dati degli utenti
    /utenti/

    2) Inserire i dati degli utenti con il seguente metodo:

    # /utenti/nomeutente.php
    # /utenti/admin.php
    # /utenti/paperina.php

    il contenuto del file degli utenti dovrebbe avere questa struttura:
    <?php
    $dati = array(
    "nickname" => "nomeutente",
    "password" => "password",
    ...
    );
    ?>

    Per verificare se l'utente è loggato tramite cookie

    <?php
    if (file_exists("utenti/" . $_COOKIE["nome_utente"] . ".php")) {
    require_once("utenti/" . $_COOKIE["nome_utente"] . ".php");
    if ($_COOKIE["nome_utente"] == $dati["password"]) {
    echo "Loggato";
    }
    }
    ?>

    E quando modifichi i dati dell'utente:

    function editFile($fileName, $fileLine, $fileRow) {
    $newRow = "";
    $count = 0;
    $array = file($fileName);
    foreach ($array as $value) {
    if ($count == $fileLine)
    $newRow .= $fileRow;
    else
    $newRow .= $value;

    $count++;
    }

    $fp = @fopen($fileName, "wb+") or die("Unable to open " . basename($fileName) . " in database path.");
    fwrite($fp, $newRow, strlen($newRow));
    fclose($fp);

    @chmod($fileName, 0777);
    @clearstatcache();
    }

    editFile("utenti/nomeutente.php", 3, " \"password\" => \"". addslashes("nuovapassword") ."\" ");

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    12
    Forse non ci siamo capiti,
    non utilizzo flat-file sarebbe assurdo come dici... uso MySql, l'esempio era solo una prova per testare la funzionalità.
    comunque se dici che l' fwrite funziona per "editare" file .php vedo di controllare avrò fatto qualche errore.
    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    se vuoi butta qui il codice che un bel po' di paia di occhi sono meglio di una per trovare un errore
    Ultima modifica di tampertools; 27-04-2014 a 18:58 Motivo: Ups, "un errore" con l'apostrofo -.-
    No

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.