Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29

Discussione: Area riservata..

  1. #1
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030

    Area riservata..

    eccomi ancora qua

    dunque, sto cercando di creare una struttura banale per l'aggiornamento di alcune news per un sito.
    grazie a mille consigli e indicazioni ora riesco a inserire i dati in un db mysql e successivamente a leggerli ordinati come pare a me..
    ora però vorrei che l'accesso alla pagina di inserzione delle news fosse protetto da un nome utente e una password.
    Ho letto 1000 discussioni relative a come creare un'area riservata complessa e iperfunzionale, ma non sono riuscito a trovare come fare per settare a priori un nome utente e una passoword (unico, c'è un solo utente che deve poter accedere) e creare una pagina che dica
    nome utente:
    password:
    da cui se i dati inseriti sono corretti porti alla pagina di inserimento news, in caso contrario porti a una pagina di errore.

    è fattibile in maniera semplice ma sicura?
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  2. #2
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    beh mi pare che tu abbia accesso ad un DB giusto?
    Crei una tabella ad hoc con il nomeutente e password unici e predefiniti in due campi e poi crei una form per il login che vada a confrontare i dati imessi dall'utente con quelli a DB e se corrispondono hai accesso all'area "amministrativa" delle news.

  3. #3
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    sto provando ma mi inceppo in qualcosa..

    ho creato una tabella psw che contiene due campi, "user" e "psw" in cui ho messo i valori che mi servono.

    ho una index.php che richiede all'utente nome e password:
    codice:
    <form method=post action=controllo.php>
    Utente:
    
    <input type=text size=40 name=utente>
    
    
    
    Password:
    
    <input type=password size=40 name=password>
    
    <input type=submit value=Invia>
    </form>
    e invia questi dati a controllo.php che dovrebbe leggerli e verificarli con quello del db (i parametri per la connessione al db sono specificati in un config.inc.php).
    controllo.php è così:
    Codice PHP:
    include("config.inc.php");
    $utente =$_POST['utente'];
    $password =$_POST['password'];

    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query_controllo "SELECT user, psw FROM psw";
         if ((
    $utente != $_POST['user']) or ($password != $_POST['psw']))
              echo 
    "Nome utente o password scorretti";
         else 
    header("Location: insert.php");
         
    ?> 
    che quindi dovrebbe, se nome utente o password non corrispondono, scrivere "Nome utente o password scorretti", in caso contrario caricare la insert.php..
    ma quando provo a mettere i dati mi risponde sempre
    codice:
    Notice: Undefined index: user in d:\programmi\easyphp1-8\www\prova\controllo.php on line 12
    Nome utente o password scorretti
    anche se sono giusti..
    la riga 12 è
    Codice PHP:
    if (($utente != $_POST['user']) or ($password != $_POST['psw'])) 
    dove sbaglio?
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  4. #4
    Codice PHP:
    nclude("config.inc.php");
    $utente =$_POST['utente'];
    $password =$_POST['password'];

    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query_controllo "SELECT count(*) FROM psw WHERE user = $utente AND psw = '$password'";
    if ((
    $result mysql_query($query)) == 0)
              echo 
    "Nome utente o password scorretti";
         else 
    header("Location: insert.php");
    else     
         echo 
    "benvenuto $user";
    ?> 


  5. #5
    Utente di HTML.it L'avatar di darkiko
    Registrato dal
    Feb 2002
    Messaggi
    3,030
    [supersaibal]Originariamente inviato da }gu|do[z]{®©
    Codice PHP:
    nclude("config.inc.php");
    $utente =$_POST['utente'];
    $password =$_POST['password'];

    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query_controllo "SELECT count(*) FROM psw WHERE user = $utente AND psw = '$password'";
    if ((
    $result mysql_query($query)) == 0)
              echo 
    "Nome utente o password scorretti";
         else 
    header("Location: insert.php");
    else     
         echo 
    "benvenuto $user";
    ?> 

    [/supersaibal]
    grazie Guido

    io sbagliavo proprio il metodo..

    dunque
    copiaincollando il tuo codice (solo togliendo il secondo else) mi dice così
    codice:
    Notice: Undefined variable: query in d:\programmi\easyphp1-8\www\prova\controllo.php on line 12
    Nome utente o password scorretti
    se provo ad avventurarmi io in modifiche e azzardo
    Codice PHP:
    if (($result mysql_query($query_controllo)) == 0
    al posto che
    Codice PHP:
    if (($result mysql_query($query)) == 0
    mi restituisce sempre "Nome utente o password scorretti".
    ho provato ad aggiungere e togliere qualche apice qua
    Codice PHP:
    WHERE user $utente AND psw '$password'"; 
    ma senza grandi risultati..
    è nella nostra unicità che risiede la meraviglia degli esseri umani

  6. #6
    beh. sul nome della variabile era pura e semplice distrazione mia.. sul resto.. hum...

    avevo scordato degli apici

    $query_controllo = "SELECT count(*) FROM psw WHERE user = '$utente' AND psw = '$password'";

    se non ava manco così... buh..
    prova a lanciare questa query in phpmyadmin e vedi che restituisce.. con i valori al posto delle variabili ovviamente..


  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    ma non è meglio confrontare user e pass con quelli presenti nel db invece di vedere se la query restituisce record?

  8. #8
    [supersaibal]Originariamente inviato da meganoide
    ma non è meglio confrontare user e pass con quelli presenti nel db invece di vedere se la query restituisce record? [/supersaibal]
    e ala differenza dove sta?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    appunto, tra lo scegliere di confrontare i dati via post con quelli nel db o vedere se la query ti restituisce 0 o qualcosa, quale approccio sarebbe più valido

  10. #10
    [supersaibal]Originariamente inviato da meganoide
    appunto, tra lo scegliere di confrontare i dati via post con quelli nel db o vedere se la query ti restituisce 0 o qualcosa, quale approccio sarebbe più valido [/supersaibal]
    se vuoi solo sapere se esiste un utente con password e username impostati.. fai un select count.. cioè cponti quanti hanno quegli username e password.. e chiaramente [sperando che usernam,e sia chiave primaria o unique ^_^] o restituisce 1 o restituisce 0...

    se magari al contempo vuoi selezionare altri dati di quell'utente.. fai una query che selezioni i datiu e poi usi mysql_num_rows()


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.