- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Tutorial] Area privata
-
Ti ringrazio molto Thedarkita
-
TI IMPLORO IN GINOCCHIO DI AIUTARMI!!!!
Senti sto avendo molti problemi con il tuo script e vorrei risolverli allora
- il $_SESSION['id'] non mi funziona
- il login non funziuona e ho scoperto che se metto il session_start() nel config.ini il login va se lo metto nella apgina privata il login non và ti posto il codice, in poche parole la pagina privata non mi riconosce come utente registrato...ti posto qui l'inizio del codice della pagina privata
[php]
<?
session_start();
// Se non è stata definita la variabile manda l'utente alla homepage
if(!isset($_SESSION['login']))
{
header('Location: index.php');
exit;
}
[/php]
-
Ciao Zomer,
Il codice che hai postato mi sembra corretto.
-
E allora perchè non mi funziona? Prova tu questo è la index metti accedi e poi account Zomer e pass tgbyhn vedi che ti rimanda alla index!
h**p://zomer.altervista.org/index.php
-
Posta il codice per intero della pagina privata e del file login.php da te usato.
-
login.php
[PHP]
<?php
// Includo la connessione al database
require('config.ini.php');// Se il modulo viene inviato...
if(isset($_POST['login']))
{// Dati Inviati dal modulo $user = (isset($_POST['user'])) ? trim($_POST['user']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato d� di default '' $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato d� di default '' // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza if (!get_magic_quotes_gpc()) { $user = addslashes($user); $pass = addslashes($pass); } // Crypto la password e la confronto con quella nel database $pass = md5($pass); // Controllo l'utente esiste $query = mysql_query("SELECT id,attivazione FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1"); // Se ha trovato un record if(mysql_num_rows($query) == 1) { // prelevo l'id dal database $login = mysql_fetch_array($query); // L'account � attivo? if($login['attivazione'] == '') { // Creo una variabile di sessione $_SESSION['login'] = $login['id']; // reindirizzo l'utente header('Location: home.php'); exit; } else { die('Attiva il tuo account!!!'); } } // se non esiste da l'errore else die('Nome Utente o Password errati');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "hp://w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="h**p://**w.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head><body>
<form action="" method="post">
<input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" />
<input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" />
<input name="login" type="submit" value="Login" />
</form>
</body>
</html>[/PHP]
home.php
[PHP]
<?
session_start();
// Se non è stata definita la variabile manda l'utente alla homepage
if(!isset($_SESSION['login']))
{
header('Location: index.php');
exit;
}//controllo se sono presenti richieste sul utente
echo "<div id="richieste">";if(isset($_SESSION['user']) && isset($_SESSION['id']) && isset($_SESSION['nome']) )
{
$c=0;
echo "<script language='javascript'>
var richiesta = new Array();";
//si conette al database è trova l'id dell'amico
require('config.ini.php');
$query="SELECT id_amico FROM richieste".$_SESSION['id']." WHERE 1";
if($risultato = mysql_query($query))
{
while($row = mysql_fetch_array($risultato))
{
//if(strlen($row['amico'])>0)
echo "richiesta[".$c++."] = '".$row['id_amico']."';";
}
// riapre il database e con l'id_amico trova il nome e cognome associato all'id
$query = mysql_query("SELECT user,nome FROM utenti WHERE nome = '".$name."' LIMIT 1");
//chiude il database
mysql_close($db);if($c>0) //invia il messaggio al utente $testo = ''; if($row['tipo'] == "1") //o quello che hai deciso per le amicizie $testo = " L'utnete '$name' ti ha chiesto di essere suo amico "; //gli da la doppia chance echo " $testo <a href='amicizia.php?amico_aggiungi=".$_row['user']."'>Accetta</a> <a href='amicizia.php?amico_elimina=".$_row['user']."'>Ignora</a><br>"; } else errore('ERRORE QUERY'); echo "</script>"; }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "hp://w.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>huiijl</title>
<link rel="stylesheet" href="stili/prof-menu/prof-menu.css">
<link rel="stylesheet" href="stili/barra/barra.css">
</head>
<body>
<table style="height: 16px; width: 1089px;" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<td> </td>
<td style="text-align: center;">
<script type="text/javascript">
//<![CDATA[
document.write('<s'+'cript type="text/javascript" src="h**p://ad.altervista.org/js.ad/size=728X90/r='+new Date().getTime()+'"></s'+'cript>');
//]]>
</script></td>
<td style="text-align: right;"><a href="logout.php"><img
style="border: 0px solid ; width: 82px; height: 18px;"
alt="Esci e buon divertiemnto :D"
src="immagini/button/button_esci.gif"></a>
<a href="ricerca1.php">Cerca amico</a>
</td>
</tr>
</tbody>
</table>
<table style="width: 1089px; height: 118px;" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<td> <a href="home.php"><img
style="border: 0px solid ; width: 300px; height: 110px;"
alt="Zomer-Home" src="/loghi/logo.png"></a><br>
</td>
<td> <li class="green">
<p><a href="#">Il mio profilo</a></p>
<p class="subtext"> </p>
</li>
<li class="yellow">
<p><a href="costruzione.html">MyBlog</a></p>
<p class="subtext"></p>
</li>
<li class="red">
<p><a href="costruzione.html">Messaggi</a></p>
<p class="subtext"></p>
</li>
<li class="blue">
<p><a href="amici.php">Amici</a></p>
<p class="subtext"></p>
</li>
</td>
</tr>
</tbody>
</table>
<br>
<br>
<br>
<br>
<br>
<table style="width: 109px; height: 35px;" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<td><a href="avatar/index.htm"><img style="border: 0px solid ; width: 92px; height: 26px;"
alt="Cairca una foto" src="immagini/button/button_carica.gif"></a>
</td>
</tr>
</tbody>
</table>
<br>
<br>
<div id="bottom">
Barra
</body>
</html>
[/PHP]
-
home.php
[php]
<?php
require('config.ini.php');
// Se non è stata definita la variabile manda l'utente alla homepage
if(!isset($_SESSION['login']))
{
header('Location: index.php');
exit;
}//controllo se sono presenti richieste sul utente
echo "<div id="richieste">";if(isset($_SESSION['user']) && isset($_SESSION['id']) && isset($_SESSION['nome']) )
{
$c=0;
echo "<script language='javascript'>
var richiesta = new Array();";
//si conette al database è trova l'id dell'amico$query="SELECT id_amico FROM richieste".$_SESSION['id']." WHERE 1"; if($risultato = mysql_query($query)) { while($row = mysql_fetch_array($risultato)) { //if(strlen($row['amico'])>0) echo "richiesta[".$c++."] = '".$row['id_amico']."';"; } // riapre il database e con l'id_amico trova il nome e cognome associato all'id $query = mysql_query("SELECT user,nome FROM utenti WHERE nome = '".$name."' LIMIT 1"); if($c>0) //invia il messaggio al utente $testo = ''; if($row['tipo'] == "1") //o quello che hai deciso per le amicizie $testo = " L'utnete '$name' ti ha chiesto di essere suo amico "; //gli da la doppia chance echo " $testo <a href='amicizia.php?amico_aggiungi=".$_row['user']."'>Accetta</a> <a href='amicizia.php?amico_elimina=".$_row['user']."'>Ignora</a><br>"; } else errore('ERRORE QUERY'); echo "</script>"; }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "hp://w.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>huiijl</title>
<link rel="stylesheet" href="stili/prof-menu/prof-menu.css">
<link rel="stylesheet" href="stili/barra/barra.css">
</head>
<body>
<table style="height: 16px; width: 1089px;" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<td> </td>
<td style="text-align: center;">
<script type="text/javascript">
//<![CDATA[
document.write('<s'+'cript type="text/javascript" src="h**p://ad.altervista.org/js.ad/size=728X90/r='+new Date().getTime()+'"></s'+'cript>');
//]]>
</script></td>
<td style="text-align: right;"><a href="logout.php"><img
style="border: 0px solid ; width: 82px; height: 18px;"
alt="Esci e buon divertiemnto :D"
src="immagini/button/button_esci.gif"></a>
<a href="ricerca1.php">Cerca amico</a>
</td>
</tr>
</tbody>
</table>
<table style="width: 1089px; height: 118px;" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<td> <a href="home.php"><img
style="border: 0px solid ; width: 300px; height: 110px;"
alt="Zomer-Home" src="/loghi/logo.png"></a><br>
</td>
<td> <li class="green">
<p><a href="#">Il mio profilo</a></p>
<p class="subtext"> </p>
</li>
<li class="yellow">
<p><a href="costruzione.html">MyBlog</a></p>
<p class="subtext"></p>
</li>
<li class="red">
<p><a href="costruzione.html">Messaggi</a></p>
<p class="subtext"></p>
</li>
<li class="blue">
<p><a href="amici.php">Amici</a></p>
<p class="subtext"></p>
</li>
</td>
</tr>
</tbody>
</table>
<br>
<br>
<br>
<br>
<br>
<table style="width: 109px; height: 35px;" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<td><a href="avatar/index.htm"><img style="border: 0px solid ; width: 92px; height: 26px;"
alt="Cairca una foto" src="immagini/button/button_carica.gif"></a>
</td>
</tr>
</tbody>
</table>
<br>
<br>
<div id="bottom">
Barra
</body>
</html>
[/php]EDIT: non vedo dove dai valore a $_SESSION['user'] e $_SESSION['nome'].
EDIT2: Questa query:
[php]$query="SELECT id_amico FROM richieste".$_SESSION['id']." WHERE 1";[/php]
Dovrebbe generare errori di sintassi.
-
Ancora non funziona.
Come dovrebbe essere la query?
-
Non sò come hai strutturato la cosa dovrebbe essere cosi:
[php]$query="SELECT id_amico FROM richieste WHERE campo = '{$_SESSION['id']}'"; [/php]Al posto di:
[php]
if(!isset($_SESSION['login']))
{
header('Location: index.php');
exit;
}
[/php]
Metti:
[php]
echo $_SESSION['login'];
[/php]Nel file config.ini.php hai messo session_start?
-
- dreamwear mi diceva che andava bene come era la query
- la pagina si apre normale e l'echo non restituisce niente
- Il, session_start() lo devi mettere solo dove serve, non in config.inc.php.
-
Dreamweaver può dire quello che vuole, ricordo che in php non si può programmare con editor visuali, ovvio che nel codice poi ci sono 3000 problemi.
Il session_start ti serve in tutte le pagine invece di ripeterlo 300 volte lo apri una volta.
-
ho inserito il session start e mi da qeusto errore
Parse error: syntax error, unexpected T_VARIABLE in /membri/zomer/config.ini.php on line **4ecco il codice
**[PHP]
<?php
session_start()
// Dati connessione al database
$db_host = 'localhost'; // Host - solitamente localhost
$db_utente = 'zomer'; // Nome utente del Database
$db_password = ''; // Password del Database
$db_nome = 'my_zomer'; // Nome del Database// Effettua la connessione al database
$dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
mysql_select_db($db_nome);
?>
[/PHP]comunque Dreamweaver si setta in visuale o codice e io c'è l'ho in codice...
-
E allora come fa dreamweaver a dirti che la query è giusta?
Manca il ; alla fine di session_start();
-
Me lo indica dai colori, comunque lasciamo stare ti do ragione a te, ho un altro problema con le sessioni in questa queri non viene salvato il $_SESSION['id'] come mai?
[PHP]
mysql_query("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$_SESSION['id']."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
[/PHP]
-
Fai un echo e vedi se la variabile ha valore o no.
-
Ciao Thedarkita, era un pò di tempo che non entravo nel forum.
Ma più che altro volevo dire a Zomer che anch'io utilizzo dreamweaver ma ti posso garantire che crea degli errori madornali negli script di autotenticazione utente, e per quello ti consiglio di affidarti a Thedarkita che mi ha aiutato in modo fenomenale per risolvere i problemi; altro che dream!!!
Più che altro Thedarkita ho riscontrato un problema sulla casella di accettazione di un un regolamento all'atto di registrazione; ossia mi spiego meglio:
quando un utente nuovo si deve registrarsi al sito deve necessariamente spuntare la casella di accettazione, ma vedo che anche se non fa la spunta riesce a registrarsi. Era una delle mie domande che ti avevo fatto tempo fà, ma vedo che non è stato risolto del tutto. Comunque noto nel db che se l'utente ha spuntato la casella compare il "si" dell' avvenuta spunta, dunque presumo che sia lo script che non sia corretto. Se ti è possibile potresti rivedere e inviarmi lo script.
Grazie
-
Ciao arkom,
Non ho visto la tua richiesta per questo non ho risposto, se posti qui il codice della pagina di registrazione gli dò un occhiata.
-
Ciao arkom,
Io non dubito assolutamente delle capacità di thedark!!!! Anzi secondo me è uno dei più bravi!!! comunque per il tuo problema basta fare cosi[php]
//Controllo che ha accettato la privacy
if(!isset($_POST['checkbox']))
die('Non hai spuntato la checbox');
[/php]Ritornando a me, ho fatto un echo e mi dice
**
Parse error**: syntax error, unexpected T_ECHO in /membri/zomer/id_prova.php on line 3comunque ho gia provato a rivolgermi su un altro forum prima di te, e ti posto la discussione
h**p://forum.it.altervista.org/php-mysql-e-file-database/96901-la-query-non-funge-come-dovrebbe.htmlTI PREGO AIUTAMI
-
Zomer, dovresti postare nuovamente qui il tuo codice attuale.
Seguire consigli qua e là non ti aiuta a trovare la soluzione, perchè finiamo per mischiare le cose e a creare problemi invece che risolverli.L'errore comunque è la mancanza di un . o di un ; che dovresti trovare nelle righe 1-3.
-
Inftti ho abbandoanto li e vorrei riuscire a risolvere il problema con voi
[PHP]
<?php
error_reporting(E_ALL);
/*recupero le variabili inviate tramite get e definisce la data corrente */
$nome=$_GET['nome'];
$data=date("d/m/Y");
$tipo="amicizia";
//connesione al database
include("config.ini.php");
//query
$id = mysql_query("SELECT id FROM utenti WHERE nome = '".$nome."'")or die("<h1>".mysql_error()."</h1>");
$array = mysql_fetch_array($id);mysql_query("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$_SESSION['id']."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>Richiesta effetuata con sucesso</title>
</head>
<body>
<img alt="logo" src="loghi/logo.png"><br>
<br>
<br>
<br>
<br>
<br>
<br>
<div style="text-align: center;">Richiesta inviata con
sucesso <a href="home.php">torna alla home</a></div>
</body>
</html>[/PHP]