Creazione pagina area protetta

  • Creatore Discussione Creatore Discussione cica_mc
  • Data di inizio Data di inizio
ciao
ecco la pag di login, l'ho chiamata login_3.php quindi nel link della index.php modifica il nome, la lasceri così come è, salvo modificare le cocation degli header in funzione di come chiami le varie pagine
guarda che come è la pag con gli array deve essere nella stessa cartella altrimenti devi mettere la oath al require
PHP:
<?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');//se hai modoficato il nome della index devi modificarlo anche qui
   	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') {
	$username = addslashes($_POST['user']);
    $password = sha1(addslashes($_POST['pass']));
	require_once "utenti.php";//carico la pagina con l'arry degli utenti
	//se chiami la pag in modo diverso da utenti devi modificare il nome anche sopra
	//metto un flag a 0
	$flag=0;
	//ciclo l'array degli utenti per verificare se esiste
	foreach($utente as $chiave => $valore){
		if($chiave == $username && $password == $valore){
			//se la coppia username/valore esiste metto il flag a 1
			$flag=1;
		}
	}
	if ($flag === 1) {
        $_SESSION['p'] = sha1(uniqid(mt_rand()));//rivalorizzo la sessione
        $_SESSION['user'] = $username;
        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
	$utente=array();//non servirebbe
    header('Location: index.php');
    exit();
}
//se il session[p] e il get[p] sono OK mostro il form di log
echo <<<EOF
    <p>da usare un user e pass registrati sul db</p>
    <form name="form1" method="post" action="{$_SERVER['REQUEST_URI']}">
    <table width="45%"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="16%">username</td>
        <td width="84%"><input name="user" type="text" id="user"></td>
      </tr>
      <tr>
        <td>password</td>
        <td><input name="pass" type="password" id="pass"></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input name="log" type="submit" id="log" value="log"></td>
      </tr>
    </table>
    </form>
	<p><a href="login_2.php">esci</a></p>
EOF;
ob_end_flush();
?>
poi ti mando come impostare la pagina riservata
 
ciao
ecco lo schema della pagina riservata (l'ho chiamata private.php, se gli cambi nome ricordati di modificare i reindirizzamenti)
la parte iniziale in php ti conviene lascarla come è (salvo i nomi dei reindirizzamenti come detto)
se leggi i commenti dovresti capire come funzia il tutto
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: index.php');
    exit();
}
?>
<!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 "pagina di ".$_SESSION['user']; ?></title>
</head>
<body>
<h2>ciao <?php echo $_SESSION['user'];?></h2>
<!-- cui puoi mettere tutti i link per scaricare i cataloghi es
<p><a href="cataloghi/catalogo_uno.pdf" target="_blank">catalogo uno</a></p>
<p><a href="cataloghi/catalogo_due.pdf" target="_blank">catalogo due</a></p>
..ecc....
-->
<!-- bla...bla... -->
<!-- se hai altre pagine riservate nel link (per farti un menù di navigazione tra le riservate) devi mettere la querystringa es.-->
<!-- se hai piu pagine ti conviene fare una pag menu.php, poi la includi in ciascuna pagina riservata-->
<p><a href="altra_private_due.php?r=<?php echo $_SESSION['p']?>">riservata due</a></p>
<p><a href="altra_private_tre.php?r=<?php echo $_SESSION['p']?>">riservata tre</a></p>
<!-- ecc... -->
<!--
per uscire dalle pagine private non fare il link diretto alla index ma alla login, senza mettere al querystringa
rinviando alla login e non essendoci la querystringa, la login distrugge le sessioni e ti rimanda direttemente alla index
dove, se vuoi riparti
-->
<p><a href="login_3.php">esci</a></p>
</body>
</html>
spero di essere stato chiaro, comunque sono qui
 
Ciao a tutti e scusate se non ho riposto ma sono stato indaffarato.
Ho fatto tutto come mi avete/avevi detto nei messaggi precedenti, unica cosa che ancora non riesco a capire del tutto.
Io posso, all'interno della mia pagina html, mettere il link all'area riservata in modo che questa venga aperta in una nuova finestra?
Se si devo semplicemente, prendere e creare un link esterno al file login_3.php che mi hai passato tu, dopo aver impostato ovviamente fondo colori, ghirigori e creato il file array con tutti inomi utenti e compagnia cantante giusto?
 
ciao
la pagina che conterrà il link di accesso alla pag di login non puo esssere .htm o .html, ma .php perchè alle prime righe prima del
<!DOCTYPE HTML PUBLIC....>
deve avere queste alcune istruzioni php, quella che genera la sessione e poi dove la trasmette con il link,

PHP:
<?php
session_start();
$_SESSION['p'] = sha1(uniqid(mt_rand()));//genero e codifico un numero casuale
?>
<!DOCTYPE HTML PUBLIC....>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>

<body>
<!--eccetera-->
<a href="login_3.php?p=<?php echo md5($_SESSION['p']); ?>"riservate</a>
<!--eccetera-->
</body>
</html>

poi puoi farci tutti i ghirigori che vuoi comunque colori immagini tipo di pulsanti ah link
es se vai sul mio sito (www.borgo-italia.it) nella sec pag a destra vedi il menù l'ultimo link è quello che ti ho indicato

<a href="login.php?p=<?php echo md5($_SESSION['p']); ?>"admin</a>
che come vedi ha tutti i ghirigori
 
Questa devo proprio capirla?!?! Scusate ma io ho il mio sito bello e pronto con js, e tutto quanto e adesso mi tocca rifarlo tutto?! Io pensavo che se dal mio sito, e in particolare sul menù, metto il link alla prima pagina in php che mi si apre esternamente avrebbe funzionato tutto... Non posso proprio ovviare al problema di dover rifare tutto in php?

A
 
ciao
non è che devi rifarlo tutto basta che la pag in cui metti il link tu cambi l'estensione in php (basta usare rename di esplora risorse e al posto di .htm tu metta .php) e tu aggiunga quella parte di php in testa.

qualsiasi pagina .htm (anche se NON ha codice php) può avere l'estenzione php, basta cambiarne l'estensione, e nello stesso sito comunque puoi far convivere comunque pagine htm e pag php

tutto rimane tale e quale (css, js ecc...) l'unica cosa è da verificare che nei link che se una pagina si chiamava es. pinco.htm e la rinominata pinco.php modificare il nome nel link.
 
Grande ho modificato l'estensione e tutto va bene, l'unica cosa che non riesco a capire è questa..prometto vi pago una cena a tutti!, faccio il collegamento a dove devo mettere username e password, tutto ok mi va bene, ma purtroppo in cima mi rimane tutta la scritta del codice php...vi faccio uno screenshot per farvi capire problema.jpg

scusate veramente :(
 
ciao
scusa non avevo visto l'immagine.
probabilmente hai scritto il codice fuori il tag <?php o non l'ai messo giusto.
posta esattamente il codice.

p.s.
tra l'altro così non funzia
 
<?php
ob_start();
session_start();
if (!isset($_SESSION['p']) || md5($_SESSION['p']) != $_GET['p']) {$_SESSION=array();
header('location: index.php');
exit();}

echo "<head><title>{$_SESSION['p']}</title></head>";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = addslashes($_POST['user']);
$password = sha1(addslashes($_POST['pass']));
require_once "utenti.php";
$flag=0;
foreach($utente as $chiave => $valore){
if($chiave == $username && $password == $valore){$flag=1;}
}
if ($flag === 1) {
$_SESSION['p'] = sha1(uniqid(mt_rand()));
$_SESSION['user'] = $username;
header("Location: private.php?r={$_SESSION['p']}");exit();
}
$_SESSION=array();
$utente=array();
header('Location: index.php');
exit();
}
echo <<<EOF
<form name="form1" method="post" action="{$_SERVER['REQUEST_URI']}">

EOF; ob_end_flush(); ?>
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:og="http://ogp.me/ns#"
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta property="og:title" content="Officine Modelli"/>
<meta property="og:type" content="example:shoes"/>
<meta property="og:url" content="http://www.officinemodelli.com"/>
<meta property="og:site_name" content="Officine Modelli"/>
<meta property="og:description" content=""/>
<title>OFFICINE MODELLI</title>
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="style_effetto.css">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.aw-showcase.js"></script>

<script type="text/javascript" src="js/script_js.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/mootools.js"></script>

<script type="text/javascript" charset="utf-8">
window.addEvent('domready', function() {

// var declaring
menuItems = $$('#menu li');
menuRelatedItems = $$('#menu li');
var menuButtonSelected;

menuItems.each(function(item){
// span effects creation
var span = new Element('span', { text: item.get('text') });
item.set('text', '').grab(span, 'bottom').grab(span.clone().set('class', 'over'), 'bottom');
item.getFirst().set('tween', { duration: 300, transition: Fx.Transitions.Expo.easeInOut });

// roll over/out/click

item.addEvents({
'mouseenter': function(){
if( this!=menuButtonSelected )
this.getElement('span').tween("margin-top",-16);
},
'mouseleave': function(){
if( this!=menuButtonSelected )
this.getElement('span').tween("margin-top",0);
},
});
});
});
</script>

<script type="text/javascript">
var addthis_config = {"data_track_clickback":true};
</script>

<script type="text/javascript">

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-11382876-8']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

</script>
<script type="text/javascript">
var ciclo = 1;
var dvs = 1;
function loadXMLDoc(contenitore, url){
var xmlhttp;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById(contenitore).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET", url ,true);
xmlhttp.send();
}


function facebook_share(contenitore, url){
var xmlhttp;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById(contenitore).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET", url ,true);
xmlhttp.send();
}

</script>
<script type="text/javascript">

$(document).ready(function()
{
$("#showcase_1").awShowcase(
{
content_width: 700,
content_height: 400,
fit_to_parent: false,
auto: false,
interval: 3000,
continuous: false,
loading: true,
tooltip_width: 200,
tooltip_icon_width: 32,
tooltip_icon_height: 32,
tooltip_offsetx: 18,
tooltip_offsety: 0,
arrows: false,
buttons: true,
btn_numbers: true,
keybord_keys: true,
mousetrace: false, /* Trace x and y coordinates for the mouse */
pauseonover: true,
stoponclick: false,
transition: 'fade', /* hslide/vslide/fade */
transition_delay: 0,
transition_speed: 500,
show_caption: 'onload', /* onload/onhover/show */
thumbnails: false,
thumbnails_position: 'outside-last', /* outside-last/outside-first/inside-last/inside-first */
thumbnails_direction: 'vertical', /* vertical/horizontal */
thumbnails_slidex: 1, /* 0 = auto / 1 = slide one thumbnail / 2 = slide two thumbnails / etc. */
dynamic_height: false, /* For dynamic height to work in webkit you need to set the width and height of images in the source. Usually works to only set the dimension of the first slide in the showcase. */
speed_change: true, /* Set to true to prevent users from swithing more then one slide at once. */
viewline: false, /* If set to true content_width, thumbnails, transition and dynamic_height will be disabled. As for dynamic height you need to set the width and height of images in the source. */
custom_function: null /* Define a custom function that runs on content change */
});
$("#showcase_2").awShowcase(
{
content_width: 700,
content_height: 320,
fit_to_parent: false,
auto: false,
interval: 3000,
continuous: false,
loading: true,
tooltip_width: 200,
tooltip_icon_width: 32,
tooltip_icon_height: 32,
tooltip_offsetx: 18,
tooltip_offsety: 0,
arrows: false,
buttons: true,
btn_numbers: true,
keybord_keys: true,
mousetrace: false, /* Trace x and y coordinates for the mouse */
pauseonover: true,
stoponclick: false,
transition: 'fade', /* hslide/vslide/fade */
transition_delay: 0,
transition_speed: 500,
show_caption: 'onload', /* onload/onhover/show */
thumbnails: false,
thumbnails_position: 'outside-last', /* outside-last/outside-first/inside-last/inside-first */
thumbnails_direction: 'vertical', /* vertical/horizontal */
thumbnails_slidex: 1, /* 0 = auto / 1 = slide one thumbnail / 2 = slide two thumbnails / etc. */
dynamic_height: false, /* For dynamic height to work in webkit you need to set the width and height of images in the source. Usually works to only set the dimension of the first slide in the showcase. */
speed_change: true, /* Set to true to prevent users from swithing more then one slide at once. */
viewline: false, /* If set to true content_width, thumbnails, transition and dynamic_height will be disabled. As for dynamic height you need to set the width and height of images in the source. */
custom_function: null /* Define a custom function that runs on content change */
});
$("#showcase_3").awShowcase(
{
content_width: 700,
content_height: 320,
fit_to_parent: false,
auto: false,
interval: 3000,
continuous: false,
loading: true,
tooltip_width: 200,
tooltip_icon_width: 32,
tooltip_icon_height: 32,
tooltip_offsetx: 18,
tooltip_offsety: 0,
arrows: false,
buttons: true,
btn_numbers: true,
keybord_keys: true,
mousetrace: false, /* Trace x and y coordinates for the mouse */
pauseonover: true,
stoponclick: false,
transition: 'fade', /* hslide/vslide/fade */
transition_delay: 0,
transition_speed: 500,
show_caption: 'onload', /* onload/onhover/show */
thumbnails: false,
thumbnails_position: 'outside-last', /* outside-last/outside-first/inside-last/inside-first */
thumbnails_direction: 'vertical', /* vertical/horizontal */
thumbnails_slidex: 1, /* 0 = auto / 1 = slide one thumbnail / 2 = slide two thumbnails / etc. */
dynamic_height: false, /* For dynamic height to work in webkit you need to set the width and height of images in the source. Usually works to only set the dimension of the first slide in the showcase. */
speed_change: true, /* Set to true to prevent users from swithing more then one slide at once. */
viewline: false, /* If set to true content_width, thumbnails, transition and dynamic_height will be disabled. As for dynamic height you need to set the width and height of images in the source. */
custom_function: null /* Define a custom function that runs on content change */
});
});

</script>

<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<style type="text/css">
<!--
.Stile1 {
color: #FFFFFF;
font-family: "Century Gothic";
}
body,td,th {
font-family: Century Gothic;
}
.Stile3 {color: #FFFFFF}
-->
</style>
</head>
<body>
<form name="form1" method="post" action="{$_SERVER['REQUEST_URI']}">
<table width="75%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
<tr>
<td width="16%">username</td>
<td width="84%"><input name="user" type="text" id="user"></td>
</tr>
<tr>
<td>password</td>
<td><input name="pass" type="password" id="pass"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="log" type="submit" id="log" value="log"></td>
</tr>
</table>
</form>
<p><a href="login_3.php">esci</a></p>
</body>


non va bene così????
[/CODE]


ho provato a fare tutto inphp, senza inserire il body...sbaglian
 
ciao
ma a quale pag si riferisce tutto quell'ambaradan che hai scritto?
se quello è il codice della pag log_3 non credo proprio che funzi, tra l'altro la pag di log serve esclusivamente per inserire user e pass, non dovrebbe avere altro, è solo una pagina di passaggio.
cliccando sul link http://newsadv.it/provaphp/ e cliccando AreaRiservata (in alto) in effetti si arriva alla log_3, ma sembrerebbe che non legga il php. il codice php usando visualizza sorgente del bw dovrebbe essere invisibile se si vede vuol dire che non è considerato dal server php.
 
ciao
ho riguardato il tutto e mi è venuto un grossissimo dubbio.
fai questo file php (non mettere nient'altro ne html ecc..) chiamalo info.php

PHP:
<?
phpinfo();
?>

lo carichi nella cartella principale dove hai il tuo sito e lo lanci

htttp://www.tuo_sito.it/info.php

e dimmi cosa risulta
 
OK adesso lo faccio caricare che sono a casa e non in agenzia
 
Ultima modifica:
Tra mezzora se va bene è su! mi stai facendo venire tatnta paura ....:(
 
Ultima modifica:
Mi hanno caricato il fle finalmente e purtroppo quando provo a digitare l'indirizzo mi da la pagina tutta bianca. è un problema del server dove ho appoggiato il sito?
www.newsadv.it/info.php
Comunque l'ambaradan che ti ho caricato dovrebbe essere il login dove metto username e password
 
ciao
ahime, il dubbio è diventato certezza sembra proprio che il tuo host non supporti php:crying:
se non supporta php quello che ti ho inviato è da cestinare.
chiedi comunque al provider perche non supporta php
 
Buondì, ragazzuoli mi è comparsa una schermata che non avevo mai vista che mi dice
PHP version 5.3.0...e una serie di dati incrdibile dentro una tabella...quindi il mio cliente alla fine c'e l'ha il server su cui funziona il php!!!
ottimo adesso faccio la prova con il mio sito...
ma perchè la prova che avevo postato tempo addietro non funziona il logon dentro l'area riservata??????
 
ciao
Buondì, ragazzuoli mi è comparsa una schermata che non avevo mai vista che mi dice
PHP version 5.3.0...e una serie di dati incrdibile dentro una tabella...quindi il mio cliente alla fine c'e l'ha il server su cui funziona il php!!!
ottimo adesso faccio la prova con il mio sito...
ma perchè la prova che avevo postato tempo addietro non funziona il logon dentro l'area riservata??????
evidentemente per l'info era un problema del tag corto.
per il resto ora bisogna che riprenda il filo del discorso
 
Capito! Adesso sto aspettando che l'ftp finisca di caricare tuttoilsito perchè stamattina dovrebbe venire ilcliente avedere come procede il sito, e comunque di nuovo grazie mille a tutti ragazzi e soprattutto a te borgo, siete stati davvero di grande aiuto!
Cmq riprendendo il discorso io adesso cerco una volta caricato il tutto di vedere cosa non andava
 

Discussioni simili