area riservata con mysql

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao a tutti,
ho sempre utilizzato l'area riservata con file text, ma ora per evolvermi be sto facendo unacon mysql, ma qui iniziano i problemi,

Spero che qualcuno possa aiutarmi a capire come mai non funziona, ( premetto che la sto utilizzando in remoto su mamp.

login.php

PHP:
<?php 
//connessione al databese
include 'db_connect.php';

//parte la sessione
session_start ();

//controllo dei dati inviati 
if ((!isset($_POST['username'])) && (!isset($_POST['password']))) 
{ 

// form per il login
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\"> 
User: <input type=\"text\" name=\"username\"><br> 
Password: <input type=\"password\" name=\"password\"><br> 
<input type=\"submit\" value=\"Invia\"></form>"; 
}else{ 

// query tabella utenti
$sql = mysql_query("SELECT * FROM user WHERE username='".$_POST['username']."' AND password=MD5('".$_POST['password']."')");
while ($prova = mysql_fetch_array($sql)) {
$num= $prova[0];

if (mysql_num_rows($sql)>0)
{
$_SESSION['username']=$_POST['username']; 
$_SESSION['password']=$_POST['password']; 
$_SESSION['user_id']=$prova[0];
//passo la variabile con ID dell'utente 
header("Location: pagina_riservata.php"); // no parametro
}
else {echo "Login errato";} 
}
}
?>

Pagina che una volta registrato dovrebbe darmi i risultati dell'annuncio che ha messo l'utente.

PHP:
<?php
//connessione al database
include 'db_connect.php';
if (!isset($_SESSION['user_id'])) die("Utente non registrato");
$result=$_SESSION['user_id']; // no $_GET['id];


//inizio sessione per l'utente che ha effettuato il login
session_start();
if(isset($_SESSION['username'])&& isset($_SESSION['password']))
{

echo "Benvenuto " . $_SESSION['username']; 

}else{
header("Location: form.php");

}

?>

cazzius

<?php

//query tabella anagrafico
$query_limit = mysql_query("SELECT * FROM annunci WHERE annunci.userid = '$result'");
while($risultato = mysql_fetch_array($query_limit)) {
$descrizione = $risultato['descrizione'];
$mq = $risultato['mq'];
$locali = $risultato['locali'];
$prezzo = $risultato['prezzo'];
$tipologia = $risultato['tipologia'];
$altro = $risultato['altro'];
$annunciodate = $risultato['annunciodate'];
$provinciaid = $risultato['provinciaid'];
$userid = $risultato['userid'];

//stampa della tabella con i dati 
echo "<table>\n"; 
echo "<tr>\n";
echo "<td>" . $descrizione . "&nbsp</td>\n";
echo "<td>" . $mq . "&nbsp</td>\n";
echo "<td>" . $locali . "&nbsp</td>\n";
echo "<td>" . $prezzo . "&nbsp</td>\n";
echo "<td>" . $tipologia . "&nbsp</td>\n";
echo "<td>" . $altro . "&nbsp</td>\n";
echo "<td>" . $annunciodate . "&nbsp</td>\n";
echo "<td>" . $provinciaid . "&nbsp</td>\n";
echo "<td>" . $userid . "&nbsp</td>\n";
echo "<td>" . $luogo_nascita . "&nbsp</td>\n";
echo "</tr>\n";
echo "</table>\n";
} 
?>

dump tabelle

user

PHP:
-- phpMyAdmin SQL Dump
-- version 3.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: 05 ago, 2011 at 08:49 AM
-- Versione MySQL: 5.1.44
-- Versione PHP: 5.3.2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `sicilia`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `user`
--

CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `nome` varchar(255) NOT NULL,
  `cognome` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `tipologia` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

--
-- Dump dei dati per la tabella `user`
--

INSERT INTO `user` (`id`, `username`, `password`, `nome`, `cognome`, `email`, `tipologia`) VALUES
(7, 'miri', 'miriamuzza', '', '', '', ''),
(6, 'pippo', 'pluto2', '', '', '', '');

annunci

PHP:
-- phpMyAdmin SQL Dump
-- version 3.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: 05 ago, 2011 at 08:47 AM
-- Versione MySQL: 5.1.44
-- Versione PHP: 5.3.2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `sicilia`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `annunci`
--

CREATE TABLE IF NOT EXISTS `annunci` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `descrizione` longtext NOT NULL,
  `mq` varchar(255) NOT NULL,
  `locali` varchar(255) NOT NULL,
  `prezzo` varchar(255) NOT NULL,
  `tipologia` varchar(255) NOT NULL,
  `altro` varchar(255) NOT NULL,
  `annunciodate` date NOT NULL,
  `provinciaid` int(255) NOT NULL,
  `iduser` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

--
-- Dump dei dati per la tabella `annunci`
--

INSERT INTO `annunci` (`id`, `descrizione`, `mq`, `locali`, `prezzo`, `tipologia`, `altro`, `annunciodate`, `provinciaid`, `iduser`) VALUES
(5, 'pizza e fichi', '100', '89', 'kklkdlslkds', 'sdnlkdsf', 'vkldsjfkldsfjlks', '2011-08-04', 13, 6);

Per quanto riguarda il login non va' ?! per quanto riguarda l'interrogazione della join ( premetto che è pochissimo che la uso ) non so ancora dato che non mi logga ....

Grazie a tutti
 
ciao
ho dato solo un occhio superficiale, ma stai attento tutte le pagine che utilizzano sessioni devono avere
PHP:
<?php
session_start();
//.....ecc...ecc...
?>
poi è meglio mettere gli include dopo l'istruzione session_start()
 
Risolto grazie mille ...

Un'altra domanda se mi è possibile, io vorrei che ogni utente registrato in una delle sue pagine dall'area admin veda i suoi annunci statistiche ecc
di quello che posta..

Ho fatto questa query ma non funziona..

Tieni presente che non sono moto pratico della join e davvero 2 giorni che ci metto mano .....

PHP:
<?php
  
$jokelist = @mysql_query(
    'SELECT descrizione, user_name, user_email, name, citta
    FROM annunci, users, citta, provincia WHERE id=$_SESSION[user_id] AND provinciaid=provincia.id AND cittaid=citta.id ');
if (!$jokelist) {
  exit('<p>Error performing query: ' . mysql_error() . '</p>');
}

while ($joke = mysql_fetch_array($jokelist)) {
  $descrizione = $joke['descrizione'];
  $name = $joke['name'];
  $citta = $joke['citta'];
  $user_name = $joke['user_name'];
  $user_email = $joke['user_email'];
  
  // Display the joke with author information
  echo "<p>$descrizione<br />" .
      "(by <a href='mailto:$user_email'>$user_name</a>)<br />" . "$name</br>" . "$citta<br /></p>";
}

?>
 
Devi preporre il nome della tabella al nome del campo quando esegui una query su più tabelle, es:
Codice:
SELECT tabella1.campo1, tabella2.campo2 FROM tabella1, tabella2 WHERE tabella1.campo3 = 'valore' AND tabella2.campo4 = 'valore'
Oppure puoi usare gli alias:
Codice:
SELECT tb1.campo1, tb2.campo2 FROM tabella1 tb1, tabella2 tb2 WHERE tb1.campo3 = 'valore' AND tb2.campo4 = 'valore'
 
scusa gran confusione tu intendi qualcosa di simile :

SELECT annunci.descrizione, users.username FROM annunci, provincia, citta, users WHERE annunci.prinviaid = 'valore' AND tabella2.campo4 = 'valore'

La mia cosi funziona:

'SELECT descrizione, user_name, user_email, name, citta
FROM annunci, users, citta, provincia WHERE usersid=users.id AND provinciaid=provincia.id AND cittaid=citta.id

L'unica cosa è che vorrei che la query prendesse solo gli annunci dell'utente ipotesi id 54 e che li mostrasse nella sua area riservata senza farlo vedere agli altri !

Mi sono spiegato meglio ?
 
Eccolo, vedrai che se provi lo script di prima funziona perfettamente, solo che io vorrei che funzionasse anche per singolo utente.

Annunci

PHP:
-- phpMyAdmin SQL Dump
-- version 3.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: 06 ago, 2011 at 06:13 AM
-- Versione MySQL: 5.1.44
-- Versione PHP: 5.3.2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `sicilia`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `annunci`
--

CREATE TABLE IF NOT EXISTS `annunci` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `descrizione` longtext NOT NULL,
  `mq` varchar(255) NOT NULL,
  `locali` varchar(255) NOT NULL,
  `prezzo` varchar(255) NOT NULL,
  `tipologia` varchar(255) NOT NULL,
  `altro` varchar(255) NOT NULL,
  `annunciodate` date NOT NULL,
  `provinciaid` int(255) NOT NULL,
  `usersid` int(11) NOT NULL,
  `cittaid` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;

--
-- Dump dei dati per la tabella `annunci`
--

INSERT INTO `annunci` (`id`, `descrizione`, `mq`, `locali`, `prezzo`, `tipologia`, `altro`, `annunciodate`, `provinciaid`, `usersid`, `cittaid`) VALUES
(5, 'pizza e fichi', '100', '89', 'kklkdlslkds', 'sdnlkdsf', 'vkldsjfkldsfjlks', '2011-08-04', 13, 54, 4),
(6, 'pizza e coca cola', '56', '64', '1.000.000', 'appartamento', 'dfsfsfd', '0000-00-00', 14, 55, 5),
(7, 'pizza e cocca cola', '', '', '', '', '', '0000-00-00', 13, 54, 4),
(8, 'fajfiajfiafiaj', 'pootperoteropti', 'oewropewiropewiropwe', 'krweporweopriweoriw', 'jrpewoprewporewopri', 'kjoweopreworewopriweop', '2011-08-06', 13, 0, 0),
(9, 'prova citta', 'prova citta', 'prova citta', 'prova citta', 'prova citta', 'prova citta', '2011-08-06', 13, 0, 0),
(10, 'prova citta 2', 'prova citta 2', 'prova citta 2', 'prova citta 2', 'prova citta 2', 'prova citta 2', '2011-08-06', 13, 0, 0),
(11, 'prova 3', 'prova 3prova 3', 'prova 3', 'prova 3', 'prova 3', 'prova 3', '2011-08-06', 13, 0, 0),
(12, '', '', '', '', '', '', '0000-00-00', 0, 0, 0),
(13, 'prova4', 'prova4', 'prova4', 'prova4', ' prova4', 'prova4', '2011-08-06', 13, 0, 0),
(14, '', '', '', '', '', '', '0000-00-00', 0, 0, 0),
(15, 'prova6', 'prova6', 'prova6', 'prova6', 'prova6', 'prova6', '2011-08-06', 13, 55, 5),
(16, '', '', '', '', '', '', '0000-00-00', 0, 0, 0),
(17, 'prova7', 'prova7', 'prova7', 'prova7', 'prova7', 'prova7', '2011-08-06', 13, 0, 0),
(18, 'prova8', 'prova8', 'prova8', 'prova8', 'prova8', 'prova8', '2011-08-06', 13, 0, 0),
(19, 'prov9', 'prov9', 'prov9', 'prov9', 'prov9', 'prov9', '2011-08-06', 13, 0, 0),
(20, 'prova 10', 'prova 10', 'prova 10', 'prova 10', 'prova 10', 'prova 10', '2011-08-06', 13, 0, 4),
(21, 'prova111111', 'prova111111', 'prova111111', 'prova111111', 'prova111111', 'prova111111', '2011-08-06', 14, 0, 4),
(22, 'pippo e paperino sul tetto del mondo', 'pippo e paperino sul tetto del mondo', 'pippo e paperino sul tetto del mondo', 'pippo e paperino sul tetto del mondo', 'pippo e paperino sul tetto del mondo', 'pippo e paperino sul tetto del mondo', '2011-08-06', 13, 54, 4);
citta
PHP:
-- phpMyAdmin SQL Dump
-- version 3.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: 06 ago, 2011 at 06:13 AM
-- Versione MySQL: 5.1.44
-- Versione PHP: 5.3.2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `sicilia`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `citta`
--

CREATE TABLE IF NOT EXISTS `citta` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `citta` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

--
-- Dump dei dati per la tabella `citta`
--

INSERT INTO `citta` (`id`, `citta`) VALUES
(4, 'favara'),
(5, 'agrigento'),
(6, 'canicatti');

Provincia

PHP:
-- phpMyAdmin SQL Dump
-- version 3.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: 06 ago, 2011 at 06:13 AM
-- Versione MySQL: 5.1.44
-- Versione PHP: 5.3.2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `sicilia`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `provincia`
--

CREATE TABLE IF NOT EXISTS `provincia` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;

--
-- Dump dei dati per la tabella `provincia`
--

INSERT INTO `provincia` (`id`, `name`) VALUES
(13, 'palermo'),
(14, 'milano'),
(15, 'bergamo');

Users

PHP:
-- phpMyAdmin SQL Dump
-- version 3.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: 06 ago, 2011 at 06:13 AM
-- Versione MySQL: 5.1.44
-- Versione PHP: 5.3.2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `sicilia`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `users`
--

CREATE TABLE IF NOT EXISTS `users` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `md5_id` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `full_name` tinytext COLLATE latin1_general_ci NOT NULL,
  `user_name` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `user_email` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `user_level` tinyint(4) NOT NULL DEFAULT '1',
  `pwd` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `address` text COLLATE latin1_general_ci NOT NULL,
  `country` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `tel` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `fax` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `website` text COLLATE latin1_general_ci NOT NULL,
  `date` date NOT NULL DEFAULT '0000-00-00',
  `users_ip` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `approved` int(1) NOT NULL DEFAULT '0',
  `activation_code` int(10) NOT NULL DEFAULT '0',
  `banned` int(1) NOT NULL DEFAULT '0',
  `ckey` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `ctime` varchar(220) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `user_email` (`user_email`),
  FULLTEXT KEY `idx_search` (`full_name`,`address`,`user_email`,`user_name`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=56 ;

--
-- Dump dei dati per la tabella `users`
--

INSERT INTO `users` (`id`, `md5_id`, `full_name`, `user_name`, `user_email`, `user_level`, `pwd`, `address`, `country`, `tel`, `fax`, `website`, `date`, `users_ip`, `approved`, `activation_code`, `banned`, `ckey`, `ctime`) VALUES
(54, '', 'admin', 'admin', '@gmail.com', 5, '01b7db6f3d9c872d639709a57f7f04ac4fd953cfac42f7e3a', 'admin', 'Italia', '4433093999', '', '', '2010-05-04', '', 1, 0, 0, '', ''),
(55, '', '', '300', '[email protected]', 1, 'c871024abff6025ca2a29773c5684e1cc5f27c15ed5341a00', '', '', '', '', '', '2011-08-06', '', 1, 0, 0, '89vsqxj', '1312597927');
 
ciao
per alex
non so se il mio manuale è un po' arretrato, ma le join (inner join) non dovrebbero essere così (implicita e esplicita)?

SELECT * FROM tabella1 AS tb1, tabella2 AS tb2 WHERE tb1.id = tb2.id AND tb1.data1 > 1000000

SELECT * FROM tabella1 AS tb1 JOIN tabella2 AS tb2 ON tb1.id = tb2.id WHERE tb1.data1 > 1000000:confused:

per searedone

soprattutto quando provi non mettere @ (silent) davanti alle istruzioni in modo da vedere gli errori
 
Lo so grazie x il consiglio ..

Ma l'interrogazione funziona perfettamente, solo che nn essendo espertissimo nn capisco
Cosa devo fare per estrarre solo i dati dell'utente.

In poche parole io vorrei che quando l'utente fa il login, veda gli annunci e quant'altro lui ha postato,
In quel caso vengono fuori tutti... :(
 
ciao
se non sbaglio nella tabella annunci (tra l'altro) hai
usersid` int(11) NOT NULL,
è l'id dell'utente che ha pubblicato l'annuncio inmmagino
inoltre, sempre che non sbagli, trasmetti un sessione l'id dell'utente
$_SESSION[user_id]

per cui nel WHERE metti
annunci.userid=$_SESSION[user_id]
in questo modo estrai solo gli annunci relativi a quell'utente
 
Grazie milleeee davvero di cuore ..

Ora sono fuori casa senza pc domani mattina provo subito e ti so dire ...
 
Ciao Borgo ...

ho provato a mettere:

PHP:
$jokelist = @mysql_query(

    'SELECT descrizione, user_name, user_email, name, citta
    FROM annunci, users, citta, provincia WHERE annunci.userid=$_SESSION[user_id] AND provinciaid=provincia.id AND cittaid=citta.id ');
if (!$jokelist) {
  exit('<p>Error performing query: ' . mysql_error() . '</p>');
}

while ($joke = mysql_fetch_array($jokelist)) {
  $descrizione = $joke['descrizione'];
  $name = $joke['name'];
  $citta = $joke['citta'];
  $user_name = $joke['user_name'];
  $user_email = $joke['user_email'];
  
  // Display the joke with author information
  echo "<p>$descrizione<br />" .
      "(by <a href='mailto:$user_email'>$user_name</a>)<br />" . "$name</br>" . "$citta<br /></p>";
}

ma mi da' il seguente errore ?


Error performing query: 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 '[user_id] usersid=users.id AND provinciaid=provincia.id AND cittaid=citta.id' at line 2
 
questo invece è il codice completo della pagina riservata myaccount

PHP:
<?php 
include 'dbc.php';
page_protect();


?>
<html>
<head>
<title>My Account</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<link href="styles.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="5" class="main">
  <tr> 
    <td colspan="3">&nbsp;</td>
  </tr>
  <tr> 
    <td width="160" valign="top">
<?php 

if (isset($_SESSION['user_id'])) {?>
<div class="myaccount">
  <p><strong>My Account</strong></p>
  <a href="myaccount.php">My Account</a><br>
  <a href="mysettings.php">Settings</a><br>
    <a href="logout.php">Logout </a>
	
  <p>You can add more links here for users</p></div>
<?php }
if (checkAdmin()) {

?>
      <p> <a href="admin.php">Admin CP </a></p>
	  <?php } ?>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p></td>
    <td width="732" valign="top"><p>&nbsp;</p>
      <h3 class="titlehdr">Welcome <?php echo $_SESSION['user_name'];?></h3>  
	  <?php	
      if (isset($_GET['msg'])) {
	  echo "<div class=\"error\">$_GET[msg]</div>";
	  }
	  	  
	  ?>
      <p>This is the my account page</p>

	 
      </td>
    <td width="196" valign="top">&nbsp;</td>
  </tr>
  <tr> 
    <td colspan="3">&nbsp;</td>
  </tr>
</table>

<?php 





if ($_POST['doReset']=='Reset')
{
$err = array();
$msg = array();

foreach($_POST as $key => $value) {
	$data[$key] = filter($value);
}
if(!isEmail($data['user_email'])) {
$err[] = "ERROR - Please enter a valid email"; 
}

$user_email = $data['user_email'];

//check if activ code and user is valid as precaution
$rs_check = mysql_query("select id from users where user_email='$user_email'") or die (mysql_error()); 
$num = mysql_num_rows($rs_check);
  // Match row found with more than 1 results  - the user is authenticated. 
    if ( $num <= 0 ) { 
	$err[] = "Error - Sorry no such account exists or registered.";
	//header("Location: forgot.php?msg=$msg");
	//exit();
	}


if(empty($err)) {

$new_pwd = GenPwd();
$pwd_reset = PwdHash($new_pwd);
//$sha1_new = sha1($new);	
//set update sha1 of new password + salt
$rs_activ = mysql_query("update users set pwd='$pwd_reset' WHERE 
						 user_email='$user_email'") or die(mysql_error());
						 
$host  = $_SERVER['HTTP_HOST'];
$host_upper = strtoupper($host);						 
						 
//send email

$message = 
"Here are your new password details ...\n
User Email: $user_email \n
Passwd: $new_pwd \n

Thank You

Administrator
$host_upper
______________________________________________________
THIS IS AN AUTOMATED RESPONSE. 
***DO NOT RESPOND TO THIS EMAIL****
";

	mail($user_email, "Reset Password", $message,
    "From: \"Member Registration\" <auto-reply@$host>\r\n" .
     "X-Mailer: PHP/" . phpversion());						 
						 
$msg[] = "Your account password has been reset and a new password has been sent to your email address.";						 
						 
//$msg = urlencode();
//header("Location: forgot.php?msg=$msg");						 
//exit();
 }
}
?>
<html>
<head>
<title>Forgot Password</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script language="JavaScript" type="text/javascript" src="js/jquery.validate.js"></script>
  <script>
  $(document).ready(function(){
    $("#actForm").validate();
  });
  </script>
<link href="styles.css" rel="stylesheet" type="text/css">
</head>


<?php

require ('db_connect.php');



  
$jokelist = @mysql_query(

    'SELECT descrizione, user_name, user_email, name, citta
    FROM annunci, users, citta, provincia WHERE annunci.userid=$_SESSION[user_id] AND provinciaid=provincia.id AND cittaid=citta.id ');
if (!$jokelist) {
  exit('<p>Error performing query: ' . mysql_error() . '</p>');
}

while ($joke = mysql_fetch_array($jokelist)) {
  $descrizione = $joke['descrizione'];
  $name = $joke['name'];
  $citta = $joke['citta'];
  $user_name = $joke['user_name'];
  $user_email = $joke['user_email'];
  
  // Display the joke with author information
  echo "<p>$descrizione<br />" .
      "(by <a href='mailto:$user_email'>$user_name</a>)<br />" . "$name</br>" . "$citta<br /></p>";
}

?>


</body>
</html>


</body>
</html>
 
Ohhh cosi mi riconosce l'id, ma cmq mi da errore e non mi butta fuori i risultati :(


Ho aggiunto come potete vedere l'ho scritto in maiuscolo anche nel codice <?PHP ECHO $_SESSION['USER_ID']

ma da errore : Error performing query: Unknown column 'userid' in 'where clause'
PHP:
<?php 
include 'dbc.php';
page_protect();


?>
<html>
<head>
<title>My Account</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<link href="styles.css" rel="stylesheet" type="text/css">
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="5" class="main">
  <tr> 
    <td colspan="3">&nbsp;</td>
  </tr>
  <tr> 
    <td width="160" valign="top">
<?php 

if (isset($_SESSION['user_id'])) {?>
<div class="myaccount">
  <p><strong>My Account</strong></p>
  <a href="myaccount.php">My Account</a><br>
  <a href="mysettings.php">Settings</a><br>
    <a href="logout.php">Logout </a>
	
  <p>You can add more links here for users</p></div>
<?php }
if (checkAdmin()) {

?>
      <p> <a href="admin.php">Admin CP </a></p>
	  <?php } ?>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p></td>
    <td width="732" valign="top"><p>&nbsp;</p>
      <h3 class="titlehdr">Welcome <?php echo $_SESSION['user_name'];?></h3>  
	  <?php	
      if (isset($_GET['msg'])) {
	  echo "<div class=\"error\">$_GET[msg]</div>";
	  }
	  	  
	  ?>
      <p>This is the my account page</p>

	 
      </td>
    <td width="196" valign="top">&nbsp;</td>
  </tr>
  <tr> 
    <td colspan="3">&nbsp;</td>
  </tr>
</table>
HO AGGIUNTO <?PHP ECHO $_SESSION['USER_ID']

<?php echo $_SESSION['user_id'];

  $jokelist = @mysql_query(

    'SELECT descrizione, user_name, user_email, name, citta
    FROM annunci, users, citta, provincia WHERE usersid=users_id AND provinciaid=provincia.id AND cittaid=citta.id ');
if (!$jokelist) {
  exit('<p>Error performing query: ' . mysql_error() . '</p>');
}

while ($joke = mysql_fetch_array($jokelist)) {
  $descrizione = $joke['descrizione'];
  $name = $joke['name'];
  $citta = $joke['citta'];
  $user_name = $joke['user_name'];
  $user_email = $joke['user_email'];
  
  // Display the joke with author information
  echo "<p>$descrizione<br />" .
      "(by <a href='mailto:$user_email'>$user_name</a>)<br />" . "$name</br>" . "$citta<br /></p>";
}

?>


</body>
</html>
 
ciao
per prima cosa scrivi le sessioni nella forma canonica (anche le sessioni sono array)
$_SESSION['user_id']

poi prova a scrivere il codice in questo modo
PHP:
<?php
session_start ();//la prima istruzione in quanto usi nella pag le sessioni
//....
var_dump($_SESSION['user_id']);//guarda cosa ti restituisce poi la togli
$qr="SELECT descrizione, user_name, user_email, name, citta FROM annunci, users, citta, provincia WHERE annunci.userid=".$_SESSION['user_id']." AND provinciaid=provincia.id AND cittaid=citta.id";
var_dump($qr);//guarda cosa ti restituisce poi la togli
$jokelist = mysql_query($qr);
var_dump($jokelist);//guarda cosa ti restituisce poi la togli
if (!$jokelist) {
  exit('<p>Error performing query: ' . mysql_error() . '</p>');
}
//...ecc..ecc...
?>
poi posta i risultati dei var_dump
 
Var dump
var_dump($_SESSION['user_id']); = string(2) "54"

$qr="SELECT descrizione, user_name, user_email, name, citta FROM annunci, users, citta, provincia WHERE annunci.userid=".$_SESSION['user_id']." AND provinciaid=provincia.id AND cittaid=citta.id";
var_dump($qr); =

string(166) "SELECT descrizione, user_name, user_email, name, citta FROM annunci, users, citta, provincia WHERE annunci.userid=54 AND provinciaid=provincia.id AND cittaid=citta.id"

$jokelist = mysql_query($qr);
var_dump($jokelist); =

bool(false)

if (!$jokelist) {
exit('<p>Error performing query: ' . mysql_error() . '</p>');
} =

Error performing query:

Ecco qui tutti i vardump .... cmq davvero grazie mille , ma so che se imparo la join mi semplifico la vita ;)
 
ciao
allora c'è un errore nella query
prova a scriverla così, per ora lasciando sempre i var_dump
PHP:
<?php
//....
$qr="SELECT * FROM annunci AS a, users AS u, citta AS c, provincia AS p WHERE a.userid=".$_SESSION['user_id']." AND a.provinciaid=p.id AND a.cittaid=c.id"; 
var_dump($qr);//guarda cosa ti restituisce poi la togli 
//ecc...ecc.....
?>
e riposta sempre i risultati dei var_dump
 
mi restituisce :

string(126) "SELECT * FROM annunci AS a, users AS u, citta AS c, provincia AS p WHERE a.userid=55 AND a.provinciaid=p.id AND a.cittaid=c.id"
 
ciao
un piccolo grande dubbio, così ad occhio e croce c'è un errore di logica
da dove saltano fuori i valori
AND a.provinciaid=p.id AND a.cittaid=c.id ?
a che ti serve la join?
fai questa piccola prova

PHP:
<?php
//....
qr="SELECT * FROM annunci  WHERE userid=".$_SESSION['user_id']; 
var_dump($qr);//guarda cosa ti restituisce poi la togli 
//...
?>
la query dovrebbe restituirti tutti gli annunci dell'utente, se poi l'utente vuole vedere solo quelli di una provincia e/o città dovresti fare un form in cui selezionare provincia e/o città
 

Discussioni simili