[RISOLTO]Profilo pubblico in php

Nickname

Utente Attivo
18 Set 2013
122
0
0
Salve a tutti, premetto che non sono nuovo del forum ma ho semplicemente fatto un nuovo account e che ho già cercato sulla rete la soluzione al mio problema ma non ho trovato niente che mi sia stato di aiuto.
Ma soprattutto premetto che sono una capra in Php xD

Nonostante questo sono riuscito a creare un sito web con un form di registrazione e uno per il login,
Sono anche riuscito a fare in modo che ogni utente abbia un proprio profilo, creando la pagina account.php e riprendendo i dati dell'utente dal database.
Ora però vorrei fare in modo che il profilo di (ad esempio) Luca, sia visibile a tutti e non solo a Luca.
Perché io ho fatto in modo che ad un utente loggato compaia un tasto con scritto Profilo, e quindi poi può andare a vedere tutti i suoi dati.
Come posso fare però in modo che questi dati siano visibili da tutti ?

e.. prima riuscite a rispondermi e meglio è; è una cosa abbastanza urgente xD ma ovviamente non pretendo certo una risposta ed una soluzione immediata al mio problema ;)
Grazie mille a tutti :)
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
Non capisco dove sia il problema. Se l'utente vuole che gli altri vedano il suo profilo dovrà pubblicizzare il link al profilo, no?

Mh no forse non mi sono spiegato bene, praticamente vorrei fare una sorta di facebook se vogliamo, e che ogni utente registrato abbia un proprio profilo, e questo sono riuscito a farlo, però gli utenti possono vedere solo il profilo personale e non possono vedere quello degli altri.

Esempio:
Nel mio sito ci sono 2 account, Luca e pippo
Se faccio il login con luca, vado sulla pagina account.php e vedo i miei dati personali come nome cognome ecc. e fin qui tutto ok
Però poi vado su una pagina dove c'è una lista di tutti gli utenti del sito, e quindi c'è anche pippo, il link della pagina di pippo dovrà essere ad esempio account.php/pippo
Ed è questo che non so come fare, cioè non voglio andare a creare personalmente ogni pagina di ogni utente, voglio che, ad esempio, se pippo nella tabella degli utenti ha come id 1, il php fa una sorta di questo: account.php?id=1 e che quindi stampi a video tutti i dati di pippo.

Su facebook ad esempio se uno scrive ....com/profile.php?id=100 uscirà fuori il profilo che ha come id 100, e poi questo ....com/profile.php?id=100 verrà sostituito ad esempio con ....com/profile.php/Giovanni, ora non mi interessa tanto questa sostituzione ma mi interessa che tutti riescano a vedere i profili di tutti.

È difficile da spiegare spero di essere stato chiaro :p
 
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
secondo me ti conviene dividere il problema in più parti (prendiamo sempre luca e pippo) schematizzo
1) visualizzazione del profilo
2) modifica profilo o elimina account
per entrambe è evidente che l'utente deve essere loggato, quindi nella pag di log potresti mettere le sessioni
$_SESSION['utente']="password_pippo"

nella pagina elenco dei profili e nella visualizza profilo
PHP:
<?php
session_start();
//verifichi che l'utente sia loggato
if(!isset($_SESSION['utente'])){
	//non loggato
	header("location:index.pxp");
	exit();
}
//loggato ok mostri il profilo
$id=$_GET['id'];//se usi il get ATTENTO a fare verifiche, il get è pericoloso
//ecc.......
?>
evidente che tale pagina possono vederla luca e pippo purche loggati
se togli la parte dell'if !isset, la pagina possono vederla tutti

nella pagina di modifica profilo o elimina account
qui è evidente che il profilo di luca può essere modificato SOLO da luca
PHP:
<?php
session_start();
//verifichi che l'utente sia loggato
if(!isset($_SESSION['utente'])){
	//non loggato
	header("location:index.pxp");
	exit();
}else{
	//l'utente è loggato, potresti verificare nuovamente la sua password
	//soprattutto se ci sono dati sensibili o eliminazione dell'account
	//fai la query di select
	$query="SELECT * FROM profili WHERE password='".$_SESSION['utente']."'";
	//e quindi puoi es creare un form di modifica
	//con i dati di luca se la pass è di luca, o con i dati di pippo se la pass è di pippo
	//quindi luca vede e può modificare solo i suoi dati, analogamente pippo
	//..ecc....
}
?>
spero di essere stato chiaro
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
ciao
secondo me ti conviene dividere il problema in più parti (prendiamo sempre luca e pippo) schematizzo
1) visualizzazione del profilo
2) modifica profilo o elimina account
per entrambe è evidente che l'utente deve essere loggato, quindi nella pag di log potresti mettere le sessioni
$_SESSION['utente']="password_pippo"

nella pagina elenco dei profili e nella visualizza profilo
PHP:
<?php
session_start();
//verifichi che l'utente sia loggato
if(!isset($_SESSION['utente'])){
	//non loggato
	header("location:index.pxp");
	exit();
}
//loggato ok mostri il profilo
$id=$_GET['id'];//se usi il get ATTENTO a fare verifiche, il get è pericoloso
//ecc.......
?>
evidente che tale pagina possono vederla luca e pippo purche loggati
se togli la parte dell'if !isset, la pagina possono vederla tutti

nella pagina di modifica profilo o elimina account
qui è evidente che il profilo di luca può essere modificato SOLO da luca
PHP:
<?php
session_start();
//verifichi che l'utente sia loggato
if(!isset($_SESSION['utente'])){
	//non loggato
	header("location:index.pxp");
	exit();
}else{
	//l'utente è loggato, potresti verificare nuovamente la sua password
	//soprattutto se ci sono dati sensibili o eliminazione dell'account
	//fai la query di select
	$query="SELECT * FROM profili WHERE password='".$_SESSION['utente']."'";
	//e quindi puoi es creare un form di modifica
	//con i dati di luca se la pass è di luca, o con i dati di pippo se la pass è di pippo
	//quindi luca vede e può modificare solo i suoi dati, analogamente pippo
	//..ecc....
}
?>
spero di essere stato chiaro

Grazie mille per aver risposto :)
Si sei stato abbastanza chiaro però non mi funziona, sicuramente sbaglio qualcosa, perché di php ci capisco poco xD
Ti posto il codice della pagina account.php

PHP:
<?php if(isset($_SESSION['utente']))
{					
echo "<span style='font-family: Rosario; font-weight: bold; color: #06F; font-size: 17px;'>Ciao <span class='utente'>".$_SESSION['utente']."</span></span> | <a href='account.php?azione=logout' class='logout'><span style='font-family: Rosario; '>Esci</span></a>";

} else {
					
echo "<a href='account.php?azione=login' class='login'><div id='scrittalogin'>Accedi</div></a>";
}
 ?>

<?php
		
$p = $_GET['azione'];

if($p == "login"){
if(!isset($_POST['invia'])){ ?>
<br />
<form method="post" action="#" id="formlogin">
					
<label for="username">Nome Utente</label><br />
<input type="text" name="username" id="username" /><br><br>
<label for="password">Password</label><br />
<input type="password" name="password" id="password" /><br /><br>
<input type="submit" name="invia" id="buttonlogin" value="Entra" />

</form>

		
<?php
} else {
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

  
					
if($username == "" || $password == ""){
					
echo "<br><span style='color: #F00;'>Attenzione, devi inserire sia il Nome utente che la Password.</span>";
					
} else {
					
					
$recuperadati = mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password = '$password'");
						
$verificadati = mysql_num_rows($recuperadati);
						
if($verificadati == 1){
						
$sessione = mysql_fetch_array($recuperadati);
$_SESSION['utente'] = $sessione['username'];
$_SESSION['email'] = $sessione['email'];

echo "<br><b>Login effettuato con successo.</b>";
header("Refresh: 2; URL= account.php");

} else {
						
echo "<br><span style='color: #F00;'>Utente o password sbagliati.</span>";
						
}
}
}

} elseif ($p == "logout"){
			
session_destroy();
echo "<br>Logout effettuato con successo!";
header("Refresh: 2; URL= account.php");
}
?>


<br><br><br>

<?php if(isset($_SESSION['utente']))
{					
echo "<a href='account.php'><div id='profilo'>Profilo Utente</div></a>";
}
?>

Ti prego aiutami sono disperato :( ,devo assolutamente risolvere questa cosa
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
Aaaaaaallora, ho risolto in questo modo, questa è la pagina index.php

PHP:
<html>
<head>

<title>Ricerca:</title>
</head>
<body>
<h2>Cerca Utente:</h2></br></br>

<form action="profile.php" method="GET">
<table>
<tr><td>Username:</td>
<td><input type="text" id="username" name="username"></td></tr>
<tr><td><input type="submit" id="submit" name="submit" value="Guarda profilo!"></td></tr>

</table>
</form>
</body>
</html>

E questa è la pagina profile.php

PHP:
<html><head>
<title>Profilo</title>
</head>
<body>
<?php
if (isset($_GET['submit'])){
	$username = $_GET['username'];
	mysql_connect("localhost","root","") or die ("Non posso connettermi al Server.");
	mysql_select_db("my_provasitofabrizio") or die ("Database non trovato.");
	$userquery = mysql_query("SELECT * FROM users WHERE username='$username'") or die ("La Query non è stata completata, riprova.");
	if (mysql_num_rows($userquery) != 1){
		die ("L'utente non esiste!");
	}
	while($row = mysql_fetch_array($userquery, MYSQL_ASSOC)){
		$firstname = $row['firstname'];
		$lastname = $row['lastname'];
		$email = $row['email'];
		$dbusername = $row['username'];
		$activated = $row['activated'];
		$access = $row['access'];	
	}
	if($username != $dbusername){
		die ("Ricordati di scrivere bene le maiuscole e le minuscole dell'utente che intendi cercare!");
	}
		
	if ($activated == 0){
		$active = "Questo account non è attivo.";
	} else {
 		$active = "Questo account è attivo.";		
	}
	
	if($access == 0){
		$admin = "Questo utente non è un'amministratore.";
	} else {
		$admin = "Questo utente è un'amministratore.";
	}
	
?>

<h2>Profilo di <?php echo $firstname; ?> <?php echo $lastname; ?></h2><br />
<table>
<tr><td>Firstname: </td><td><?php echo $firstname; ?> </td></tr>
<tr><td>Lastname: </td><td><?php echo $lastname; ?> </td></tr>
<tr><td>Email: </td><td><?php echo $email; ?> </td></tr>
<tr><td>Username: </td><td><?php echo $dbusername; ?> </td></tr>
<tr><td>Activated: </td><td><?php echo $active; ?> </td></tr>
<tr><td>Access: </td><td><?php echo $admin; ?> </td></tr>
</table>


<?php
} else die ("Devi inserire un Username!");
?>
</body>
</html>


Praticamente uno scrive il nome di un utente e preme invio e così fa vedere il profilo di quella persona, ora però mi chiedo, come si può fare in modo che, invece di scrivere il nome ecc., si clicchi direttamente sul nome del profilo ?
Se ci sono (sicuramente) mi potreste indicare vari errori ? Grazie mille ancora :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
N [RISOLTO]Modifica Profilo Utente PHP PHP 32
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15

Discussioni simili