- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Tutorial] Area privata
-
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]
-
Questa sarebbe la pagina id_prova.php che ti da errore alla riga 3?
Vedendo questa query:
[php]
INSERT INTO richieste".$array['id']."
[/php]
Se il mio id utente è 300 tu stai cercando di inserire nella tabella richieste300, e quindi non credo che la trovi.
-
Perchè non la dovrei trovare quando lo creata? la tabella esiste, ora non ti spiego come faccio a crearla perchè non è questo il problema, i dati vengono salvati tutti tranne il id_amico che sarebbe $_SESSION['id'].
Forese lo devo assegnare ad una variabile???p.s. Questa non è la pagina id_prova quello era soltanto un echo
del $_SESSION['id']......
-
Il discorso della tabella per me è comunque sbagliato, creare una tabella per utente significa che se hai 10000 utenti registrati hai 10000 tabelle, sarebbe più corretto mettere un campo che indichi l'id dell'utente.
Lasciando perdere questo discorso, nel file include("config.ini.php"); hai messo il session_start(); come ti avevo precedentemente detto?
-
bhe sul fatto belle tabelle sarebbe un po difficile come dici tu...perchè poi se io ho questa tabella
[PHP]
id_utente,id_amico, tipo_richiesta, data_amicizia
[/PHP]e se un utente ha più di una richiesta io come faccio a mettere tutti gli id degli amici nello stesso campo?
coqmuneu certo che ho lasciato il session star!
-
Nello stesso campo? Solitamente si inserisce un record per ogni amico.
A me sembra deve funzionare se hai messo il session_start e sei loggato la variabile $_SESSION['id'] deve per forza avere valore.
Ma il problema che era identico nel file dell'area privata che ti faceva il redirect come lo hai risolto?Metti la pagina cosi e dimmi che echo fa.
[php]
<?php
error_reporting(E_ALL);
//connesione al database
include("config.ini.php");
/*recupero le variabili inviate tramite get e definisce la data corrente */
$nome=$_GET['nome'];
$data=date("d/m/Y");
$tipo="amicizia";//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>");
die("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$_SESSION['id']."', '".$tipo."', '".$data."')");
?>
<!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]
-
Sucsa se ci ho messo tempo ma stavo modificando il sistema di gestione blog utenti comuque mi restituisce questo
Notice: Undefined index: id in /membri/zomer/richiesta_amicizia.php on line 14
Notice: Undefined index: id in /membri/zomer/richiesta_amicizia.php on line 15
INSERT INTO richieste8 (id_amico, tipo_richiesta, data_amicizia) VALUES ('', 'amicizia', '10/09/2009')mmm...vedi vuoto! un secondo me è un false!
-
I motivi possono essere solo 2:
- Manca session_start o è ripetuto.
- Non sei loggato.
-
Senti allora prova te! se non mi credi questo è il link h**p://zomer.altervista.org/
Clicca su accedi
nick zomer
pass tgbyhnPoi clicca su cerca amici in alto a destra poi inserisci il nome claudio e clicca sul link aggiungi questa persona come amico...
-
Il problema non è quello di crederti o meno, è che i motivi possono essere solo quei 2.
Sicuro che che hai messo l'id in $_SESSION['id'] perchè in un altro file utilizzavi $_SESSION['login'].
-
Sicuro che che hai messo l'id in $_SESSION['id'] perchè in un altro file utilizzavi $_SESSION['login']. E io che ne so...lo script è il tuo!!! Comunque le pagine stano sopra...comunque cose il session login mai sentito parlare...
-
Io nel tutorial ho usato $_SESSION['login'], però non lo sò se in login lo hai cambiato o no.
[php]
<?php
error_reporting(E_ALL);
//connesione al database
include("config.ini.php");
/*recupero le variabili inviate tramite get e definisce la data corrente */
$nome=$_GET['nome'];
$data=date("d/m/Y");
$tipo="amicizia";//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['login']."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
die("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$_SESSION['login']."', '".$tipo."', '".$data."')");
?>
<!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]
-
FUNZIONA!!!!!! SENTI TI POSSO CHIEDERE ALTRE PERO' NON RIGUARDANO LO SCRIPT DI LOGIN!!!!!
-
Usavi la variabile sbagliata, io avevo dato per scontato fosse giusta invece non lo era.
Per altro puoi aprire un thread in php-mysql e ti rispondo la.
-
Ragazzi il mio editor php mi segna in rosso la variabile $user e $pass come se non le riconoscesse. Se a quelle variabili sostituisco direttamente le credenziali di un account funziona, quindi dubito sia il resto a non andare.Ho provato anche a eseguirlo con le variabili contenute dal doppio apice ' "$user" ' in quel caso mi riconosce la variabile ma comunque non permette l'accesso. Dove vado a sbattere? Grazie
[php] // Controllo l'utente esiste
$query = mysql_query("SELECT idusers FROM users WHERE username = '$user' AND password = '$pass' LIMIT 1");// Se ha trovato un record
if(mysql_num_rows($query) == 1) [/php]
-
Che le segni in rosso mi sembra normale.
-
Eh ma è come se poi non me le riconoscesse come variabili,p erchè se io li dentro sostituisco direttamente i valori di un record esegue l'accesso perfettamente, mentre se lascio le variabili è come se non facesse il check delle password inserite con il database.
Dove è il problema allora?
-
Dovresti postare il codice di tutta la pagina, altrimenti oltre dirti di fare un echo nella query, è impossibile aiutarti.
-
[php]<?php
// Includo la connessione al database
require('config.php');// Se il modulo viene inviato...
if(isset($_POST['login']))
{// Dati Inviati dal modulo
$user = (isset($_POST['username'])) ? trim($_POST['username']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
$pass = (isset($_POST['password'])) ? trim($_POST['password']) : ''; // 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 idusers FROM users WHERE username = '$user' AND password = '$pass' LIMIT 1");// Se ha trovato un record
if(mysql_num_rows($query) == 1)
{
// prelevo l'id dal database
$login = mysql_fetch_array($query);// Creo una variabile di sessione
$_SESSION['login'] = $login['idusers'];// reindirizzo l'utente
header('Location: privata.php');
exit;
}
// se non esiste da l'errore
else
die('Nome Utente o Password errati');[/php]