MRW.it Forum
  • Home
  • Forum
  • Fare Web
  • PHP

estrazione mysql in base al login

  • Creatore Discussione Creatore Discussione iperboreo
  • Data di inizio Data di inizio 21 Giu 2012
Prec.
  • 1
  • 2
  • 3
  • 4
Succ.
Primo Prec. 2 di 4 Succ. Ultimo
borgo italia

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 3 Lug 2012
  • #21
ciao
prova così, comunque verifica la corrispondenta tra i nomi con quelli dei campi delle tabelli non so se li ho messi giusti
pegina di verifica log
PHP:
<?php
session_start();
$host="localhost"; // Hostname
$username="basefull"; // Mysql username
$password=""; // Mysql password
$db_name="my_basefull"; //Nome del Database
$tbl_name="registrazione"; // Nome della Tabella
// Procedimento per connettersi al Database
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Nome utente e password inviate attraverso il form
$myusername=addslashes($_POST['myusername']);
$mypassword=addslashes($_POST['mypassword']);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// If result matched $myusername and $mypassword, table row must be 1 row
if(mysql_num_rows($result)==1){
	$riga=mysql_fetch_array();
	// Register $myusername, $mypassword and redirect to file "http://www.basefull.altervista.org/home.html"
	$_SESSION['id']=$riga['Id'];//verifica il nome del campo tra quello di $riga e la tabella devono essere uguali
	$_SESSION['user']=$riga['myusername'];//c.s.
	$_SESSION['pass']=$riga['mypassword'];//c.s.
	header("location:http://www.basefull.altervista.org/home.html");//qui devi mettere il nome della pag dove si visualizzano le immagino penso
}else{
	echo "Attenzione username o password errati !  altrimenti procedere con la REGISTRAZIONE";
	echo "<a href=\"main_login.php\">registrati</a>";
}
?>
pagina per visualizzare le immagini
PHP:
<?php
session_start();
if(!isset($_SESSION['user'])){//una delle sessioni della pag precedente
	header("location:http://www.basefull.altervista.org");
	exit();
}
// qui i dati per la connessione
$sql="SELECT * FROM images where id_utente=".$_SESSION['id'];
$ris=mysql_query($sql);
if(mysql_num_rows($ris)==0){
	echo "non ci sono immagini";
}else{
	while($riga=mysql_fetch_array($ris)){
		$immagine=$riga['nome'];
		echo "<img src=\"$immagine\" ><br>";
	}
}
?>
 
Longo8

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 3 Lug 2012
  • #22
Si, ogni utente ha un suo id vero? Quindi basta fare una query prendendo la tupla con il suo id.
Per quanto riguarda la query che non esce l'unica cosa è che la variabile di sessione ($_SESSION['id']) sia vuota.
Quandi come ti hanno già detto fai un var_dump e vedi se realmente ci sia qualcosa.
Oppure se ti viene troppo difficile non avendo mai usato var_dump (anche se borgo ti ha postato come fare, basta un CTRL+C e CTRL+V) fai un echo.

EDIT: appena vista la risposta di Borgo, sorry ;)
 
I

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
  • 3 Lug 2012
  • #23
estrazione in base utente loggato

Ciao ragazzi, e grazie,
ho provato, come Borgo mi ha suggerito, ma non mi appare niente all'estrazione, mentre con le mie pagine appare il solito errore syntax.

Come faccio a vedere se la Session_id contiene veramente qualcosa?

ho creato una pagina "iscritti.php" dove ho inserito:


PHP:
<?php
session_start();

// controlliamo se è stata inizializzata la sessione
if(isset($_SESSION['id']))
{
  //controllo id con esito positivo
  echo "Benvenuto! Processo di attivazione concluso positivamente!";
header("location:http://www.basefull.altervista.org/home.html");

}else{
  //controllo sessione con esito negativo
  @header("Location: http//www.basefull.altervista.org");
}
?>
ho sbagliato qui?

grazie davvero
 
Ultima modifica di un moderatore: 3 Lug 2012

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 3 Lug 2012
  • #24
ciao
intanto la prima header vine dopi un output html (l'echo)
ma poi non ho capito, dipo il log quale è la pag che deve visualzzare le immagini?
 
I

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
  • 6 Lug 2012
  • #25
la pagina che visualizza le immagini si chiama foto.php
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 6 Lug 2012
  • #26
ciao
e allora perchè rimandi alla home?
 
I

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
  • 7 Lug 2012
  • #27
ciao
veramente non rimando alla home,
una volta loggato uno va alla HOME,

ma la pagina in questione dove cè il form per visualizzare la foto è FOTO.PHP

Io ho postato tutte le pagine anche quelle di controllo, per farvi vedere tutto, perchè deve essere collegato al login,

In sostanza un utente si logga, ed arriva alla pagina HOME.PHP
nella home cè il collegameno per la pagina FOTO.PHP e qui si deve vedere solo la foto dell utente in questione (loggato).
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 7 Lug 2012
  • #28
ciao
riprendiamo il tutto dall'inizio.
mi sembre che tu faccia così:
1) l'utente accede al form di log e si logga
2) viene chiamata la pagina di controllo se il log e giusto va alla home.php, se sbagliato a www . basefull. altervista. org in pratica alla index.php
3) ipotiziamo che log sia giusto quindi accede alla home.php dove c'è il link a foto.php

sin qui è giusto? e funziona cioe fa quello che deve fare?
se si la home.php è schematicamente fatta in questa maniera?
(leggi i commenti)
PHP:
<?php
session_start();
if(isset($_SESSION['id'])){
	//...........
	echo "Benvenuto! sei nella home";
	echo "<a href=\"foto.php\">vedi le tue immagini</a>";
	//e altri contenuti......
}else{
	//tentativo di accesso diretto alla pagina senza passare dal log es. http//www.basefull.altervista.org/foto.php
	header("Location: http//www.basefull.altervista.org");
	exit();
}
?>
se è simile per prima cosa metti al posto di //...........
var_dump($_SESSION['id']);
e guarda se ti riporta l'id dell'utente (se non lo riporta l'errore puo essere nel controllo o nel form precedenti), da qualche parte la sessione o si perde o non viene generata
arriviamo alla foto.php (anche se sei arrivato alla pagina) quella che ti avevo postato "dovrebbe" funziare
comunque metti i var dunp che ti indico e posta il risultato (anche mi accorgo adesso che da una parte la chiami $_SESSION['id'] e qui $_SESSION['user'] ?? verifica)
PHP:
<?php
session_start();
var_dump($_SESSION['user']);//???? prima la chiamavi ['id']??????
// provvisoriamente commeta il reindirizzamento altrimenti non vedi il risultati del var_dump se la sessione non esiste
//torni initero col pulsante del bw
if(!isset($_SESSION['user'])){//una delle sessioni della pag precedente
    echo "la sesione user non esiste";//questa poi la togli
	//header("location:http://www.basefull.altervista.org");
    //exit();
}
// qui i dati per la connessione
//e altri var dump
$sql="SELECT * FROM images where id_utente=".$_SESSION['id'];
var_dump($sql);//ti scrive come viene sviluppata la query
$ris=mysql_query($sql);
var_dump($ris);//se funzia risulta RESOURCE..., se non funzia bool FALSE
if(mysql_num_rows($ris)==0){
    echo "non ci sono immagini";
}else{
    while($riga=mysql_fetch_array($ris)){
        $immagine=$riga['nome'];
        echo "<img src=\"$immagine\" ><br>";
    }
}
?>
prova e posta i vari risultati
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 7 Lug 2012
  • #29
PHP:
header("location:http://www.basefull.altervista.org/home.html");
E questo a cosa servirebbe allora? (anche se non ti funziona).

In pratica nella pagina iscritti.php controlli se l'utente ha effettuato l'accesso altrimenti lo rimandi alla index.
Hai provato a loggarti? Mettendo caso che tutto il resto del login sia perfetto ti troverai una pagina con scritto:
Benvenuto! Processo di attivazione concluso positivamente!
Clicca per allargare...
E si blocca così in quanto una header dopo una echo o comunque una stampa a video di qualcosa non funziona!
1) leggendo il messaggio che mostri a video, cosa dovrebbe attivare l'utente da quella pagina? Il suo account? Così in pratica è come se lo 'attivassi' ogni volta che si logga.
2) Per vedere cosa c'è nella variabile di sessione basta utilizzare una echo:
PHP:
echo $_SESSION['id'];

Quindi nella home dovresti mettere un link alla pagina foto.php, dove ti inceppi?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 7 Lug 2012
  • #30
ciao
scusa mi sono accorto che ricavi entrambe le sessioni
 
I

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
  • 7 Lug 2012
  • #31
Ciao Borgo grazie della pazienza.
piu o meno è come dici tu,
se mo loggo correttamente vado sulla home.php, altrimenti ad una pagina chiamata attenzione.php

Ho fatto quello che mi hai detto, ma al posto di mostrare la foto, mi da sempre e sempre questo errore

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER By Id' at line 1

comunque la mia sessione è $_SESSION['id'];
dove hai letto 'user'?

SEcondo tè dove devo mettere la $_SESSION['id']; ? in quale pagina?

grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 7 Lug 2012
  • #32
ciao
metti quei benedetti var_dump e posta cosa ti danno

$sql="SELECT * FROM images where id_utente=".$_SESSION['id'];
var_dump($sql);//ti scrive come viene sviluppata la query
$ris=mysql_query($sql);
var_dump($ris);//se funzia risulta RESOURCE..., se non funzia bool FALSE

il primo var:dump dovrebbe darti qualcosa PRIMA che ti dia l'errore di mysql
 
I

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
  • 7 Lug 2012
  • #33
ho fatto, con il var_dump mi riporta lo stesso errore di prima, ma con davanti NULL
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 7 Lug 2012
  • #34
Prova a postare la query che utilizzi per selezionare le foto dell'utente.
 
I

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
  • 7 Lug 2012
  • #35
$query = "SELECT * FROM images WHERE id_utente=".$_SESSION['id'] ."ORDER By Id";
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 7 Lug 2012
  • #36
ciao
hai messo gli apici giusti? stai usando gli apici singoli?
comunque prova a correggere la riga
PHP:
<?php
//....
$sql="SELECT * FROM images where id_utente= ".$_SESSION['id'];
//...
?>
con
PHP:
<?php
//....
$sql="SELECT * FROM images where id_utente= ".{$_SESSION['id']};
//...
?>
 
I

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
  • 7 Lug 2012
  • #37
togliendo le graffe mi da questo.

string(38) "SELECT * FROM images where id_utente= " Query was empty
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 7 Lug 2012
  • #38
ciao
ecco la sessione non si valorizza.
ora bisogna cercare perchè.
hai messo in tutte le pag session_start() comè prima istruzione?
 
I

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
  • 8 Lug 2012
  • #39
Ciao Borgo,
si ho messo il session_start davanti a tutte le pagine interessate, credo di sbagliare la sessione.

Dove devo mettere la session_id?

io l'ho messa in una pagina chiamata iscritti.php e credo sia sbagliato, DOVE VA MESSA?

la riporto, è questa:

PHP:
<?php
session_start();

// controlliamo se è stata inizializzata la sessione
if(isset($_SESSION['id']))
{
  //controllo id con esito positivo
  echo "Benvenuto! Processo di attivazione concluso positivamente!";
header("location:http://www.basefull.altervista.org/home.html");

}else{
  //controllo sessione con esito negativo
  @header("Location: http//www.basefull.altervista.org");
}
?>

grazie
 
Ultima modifica di un moderatore: 8 Lug 2012

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 8 Lug 2012
  • #40
ciao
ho riguardato il tutto, la pag del form mi sembra ok (quindi non la riporto)
questa è la pag. checklogin.php
PHP:
<?php
session_start();//non dimenticarti questo
$host="localhost"; // Hostname
$username="basefull"; // Mysql username
$password=""; // Mysql password
$db_name="my_basefull"; //Nome del Database
$tbl_name="registrazione"; // Nome della Tabella
// Procedimento per connettersi al Database
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Nome utente e password inviate attraverso il form
$myusername=htmlspecialchars($_POST['myusername']);//ci vuole una certa minima protezione
$mypassword=htmlspecialchars($_POST['mypassword']);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
	//recupero da db l'user, la pass e anche l'Id
	//meglio che prenderlo da $_POST
	// Register $myusername, $mypassword and redirect to file "http://www.basefull.altervista.org/home.html"
	$riga=mysql_fetch_array($result);
	$_SESSION['myusername']=$riga['username'];
	$_SESSION['mypassword']=$riga['password'];
	//e preleviamo anche l'idId
	$_SESSION['id']=$riga['Id'];
	header("location:http://www.basefull.altervista.org/home.html");
	exit();
}
else {
	echo "Attenzione username o password errati !  altrimenti procedere con la REGISTRAZIONE";
	//e qui ti conviene mettere o un link o un riinvio automatico (meglio)
}
?>
poi la pag iscritti.php che hai fatto(??) per la sessione non ti serve, la verifica e la creazione delle sessioni l'hai gia fatta nella pag checklogin.php

nella home.html metterai il link alla foto.php
e questa la foto.php
PHP:
<?php
session_start();//non dimenticarti questo
//....
$cartella="immagini/";//qui dovrai mettere il percorso rispetto allo script o no se sono nella stessa cartella
$query = "SELECT * FROM images WHERE id_utente=".{$_SESSION['id']}." ORDER BY Id";//sei sicuro che nella tab immagini sia Id?
$ris=mysql_query($query);
if(mysql_num_rows($ris)==0){
    echo "non ci sono immagini";
}else{
    while($riga=mysql_fetch_array($ris)){
        $immagine=$riga['nome'];
        $immagine=$cartella.$immagine;
        echo "<img src=\"$immagine\" width=\"100%\" height=\"100%\" border=\"0\"title=\"quello che vuoi se hai il tit dell'imm\" / ><br />";
    }
}
//.....
?>
così funziona , verifica che i nomi campi/variabili corrisponda ai tuoi.
verifica comununque i nomi delle variabili e quelle di campi, devono essere uguali comprese maiuscole/minuscole comprese le chiavi delle sessioni

edit: ho visto il tuo post, quello script che hai fatto non ti serve a nulla (se non a farti caos) la verifica dell'username e della pass con conseguente inizializzazione delle sessione la fai di già in checklogin.php
 
Ultima modifica: 8 Lug 2012
Prec.
  • 1
  • 2
  • 3
  • 4
Succ.
Primo Prec. 2 di 4 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

P
Menu a discesa con estrazione dati da datbase mysql
  • paolomi
  • 6 Apr 2011
  • PHP
  • 2
Risposte
21
Visite
7K
PHP 13 Apr 2011
paolomi
P
L
Estrazione immagine database mysql
  • leon-kennedy
  • 4 Dic 2010
  • PHP
Risposte
1
Visite
2K
PHP 5 Dic 2010
alessandro1997
E
Progressbar estrazione dati da tabella mySQL
  • epag8
  • 11 Apr 2021
  • Ajax
Risposte
9
Visite
4K
Ajax 12 Apr 2021
marino51
L
estrazione dati da mysql in php e salvataggio in cartella del server
  • luigichi
  • 28 Feb 2017
  • PHP
  • 2 3
Risposte
51
Visite
10K
PHP 14 Mar 2017
luigichi
L
S
Php e mysql, estrazione da una tabella e inserimento in un'altra tabella
  • SiKei2
  • 20 Mag 2016
  • PHP
Risposte
14
Visite
5K
PHP 20 Mag 2016
SiKei2
S
Estrazione di un singolo dato da una ricerca mysql
  • gandalf1959
  • 1 Dic 2015
  • PHP
Risposte
1
Visite
1K
PHP 1 Dic 2015
gandalf1959
N
Estrazione Record multipli da MySQL in OO
  • nurbi76
  • 17 Ott 2013
  • PHP
Risposte
0
Visite
1K
PHP 17 Ott 2013
nurbi76
N
F
Estrazione da db MySQL con query molto lunga
  • Fxxxx
  • 10 Feb 2013
  • PHP
Risposte
13
Visite
4K
PHP 10 Feb 2013
Fxxxx
F
B
Estrazione Tabella MYSQL
  • bitox
  • 19 Dic 2012
  • PHP
Risposte
2
Visite
975
PHP 20 Dic 2012
bitox
B
I
estrazione valore da mysql where nome_campo è uguale alla session_id
  • iperboreo
  • 13 Ott 2012
  • PHP
Risposte
10
Visite
2K
PHP 14 Ott 2012
iperboreo
I
I
estrazione immagine in 2 formati da una tabella mysql
  • iperboreo
  • 10 Ott 2012
  • PHP
Risposte
3
Visite
1K
PHP 12 Ott 2012
borgo italia
A
problema: estrazione dati da query mysql e assegnazione ad una variabile
  • ariannaari
  • 28 Set 2010
  • PHP
Risposte
2
Visite
4K
PHP 29 Set 2010
ariannaari
A
C
Estrazione MySql da menù a tendina
  • ciopin
  • 18 Set 2010
  • PHP
  • 2 3
Risposte
42
Visite
17K
PHP 9 Ott 2010
ciopin
C
K
Estrazione di più risultati da tabelle correlate
  • Kiko74b
  • 5 Apr 2023
  • PHP
Risposte
5
Visite
951
PHP 26 Apr 2023
marino51
L
Estrazione dati php
  • LucaBordi
  • 23 Feb 2021
  • Database
Risposte
6
Visite
2K
Database 26 Feb 2021
LucaBordi
L
L
  • Bloccata
Estrazione dati casuali non doppioni
  • LucaBordi
  • 23 Feb 2021
  • MySQL
Risposte
1
Visite
2K
MySQL 23 Feb 2021
Max 1
D
Chiave unica in estrazione dati da array php
  • DiegoPTn
  • 22 Apr 2020
  • PHP
Risposte
0
Visite
1K
PHP 22 Apr 2020
DiegoPTn
D
L
Estrazione valori max su più campi
  • lorenzo84
  • 9 Apr 2020
  • MySQL
Risposte
4
Visite
1K
MySQL 11 Apr 2020
lorenzo84
L
M
[PHP] Estrazione random con nomi presi dal db
  • Max61
  • 17 Set 2019
  • PHP
  • 2
Risposte
22
Visite
3K
PHP 19 Set 2019
Max61
M
Estrazione e visualizzazione del simbolo dell'euro php/mysqli
  • gandalf1959
  • 4 Lug 2019
  • PHP
Risposte
0
Visite
1K
PHP 4 Lug 2019
gandalf1959
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?