Aiuto per le sessioni

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

Senti mi sa che manca l'iscrizione al sito. Come faccio ad accedere ??? Io ho utenti crittografato in md5 e non mi riconosce l'iscrizione che ho fatto. Perchè è codificato in sha1:Aspetto tue notizie. Grazie. Come sei riuscito a fare quel set di fotografie ????? M'interesserebbe per il sito ch emi hai aiutato di riviste.
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per modificare metti dove leggi (log_2.php) la pass inviata dal form al posto di

PHP:
$password = sha1(addslashes($_POST['pass']));

metti

PHP:
$password = md5(addslashes($_POST['pass']));

per l'iscrizione devi fare il solito form, se hai pazienza ti dico come richiamarlo, analogo per la fotogallery che devo ritrovare dove l'ho presa

ecco per la galleria
* jQuery Image Magnify- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
io ho solo aggiunto in fondo al form di log_2.php (tra <<<EOF ... EOF;) un link alla pag di iscrizione (non l'ho fatta protetta perche secondo me non serve)

PHP:
<?php
//............
echo <<<EOF 
	  ....eccc....
	  </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input name="log" type="submit" id="log" value="log"></td>
      </tr>
	  <tr>
        <td>se non sei iscritto</td>
		<td><br><a href="iscriviti.php" class="titolo">[ISCRIVITI]</a></td>
      </tr> 
    </table>
    </form>
	<p><a href="login_2.php">esci</a></p>
EOF;
ob_end_flush();
?>
poi nella iscriviti.php ho messo il classico form con i campi necessari il solito if(isset($_POST['submit'])){....}
codifico (tu devi codificare in md5) la pass
verifico se la pass o l'user esistano
se esistono faccio ripetere
altrimenti salvo i dati e rimando alla index
sempre sul mio sito se vai su filmati->condividi filmato accedei alla pag di log in cui ti chiede user e pass o di iscriverti.
nel mio caso non verifico l'esistenza della pass perchè la genero in automatico, quindi preverificata
(se vuoi iscriviti e condividi un filmato tuo o che ti piace, else esci)
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Allora, io ho apportato le seguenti modifiche:

PHP:
  $username = addslashes($_POST['user']);
    
    $password = md5(addslashes($_POST['pass']));  
    
	require_once "connetti.php";//dati di connessione al database
	//query e verifica dell'esistenza coppia user-pass
//	$q=mysql_query("SELECT * FROM utenti WHERE us='$username' AND pa='$password'");
	$q=mysql_query("SELECT * FROM utenti WHERE username='$username' AND password='$password'");

	if (mysql_num_rows($q) === 1) {
        $_SESSION['p'] = sha1(uniqid(mt_rand()));//rivalorizzo la sessione
        $_SESSION['user'] = $username;
		//se mi serve il nome è questo è nella tabella utenti
		//$riga=mysql_fetch_array($q);//estraggo il nome
		//$_SESSION['nome'] = $riga['nome'];//e lo passo in sessione
        header("Location: private.php?r={$_SESSION['p']}");//tutto ok rinvio alla privata sempre trasmettendo il la sessione anche con get
        exit();
    }

Su questa riga, visto che codifico in md5, devo modificare qualcosa ???? Te la posto.

PHP:
        $_SESSION['p'] = sha1(uniqid(mt_rand()));//rivalorizzo la sessione
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Non c'è niente da fare. Si ferma si riservata. Non capisco se sono entrato oppure no. Boh ????? Se mi dice riservata vuoldire che sono entrato ???

La tabella che ho io è formata così:

PHP:
CREATE TABLE utenti (
    id        INT UNSIGNED NOT NULL AUTO_INCREMENT,
    nome        VARCHAR(30) NOT NULL,
    username VARCHAR(30) NOT NULL,
    password VARCHAR(255) NOT NULL,
    PRIMARY KEY(id)
);

Dovrebbe andare bene no ???? Ti allego anche l'intero listato login_2 mdoficiato tante volte avessi sbagliato.....Vedi l'allegato 1121
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
no la riga
$_SESSION['p'] = sha1(uniqid(mt_rand()));//rivalorizzo la sessione
e dove trovi altre $_SESSION['p'] o il get non devi modificarle, non c'entrano nulla col database
comunque ora do un occhio
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

Dicevo, cancella tutto perchè mi funziona alla grande. Anche con la mia tabella e facendo visualizzare il nome anzicchè lo username. Ti posto il codice completo perchè meriti, se non altrod ell'aiuto che mi hai dato.

PHP:
<?php
require_once("connetti.php");

ob_start();
session_start();


if (!isset($_SESSION['p']) || md5($_SESSION['p']) != $_GET['p']) {
   	//questo vuol dire che è stato tentato un accesso diretto tipo http://www.mio_sito.it/login_2.php
	$_SESSION=array();//distruggo le sessioni e rimando alla index
   	header('location: index.php');
   	exit();
}
//con questo si evita che venga visualizzato http://www.mio_sito..... nel bw
echo "<head><title>{$_SESSION['p']}</title></head>";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//$password = sha1(addslashes($_POST['pass']));
    $username = addslashes($_POST['username']);

    $password = md5(addslashes($_POST['password']));

    require_once "connetti.php";//dati di connessione al database
	//query e verifica dell'esistenza coppia user-pass
//	$q=mysql_query("SELECT * FROM utenti WHERE us='$username' AND pa='$password'");
	$q=mysql_query("SELECT * FROM utenti WHERE username='$username' AND password='$password'");

	if (mysql_num_rows($q) === 1) {
        //$_SESSION['p'] = sha1(uniqid(mt_rand()));//rivalorizzo la sessione
        $_SESSION['p'] = md5(uniqid(mt_rand()));//rivalorizzo la sessione
        $_SESSION['user'] = $nome;
		//se mi serve il nome è questo è nella tabella utenti
		$riga=mysql_fetch_array($q);//estraggo il nome
		$_SESSION['nome'] = $riga['nome'];//e lo passo in sessione

        header("Location: private.php?r={$_SESSION['p']}");//tutto ok rinvio alla privata sempre trasmettendo il la sessione anche con get
        exit();
    }
	//password e/o username non corretti
    $_SESSION=array();//distruggo le sessioni e rimando alla index
    header('Location: login.php');
    exit();
}
echo <<<EOF

<form action='' method='POST'>

                <center>
                <br> <br> <br> <br>

		Username: <input type='text' name='username'> <br> <br>
		Password: <input type='password' name='password'> <br> <br>
		<input type='submit' name='log' value='Loggati'>
EOF;
ob_end_flush();

Volevo sapere una cosa, a posto della sottolineatura, è possibile mettere un bottone ????? Non credo che gli cambi la vita. perchè a me personalmente non mi piace la sottolineatura ehehehe. Sti viziacci.Spero che riesci a vedere lo screen. Fatto con cattura di windows.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non vedo errori
solo alla riga
PHP:
	//....
	if (mysql_num_rows($q) === 1) {
        //$_SESSION['p'] = sha1(uniqid(mt_rand()));//rivalorizzo la sessione
        $_SESSION['p'] = md5(uniqid(mt_rand()));//rivalorizzo la sessione
	//.....
hai messo md5, lascia sha1
PHP:
	//....
	if (mysql_num_rows($q) === 1) {
        $_SESSION['p'] = sha1(uniqid(mt_rand()));//rivalorizzo la sessione
        //$_SESSION['p'] = md5(uniqid(mt_rand()));//rivalorizzo la sessione
	//.....
poi se ti sei loggato giusto dovrebbe apparirti una pag simile

ciao pinco_pallo
sei nella sezione riservata
e sei arrivato da log_2.php
esci

la tabella va bene (quasi)
all'id metti int(12) cioè che è un numero intero lungo 12 cifre
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Non ci crederai, ma funziona anche con la riga modificara così:

PHP:
//$_SESSION['p'] = md5(uniqid(mt_rand()));//rivalorizzo la sessione

comunque ora decommento la tua e lascio quella, tanto dovrebbe andare ugualmente. Al limite se non va, ci rimetto la mia modificata. Una cosa, quando faccio run su login.php, mi va direttamente al link "riservata". Invece, vorrei fare in modo che mi vada direttamente alla compilazione dei campi. E' fattibile. ???? Presumo di si. Hai visto lìimmagine che ti ho mandato ??? Bene ho risolto anche quella e sono riuscito a cancellare tutti quei valori e a presentarmela come voglio io. ho messo anche il tastino "Logout", e me lo visualizza eheheheh. Ora devo programmarlo per sbattermi fuori. Spero di riuscirci. Una cosa che non mi è forse chiara, ma farò un piccolo esperimento. In ogni pagina che voglio riservare, basta che metto così vero ??? te lo posto:

PHP:
require_once("private.php");


All'inizio di ogni pagina giusto ????
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ri-ciao,


Scusami, ma ho bisogno del tuo aiuto perchè qua mi perdo. All'inizio, quando io clicco su login.php, mi compare "riservata", clicco su riservata e mi compare la pagina per entrare con username e password da inserire. Ho fatto alcune prove a togliere il reindirizzamento index.php, e a metterci direttamente login.php. Però il risultato è stato che s'inkazza il broweser e mi dice reindirizzamento fallito. Come posso evitare la scritta sottolineata e andare direttamente alla pagina dove c'è da inserire username e password '??? Purtroppo fatti gli esperimenti non sono riuscito a cosa richiama "riservata". forse mi sfugge qualcosa. In compenso, il tasto logut funziona magnifficamente e ho fatto così:

PHP:
<?php
session_start();
if (!isset($_SESSION['p']) || !isset($_SESSION['user']) || $_SESSION['p'] != $_GET['r']) {
    //questo vuol dire che � stato tentato un accesso diretto tipo http://www.mio_sito.it/private.php
	$_SESSION=array();//in caso di accesso diretto (abuso) distruggo le sessioni e rimando alla index
    header('Location: login.php');
    exit();
}

if(!isset($_POST['out'])){

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><?php echo $_SESSION['user']; ?></title>
</head>
<body>
<h2>ciao <?php echo $_SESSION['nome'];//o se esiste $_SESSION['nome'] ?></h2>

<!-- bla... bla... bla... -->
<form action='' method='POST'>

<input type='submit' name='out' value='Logout'>
</form>

<?php
}else{

session_start();

$_SESSION = array();

session_destroy();


echo "<center> <h1> Addio !!!! Alla prossima </center> </h1>";
}
?>
</body>
</html>

La procedura di distruzione della sessione dovrebbe essere più che sicura vero ??? O c'è da aggiungere qualcosa in più ?????
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Una cosa, quando faccio run su login.php, mi va direttamente al link "riservata".
cosa intendi?
se fai ad es. http:// www.tuosito.it/ login.php non ti entra, ma ti rimanda alla index
(l'hai chiamata login.php?)
puoi arrivare alla pag di log solo e solamente se parti dalla pag che ho chiamato index dove c'è il link, se parti da quella ti si presenta il form di log, altrimenti no e ti riinvia alla index

si (in quel punto puoi lascare anche md5 però per uniformità sarebbe meglio sha1)
perchè richiami private.php? a che ti serve l'inclusione?

per mettere un bottone nel link o usi i css o puoi fare

si la distruzione è sicura (vedi manuale php)
<a href="index.php"><img src="esci.jpg" width="34" height="34" border="0"></a>
io generalmente uso i css
<a href="index.php" class="link">esci</a>
così mi giostro meglio il muose ower ecc...

dimenticavo ancora
ma perche ti vuoi complicare la vita ???
 
Ultima modifica:

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

perchè la mia vita è sempre stata complicata. Comunque a cosa ti riferisci nel complicarmi la vita ?????? Io ho questo index.php (cioè il tuo).

PHP:
<?php
session_start();
$_SESSION['p'] = sha1(uniqid(mt_rand()));//genero e codifico un numero casuale
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>Home</title>
    </head>
    <body>
        <!-- bla... bla... bla... -->
		<!-- trasmetto la sessione ricodificata tramite GET per accedere alla pagina/e riservata/e-->
		<p><a href="login.php?p=<?php echo md5($_SESSION['p']); ?>">riservate</a></p>


    </body>
</html>

Quando vado a fare run, mi da "riservata", licco su riservata e mi d a la pagina di accesso. Invece vorrei togliere questo passaggio. Tutto qua. Quindi quando vado a fare run su login o index, mi dovrebbe comparire subito la pagina di accesso dove inserisco username e password. Tutto qua. Solo che se tolgo index s'incazza.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

Sono riuscito in quello che volevo finalmente. Te lo posto, perchè ti ho rotto abbastanza gli zibidei. Questo è il login.php. Che finalmente se lo faccio girare compare la mascera d'inserimento dati ehehehe.

PHP:
<?php
require_once("connetti.php");

?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>

     <center>   <H1>BENVENUTO NEL SITO D'ISCIRIZIONE PROVA</H1>



 <font face="Comic Sans MS">


<form action='' method='POST'>
<center>
    Benvenuti all'iscrizione al sito 'DJMATJOKER
                <br> <br> <br> <br>

		Username: <input type='text' name='username'> <br> <br>
		Password: <input type='password' name='password'> <br> <br>
		<input type='submit' name='log' value='Loggati'>
                </center> </form> </font>


<?php
ob_start();
session_start();


if (!isset($_SESSION['p']) || md5($_SESSION['p']) != $_GET['p']) {
   	//questo vuol dire che è stato tentato un accesso diretto tipo http://www.mio_sito.it/login_2.php
	$_SESSION=array();//distruggo le sessioni e rimando alla index
   	//header('location: index.php');
       
       exit();
}
//con questo si evita che venga visualizzato http://www.mio_sito..... nel bw
echo "<head><title>{$_SESSION['p']}</title></head>";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//$password = sha1(addslashes($_POST['pass']));
    $username = addslashes($_POST['username']);

    $password = md5(addslashes($_POST['password']));

    require_once "connetti.php";//dati di connessione al database
	//query e verifica dell'esistenza coppia user-pass
	//$q=mysql_query("SELECT * FROM utenti WHERE us='$username' AND pa='$password'");
	$q=mysql_query("SELECT * FROM utenti WHERE username='$username' AND password='$password'");

	if (mysql_num_rows($q) === 1) {
        //$_SESSION['p'] = sha1(uniqid(mt_rand()));//rivalorizzo la sessione
        $_SESSION['p'] = md5(uniqid(mt_rand()));//rivalorizzo la sessione
        $_SESSION['user'] = $nome;
		//se mi serve il nome è questo è nella tabella utenti
		$riga=mysql_fetch_array($q);//estraggo il nome
		$_SESSION['nome'] = $riga['nome'];//e lo passo in sessione

        header("Location: private.php?r={$_SESSION['p']}");//tutto ok rinvio alla privata sempre trasmettendo il la sessione anche con get
        exit();
    }
	//password e/o username non corretti
    $_SESSION=array();//distruggo le sessioni e rimando alla index
    header('Location: login.php');
    exit();
}

?>

Proverò ora se tutto funziona a dovere, ma spero di si .
 
Discussioni simili
Autore Titolo Forum Risposte Data
P Aiuto per le sessioni PHP 3
E Aiuto per query PHP 8
I aiuto urgente per thunderbird Posta Elettronica 0
I aiuto per outlook Posta Elettronica 0
T aiuto per trasformare un quiz fatto in JS in un quiz in JQUERY jQuery 0
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
P Aiuto per rendere un Bot Telegram Privato PHP 1
A Aiuto per pagina php PHP 0
T cercasi aiuto per file d1 (open-edge db) Database 0
L Aiuto per programma web php/mySQL PHP 2
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
T Aiuto per php7 e mysqli PHP 3
T mysql tutorial per importare tabelle access in mysql aiuto MySQL 2
wildcity9 aiuto per sbloccare account instagram bannati Social Media Marketing 0
A Aiuto per configurare il banner di Iubenda su un sito in html HTML e CSS 0
S [PHP] Aiuto creazione form php per completamento modello word PHP 1
Z [HTML] aiuto per visualizzazione su tablet Offerte e Richieste di Lavoro e/o Collaborazione 6
W [PHP] Un aiuto per il mio primo "Multithread" PHP 0
G Vuoi fare successo? Abbiamo bisogno di aiuto per un app! Offerte e Richieste di Lavoro e/o Collaborazione 1
K [javascript] Aiuto per programma subnetting Javascript 0
F ciao, sono ferro e ho bisogno di aiuto per problemi con la mail di alice.it Presentati al Forum 1
L [PHP] aiuto per installazione mrbs PHP 0
1 Aiuto per nuovo sito SEO e Posizionamento 4
K Server per sito di annunci: aiuto nella scelta Hosting 4
P [Javascript] Aiuto per recupero variabili da script Javascript 10
P [PHP] Aiuto per gestione file CSV PHP 24
A scambio lavoro per aiuto con android Sviluppo app per Android 0
A aiuto per un codice... PHP 1
ecosito Aiuto con la traduzione in italiano per capire come installare questo JavaScript jQuery 0
StelladelSud Cerco aiuto per una demo Offerte e Richieste di Lavoro e/o Collaborazione 3
G Piccolo aiuto per php mail PHP 2
G aiuto per semplice menu onclick HTML e CSS 6
F aiuto per funzionamento sito responsive e form contatti HTML e CSS 29
A AIUTO per impostazione doppia cifra in tabella HTML e CSS 6
G Passaggio variabili tra pagine- Aiuto per maturità 2015 PHP 3
G Passaggio variabili tra pagine- Aiuto per maturità 2015 PHP 0
A Aiuto per Flash player Flash 0
J Aiuto per localstorage con jquery/js/json Javascript 4
M Cerco aiuto per una modifica di un codice Javascript 2
A Aiuto per ordine cronologico lista file all'interno di una cartella protetta PHP 2
G Aiuto! Studente cerca aiuto per un codice PHP PHP 1
S Aiuto per 2 codifiche java Java 4
G Aiuto per creare chat stile Facebook Javascript 7
Sevenjeak Aiuto e consigli su adattamento sito per dispositivi mobile HTML e CSS 2
S aiuto per script PHP/OOP PHP 2
J Aiuto per un sitema di upload per un progetto PHP 0
K Aiuto per sito Discussioni Varie 0
D Richiesta aiuto siti per indirizzamento forum HTML e CSS 1
M Aiuto per una libreria per generare grafici PHP 1
B Saluti ed aiuto per pagina web html HTML e CSS 11

Discussioni simili