Forum Flash, Actionscript, PHP e MySQL
Uscita da area riservata [php]

 
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP
Precedente  Successivo 
Autore Messaggio
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto: Uscita da area riservata [php]
Inviato: 25.05.07 | 14:17
Rispondi citando

ciao, ho fatto una piccola area riservata in questo modo, si entra solo con valore password criptato in md5, successivamente questo valore poi lo manipolerò con le session
 
Codice:
<?php
// connessione a database
$db mysql_connect($db_host$db_user$db_password);
if (
$db == FALSE)
die (
"Errore nella connessione.");
// seleziona database
mysql_select_db($personale$db)
or die (
"Errore nella selezione del database.");

// mostra contenuto database
$query "SELECT password FROM ".$admin."";
$result mysql_query($query$db);
while (
$row mysql_fetch_array($result)){
  
$access $row['password'];
}
if(
md5(@$_POST['access'])!=$access){
echo 
'<form action="session.php" method="post" enctype="multipart/form-data">
<label>password: <input type="password" name="access" /></label>
<input type="submit" value="entra" />'
;
}else{
echo 
'accesso consentito
<input type="submit" value="esci" />'
;
}
?>
</form>

ma per l'uscita da quest'area che azione devo dare all'input esci? Grazie
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Sponsor
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 25.05.07 | 18:33
Rispondi citando

Naturalmente devi gestire la sessione prima di questa parte...
Per fare il logout basta che svuoti l'array $_SESSION e fai destroy_session()
 
Codice:
<?php
function end_session () {
    
    
$_SESSION = array();
    
session_destroy();
    
}
?>

P.S:Non capisco quel while ed il controllo sul POST...

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 25.05.07 | 19:36
Rispondi citando

capito al volo! sono quindi arrivato a questo risultato:
 
Codice:
<?php
require_once("config.inc.php");
// connessione a database
$db mysql_connect($db_host$db_user$db_password);
if (
$db == FALSE)
die (
"Errore nella connessione.");
// seleziona database
mysql_select_db($db_private$db)
or die (
"Errore nella selezione del database.");

// mostra contenuto database
$query 'SELECT password FROM '.$tb_private.'';
$result mysql_query($query$db);
while (
$row mysql_fetch_array($result)){
  
$access $row['password'];
}

if(
md5(@$_POST['access'])!=$access){
session_start();
$_SESSION = array(); #cancella tutti i dati di sessione
if (isset($_COOKIE[session_name()])){ #cancella l'eventuale cookie di sessione
  
setcookie(session_name(), ''time()-42000'/');
}
session_destroy(); #elimina la sessione

echo '<form action="session.php" method="post" enctype="multipart/form-data">
<label>password: <input type="password" name="access" /></label>
<input type="submit" value="entra" />'
;
}else{
session_start();
$_SESSION['password'] = $access;
echo 
'<form action="session.php" method="post" enctype="multipart/form-data">
accesso consentito
<input type="submit" value="esci" name="access" />'
;
}
echo 
'
</form>'
;
?>

il while l'ho messo perché nn sono riuscito a fare in altro modo, servirebbe per andare a pescarmi nel database la password che poi vado a confrontarla con il campo form...

Post e varie altre cose che vedrai qui poi non è altro che un form dove scrivere la password ed entrare nell'area privata con un bottone (<input type="submit" value="entra" />), se questo dà esito positivo questi due oggetti verranno sostituiti da un altro bottone, ora d'uscita (<input type="submit" value="esci" name="access" />)...

Fatto così mi funziona anche bene (probabilmente ci saranno degli errori), non è che puoi darci un'occhiata veloce? Così se c'è qualcosa che non va(tipo il while) lo correggo.

Grazie della disponibilità comunque, ciao Coach
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 26.05.07 | 01:33
Rispondi citando

mmm,
personalmente credo ci sia un po' di caos.

Vedi il doppio session_start()... non serve metterlo sia sull'if che sull'else se va in entrambi mettilo prima.
Il while... così non ha senso, in quanto se all'interno assegni il campo password ad una variabile, ad ogni "giro" si sovrascriverà e quindi il valore sarà sempre uguale all'ultimo record.
Inoltre, se i controlli li fai utilizzando $_SESSION... non serve che cancelli i COOKIES.

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 29.05.07 | 14:50
Rispondi citando

sono riuscito a sistemarlo un po', così ora potrebbe andare?
 
Codice:
<?php
require_once("config.inc.php");
// connessione a database
$db mysql_connect($db_host$db_user$db_password);
if (
$db == FALSE)
die (
"Errore nella connessione.");
// seleziona database
mysql_select_db($db_private$db)
or die (
"Errore nella selezione del database.");

// mostra contenuto database
$query 'SELECT password FROM '.$tb_private.'';
$result mysql_query($query$db);
$access mysql_fetch_object($result);

session_start();
if(
md5(@$_POST['access'])!=$access->password){
$_SESSION = array(); #cancella tutti i dati di sessione
session_destroy(); #elimina la sessione

echo '<form action="login.php" method="post" enctype="multipart/form-data">
<label>password: <input type="password" name="access" /></label>
<input type="submit" value="entra" />'
;
}else{
$_SESSION['password'] = $access;
echo 
'<form action="login.php" method="post" enctype="multipart/form-data">
accesso consentito
<input type="submit" value="esci" name="access" />'
;
}
echo 
'
</form>'
;
?>
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 30.05.07 | 16:08
Rispondi citando

Scusa... ma hai solamente 1 utente???
A questo punto non vedo l'utilità di utilizzare un DB. Mr. Green

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 31.05.07 | 08:15
Rispondi citando

in effetti ho solo una password e basta (nn l'ho scritto prima? Dove ho la testa... Mmhhh ), cmq leggendo in giro sulle varie guide dicono che è più sicuro così. Tu come faresti, sarebbe differente se ne avessi due di accessi?
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 31.05.07 | 11:14
Rispondi citando

Bhè, se l'accesso è unico puoi scriverli nel PHP... tanto viene interpretato dal server (come fai daltronde per l'accesos al DB).

Il DB ha senso di venire usato se vi sono più dati o se vi è una possibile registrazione degli utenti...

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 04.06.07 | 13:19
Rispondi citando

alla fine la mia scelta è caduta su database e sessioni... (ho pensato un po' verso il futuro se magari dovessi aggiungere un altro utente). Xò ora mi sono bloccato in una specie di rompicapo che non riesco a trovare uno sbocco. Scrivo subito il codice
 
Codice:
<?php
// connessione a database
$db mysql_connect($db_host$db_user$db_password);
if (
$db == FALSE)
die (
"Errore nella connessione.");
// seleziona database
mysql_select_db($db_private$db)
or die (
"Errore nella selezione del database.");
// mostra contenuto database
$query 'SELECT password FROM '.$tb_private.'';
$result mysql_query($query$db);
$access mysql_fetch_object($result);

session_start();

echo 
'<html>
<head>
<title>Primo php</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="stili.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/javascript" src="swap_visibilita.js"></script>
</head>

<body bgcolor="#FFFFFF">
<div id="content">
<div id="top">
'
;
if(
md5(@$_POST['access'])!=$access->password){
/*$_SESSION = array(); #cancella tutti i dati di sessione
session_destroy(); #elimina la sessione*/

// form entra
echo '<form action="index.php" method="post" enctype="multipart/form-data">
<label>password: <input type="password" name="access" /></label>
<input type="submit" value="entra" />
'
;
}elseif(@
$_SESSION['password']== $access->password){
// form esci
echo '<form action="index.php" method="post" enctype="multipart/form-data">
<input type="submit" value="esci" />
'
;
}else{
$_SESSION['password'] = $access->password;

// form esci
echo '<form action="index.php" method="post" enctype="multipart/form-data">
<input type="submit" value="esci" />
'
;
}
echo 
'</form>
<h3>Lista DVD</h3></div>
<!-- Content -->
'
;
?>

Questa sarebbe la parte superiore della pagina e viene ripetuta in tutte le pagine web che ho con un require (o include). Diciamo che è molto simile all'accesso in questo forum... Non riesco però a trovare il giusto modo di fare l'entra e esci interagendo con la sessione
Aiutino? Grazie mille


Ultima modifica di mesk8 il 04.06.07 | 14:48, modificato 1 volta in totale
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 04.06.07 | 13:34
Rispondi citando

Potresti essere più preciso sul cosa non riesci a fare?

Per l'entra serve una form di login, mentre per l'esci... basta che implementi quella prima funzioncina che ti ho postato, dove vai a resettare la sessione.

Se il tuo problema è quello di sapere se si è o meno loggati, basta controllare se vi è la variabile in sessione... se c'è sei loggato, altrimenti no (con il logout resetti $_SESSION).

P:S: come fai ora la query ed il controllo sulla password del DB non funzionerà in caso di più records (quindi più account).

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 04.06.07 | 15:14
Rispondi citando

ok, io a dir la verità ho già tutte le varie parti (compreso il logout che ora è commentato e quindi escluso), ho difficoltà a sistemarli e collegare il tutto. Nel mio codice infatti ho già
- il form per entrare (prima parte - if)
- la verifica della sessione se è avvenuto l'accesso oppure no (seconda parte - elseif)
- l'uscita o logout con eliminazione sessione (terza parte - else)

ma messo giù così com'è il codice non è corretto e non so di preciso dove modificarlo... se vuoi ti faccio un piccolo elenco di problemi che ha
- facendolo partire crea una sessione vuota che non vorrei lo facesse
- se lascio non commentato l'eliminazione sessione l'entrata e uscita va, appena però cambio pagina mi esce dall'accesso
- ho due campi di codice molto simili (la seconda e terza parte) che mi piacerebbe fondere tutto in un singolo else o if a seconda di cosa serve

diciamo che queste sono le cose principali che dovrei risolvere
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Mostra prima i messaggi di:   
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

Discussioni Simili
Topic Autore Forum Risposte Ultimo Messaggio
Nessun nuovo messaggio AREA RISERVATA IN FLASH cino1983 ActionScript & Server Side 3 15.03.11 | 15:52 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio Text Area claire ActionScript & Server Side 4 02.11.04 | 12:25 Leggi gli ultimi messaggi
claire
Nessun nuovo messaggio sensibilità area HIT fixe ActionScript & Server Side 1 30.10.07 | 15:46 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio come creare un area blur? lozioraffa ActionScript & Server Side 3 13.07.10 | 10:30 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio Accentramento area Flash Lupin77 ActionScript & Server Side 5 23.10.06 | 13:01 Leggi gli ultimi messaggi
Coach



 
Vai a:  
Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum
Non puoi allegare files in questo forum
Non puoi downloadare gli allegati in questo forum



Powered by phpBB © 2001, 2002 phpBB Group - phpBB SEO Designed by coachdesign - © 2003-2005