problema con area riservata

alessandromonti

Utente Attivo
25 Mar 2012
62
0
0
salve..
per area riservata cui possono accedere più utenti creato 3 pag
1-accedi-riservata.php: utente inserito username e password viene spedito a pagina-riservata.php
2-in pagina-riservata.php l'utente inserisci la sua e-mail che la spedisco a estrarre-link-da-db.php
3- in estrarre-link-da-db.php se la e-mail inserita dall'utente esiste nel db gli dò il suo indirizzo di pagina riservata altrimenti, e-mail assente, lo mando alla pag e-mail-assente.php...problema se l'utente inserisce l'e-mail corretta tutto bene...se invece inserisce un indirizzo inesitente nel db salta fuori Warning: Cannot modify header information - headers already sent by (output started at /home/n65432/domains/xxxxxxx.yy/public_html/area-riservata/estrarre-link-da-db.php:130) in /home/n65432/domains/xxxxxx.yy/public_html/area-riservata/estrarre-link-da-db.php on line 139..in locale tutto fila liscio..il problema salta fuori in remoto..
ecco lo script della pg estrarre-link-da-db.php

PHP:
           <?php
  $db = 'nomedatabase'; 
  $sel = mysql_select_db($db) or die (mysql_error());//selz il db
  $email = $_POST['imail'];
  $pagina_errore = "http://www.xxxxxx.yy/area-riservata/email-assente.php";  
//query al db
    $ricevuta = mysql_query("SELECT link FROM pagineriservate WHERE email = '$email'") or die (mysql_error());
          if(mysql_num_rows($ricevuta) == 0)
    {
      header ("Location: $pagina_errore");
    }else{
      //recupero il link
      if($obj = mysql_fetch_object($ricevuta) or die (mysql_error()))
      {
        // stampo il link 
	echo 'Ecco il link per la tua pagina riservata personale:  <a href='.$obj->link.'>Link</a>'."\n";          
      }
    }
?>

grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
intanto mi sembra che manchi qualcosa nella connessione al db,
poi potresti verificare la correttezza formale dell'indirizzo email e solo se corretto ti colleghi al db ecc...
PHP:
<?php
$pagina_errore = "http://www.xxxxxx.yy/area-riservata/email-assente.php"; 
$email = $_POST['imail'];
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){//se email non corretta rimandi all'errore
	header ("Location: $pagina_errore");
	exit();//poi aggiungi questo sempre dopo l'header location o refresh
}
$db = 'nomedatabase';
$conn = mysql_connect($host,$username,$password) or die (mysql_error());//devi connettriti al db
$sel = mysql_select_db($db) or die (mysql_error());//selz il db 
//query al db
$ricevuta = mysql_query("SELECT link FROM pagineriservate WHERE email = '$email'") or die (mysql_error());
if(mysql_num_rows($ricevuta) == 0){
	header ("Location: $pagina_errore");
	exit();//poi aggiungi questo
}else{
	//recupero il link
	if($obj = mysql_fetch_object($ricevuta) or die (mysql_error())){
		// stampo il link 
		echo 'Ecco il link per la tua pagina riservata personale:  <a href='.$obj->link.'>Link</a>'."\n";          
	}
}
?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
non è consentito mandare in output nessun carattere,nemmeno uno spazio prima del richiamo della funzione header();
devi controllare bene
o puoi provare ritardando il redirect in questo modo
PHP:
header("refresh:1;url=" . $pagina_errore);
ma non ti assicuro
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao scusa
mi sono accorto di una cosa, facendo solo così uno che riesce a capire come si chiama la pagina (scrivo con gli spazi)
puo scrivere sul bw
http :// www. tuo_sito . it/ pagina_riservata_di_pinco.php
e quindi accede alla pagina senza essere autorizzato
se non ci avevi già pensato fai queste aggiunte
PHP:
<?php
ob_start();
session_start();
$pagina_errore = "http://www.xxxxxx.yy/area-riservata/email-assente.php"; 
$email = $_POST['imail'];
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){//se email non corretta rimandi all'errore
	header ("Location: $pagina_errore");
	exit();//poi aggiungi questo sempre dopo l'headre location o refresh
}
$db = 'nomedatabase';
$conn = mysql_connect($host,$username,$password) or die (mysql_error());//devi connettriti al db
$sel = mysql_select_db($db) or die (mysql_error());//selz il db 
//query al db
$ricevuta = mysql_query("SELECT link FROM pagineriservate WHERE email = '$email'") or die (mysql_error());
if(mysql_num_rows($ricevuta) == 0){
	header ("Location: $pagina_errore");
	exit();//poi aggiungi questo
}else{
	//recupero il link
	if($obj = mysql_fetch_object($ricevuta) or die (mysql_error())){
		//valorizzo la sessione
		$_SESSION['email']=$obj->email;
		// stampo il link 
		echo 'Ecco il link per la tua pagina riservata personale:  <a href='.$obj->link.'>Link</a>'."\n"; //non ti converrebbe mettere un header anche qui?      
	}
}
ob_end_flush();
?>
poi nella pagina riservata verifichi che esista la sessione

PHP:
<?php
session_start();
if(!isset($_SESSION['email'])){//la sessione non esiste
	header ("Location: alla_pagina_che_preferisci.php");//quindi rimandi dove vuoi es alla index.php
	exit();
}
// e qui tutto quello che riguarda la pag riservata
//.........
?>

edit per cercare di evitre l'errore sul'hedare aggiungi ob_start all'inizio e ob_end_flush alla fine
 
Ultima modifica:

alessandromonti

Utente Attivo
25 Mar 2012
62
0
0
..intanto grazie...
1 il controllo correttezza formale della e-mail l'ho fatto in pagina-riservata.php quella che manda l'utente a pag estrarre-link-da-db.php
2 per proteggere le pag riservate ho usato limita l'accesso alla pagina di dreamweaver (è sufficiente?)...anche connessione fatta..non avevo postato tutto per snellire il post...
.. il codice di estrarre-link-da-db.php:

PHP:
<?php
if (!isset($_SESSION)) {
  session_start();
}
$MM_authorizedUsers = "";                         // limitazione accesso  alla pg 
$MM_donotCheckaccess = "true";


  $isValid = False; 


  if (!empty($UserName)) { 
   
    $arrUsers = Explode(",", $strUsers); 
    $arrGroups = Explode(",", $strGroups); 
    if (in_array($UserName, $arrUsers)) { 
      $isValid = true; 
    } 
   
    if (in_array($UserGroup, $arrGroups)) { 
      $isValid = true; 
    } 
    if (($strUsers == "") && true) { 
      $isValid = true; 
    } 
  } 
  return $isValid; 
}

$MM_restrictGoTo = "../riservata-errore.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($_SERVER['QUERY_STRING']) && strlen($_SERVER['QUERY_STRING']) > 0) 
  $MM_referrer .= "?" . $_SERVER['QUERY_STRING'];
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo); 
  exit;
}
?>
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conexione = "xxxxxxx";
$database_conexione = "xxxxxxx";
$username_conexione = "xxxxxxxx";
$password_conexione = "xxxxxxxxxx";
$conexione = mysql_pconnect($hostname_conexione, $username_conexione, $password_conexione) or trigger_error(mysql_error(),E_USER_ERROR);
?>
<?php 
ob_start();
$db = 'xxxxxx';
$sel = mysql_select_db($db) or die (mysql_error());//selz il db
$email = $_POST['imail'];
$pagina_errore = "http://xxxxx.xx/area-riservata/email-assente.php";  
//query al db
$ricevuta = mysql_query("SELECT link FROM pagineriservate WHERE email = '$email'") or die (mysql_error());
    if(mysql_num_rows($ricevuta) == 0){
        header ("Location: $pagina_errore");
        exit();  
    }else{
      //recupero il link
      if($obj = mysql_fetch_object($ricevuta) or die (mysql_error())){      
        // stampo il link 
	echo 'Ecco il link per la tua pagina riservata personale:  <a href='.$obj->link.'>Link</a>'."\n";          
      }
    }
ob_end_flush();
?>
funziona...ho cercato materiale...non sapevo che header non ammette anche i tag html...
.... un header al posto del link è meglio ma non so come fare..
grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
gandalf1959 problema con header in area riservata PHP 4
M Problema con form per accesso area riservata ai soci PHP 2
G Problema area riservata con IE PHP 6
R Problema con area riservata... PHP 4
S Problema di ritorno a paco con area di testo PHP 4
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1
V Problema con librerie allegro5 c++ C/C++ 1
M Problema con php per calcolo costo percentuale PHP 7
S Problema con mysqli_num_rows PHP 18
grgfede Problema javascript con aruba Javascript 1
M Problema con visibility e radio button Javascript 2
Marti1! Problema con casella mail cancellata Posta Elettronica 3
L [PHP] Problema con Telegram PHP 1
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
S Strano problema con i title su Google SEO e Posizionamento 3
P [ASP.Net] Problema ERR_INCOMPLETE_CHUNKED_ENCODING 206 (Partial Content) con Font ASP.NET 4
P [HTML] Problema ERR_INCOMPLETE_CHUNKED_ENCODING 206 (Partial Content) con Font HTML e CSS 1
N [Apache] problema con estensione php Apache 0
C [PHP] Problema con download file PHP 0
M [PHP] Problema con preg_match PHP 1
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3

Discussioni simili