[PHP] Estrarre solo record dell'utente connesso

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Ciao a tutti
Ho un problemino da risolvere.
Estraggo i dati dalla mia tabella database ma trattasi di tabella usata da diversi utenti,che si loggano e che sono seguiti da SESSION_ .
Con la tabella sottostante ho la possibilita di vedere e modificare/eliminare i record ...ma non solo i miei,di tutti e questo non va bene.
Mi potete aiutare sul codice affinche ogni utente possa lavorare soltanto con i suoi dati??

pagina.php
Codice:
<?php
$db_host = "host";
$db_user = "utente";
$db_password = "";
$db_name = "my_db;

 $db = mysql_connect($db_host, $db_user, $db_password);
  //
mysql_query("SET NAMES utf8");
//
  if ($db == FALSE)
    die ("Errore nella connessione.");

  mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database!");

if($_POST)
{
    $ids = isset($_POST['id']) ? $_POST['id'] : array();
    elimina_record($ids);
}
elseif(isset($_GET['id']))
{
    elimina_record(array($_GET['id']));
}
else
    mostra_lista();

function mostra_lista()
{
    // mostro un eventuale messaggio
    if(isset($_GET['msg']))
        echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';

    // preparo la query
    $query = "SELECT id,username,myCheck FROM lista_in_lavorazione";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
        die("Errore nella query $query: " . mysql_error());
    }

    echo '
    <form name="form1" method="post" action="">
    <table border="1">
        <tr>
            <th>&nbsp;</th>
            <th>nome</th>
            <th>dati</th>
            
            
            <th>&nbsp;</th>
        </tr>';

    while ($row = mysql_fetch_assoc($result))
    {
        $username = htmlentities($row['username']);
        $myCheck = htmlentities($row['myCheck']);

        // preparo il link per la modifica dei dati del record
        $link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];

        echo "<tr>
                <td><input name=\"id[]\" type=\"checkbox\" value=\"$row[id]\" /></td>
                <td>$username</td>
                <td>$myCheck</td>
                
                
                <td><a href=\"$link\">CANCELLA</a></td>
            </tr>";
    }

    echo '</table>
        <br />
        <input type="submit" name="Submit" value="ELIMINA prodotti SELEZIONATI" />
        </form>';

    // libero la memoria di PHP occupata dai record estratti con la SELECT
    mysql_free_result($result);

    // chiudo la connessione a MySQL
    mysql_close();
}

function elimina_record($ids)
{
    // verifico che almeno un id sia stato selezionato
    if(count($ids) < 1)
    {
        $messaggio = urlencode("NESSUN PRODOTTO SELEZIONATA!");
        header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
        exit;
    }

    // per precauzione converto gli ID in interi
    $ids = array_map('intval',$ids);

    // creo una lista di ID per la query
    $ids = implode(',',$ids);

    // preparo la query
    $query = "DELETE FROM lista_in_lavorazione WHERE id IN ($ids)";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
        die("Errore nella query $query: " . mysql_error());
    }

    // conto il numero di record cancellati
    $num_record = mysql_affected_rows();

    // chiudo la connessione a MySQL
    mysql_close();

    $messaggio = urlencode("PRODOTTI ELIMINATI: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
1) se l'utente è loggato da qualche parte avrai una o più sessioni contenenti (non so) o la pass o l'usert o l'id dell'utente loggato
2) ci deve essere qualcosa (un campo) che leghi i record all'utente, se non c'è non puoi fare nulla
ipotizzioamo che l'utente si logghi usando un classico form
PHP:
<?php
session_start();
//lettura deri $_POST
//verifica che l'utente sia registrato e estrazione dei suoi dati
if($registrato=="SI"){
    $_SESSION['id_utente']=$riga['id'];
    $_SESSION['user']=$riga['user'];
}
//....
?>
e visualizzi i suoi record da modificare/eliminare
PHP:
<?php
session_start();
if(!isset($_SESSION['id_utente'])){//se non esiste tentativo accesso non autorizzato
    header('location=dove_vuoi.php');//e rimandi dove vuoi
    exit();
}
//se arrivi qui l'utente è correttamente loggato
$suo_id=$_SESSION['id_utente'];
//quindi fai la select dei record che puo modificare/eliminare
$query="SELECT * FROM tabella WEHRE id_utente=$suo_id";
//in questo modo l'utente vede solo i suoi record
//......eccc
?>
guarda che ti ho fatto uno schema semplificato, però se non hai previsto un qualcosa che leghi l'utente ai suoi record (io ho ipotizzato che il seo/suoi record siano a lui legati tramite il suo id) mi sa che devi ripartire da zero riconsiderando le tabelle
 

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
ho provato a riconsiderare il mio file in base ai tuoi suggerimenti ma non riesco ad inserire i parametri si SESSIONE ...mi da errore..

pagina.php
Codice:
<?php
session_start();
if(!isset($_SESSION['utente'])){
    //una o entrambe le sessioni non esistono
    if(isset($_SESSION))session_destroy();
    header('location:http://MIOSITO.org');// o altrove
    exit();
}else{

?>
<?php
include('../../../struttura/header.php');

?>


<html>
<head>
<link href="stile.css" rel="stylesheet" type="text/css">
<link href="testata.css" rel="stylesheet" type="text/css">
<link href="stilefoglio.css" rel="stylesheet" type="text/css">
<title>PRODOTTI SALVATI</title>

</head>

<body>
<center>
<h1>MODIFICA LISTA</h1>

<?php
$db_host = "localhost";
$db_user = "UTENTE";
$db_password = "";
$db_name = "my_DB";

 $db = mysql_connect($db_host, $db_user, $db_password);
  //
mysql_query("SET NAMES utf8");
//
  if ($db == FALSE)
    die ("Errore nella connessione.");

  mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database!");

if($_POST)
{
    $ids = isset($_POST['id']) ? $_POST['id'] : array();
    elimina_record($ids);
}
elseif(isset($_GET['id']))
{
    elimina_record(array($_GET['id']));
}
else
    mostra_lista();

function mostra_lista()
{
    // mostro un eventuale messaggio
    if(isset($_GET['msg']))
        echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';

    // preparo la query
    $query = "SELECT id,username,myCheck FROM lista_in_lavorazione";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
        die("Errore nella query $query: " . mysql_error());
    }

    echo '
    <form name="form1" method="post" action="">
    <table border="1">
        <tr>
            <th>&nbsp;</th>
            <th>ID</th>
            <th>NOME</th>
            <th>PRODOTTI</th>
           
           
            <th>&nbsp;</th>
        </tr>';

    while ($row = mysql_fetch_assoc($result))
    {
        $id = htmlentities($row['id']);
        $username = htmlentities($row['username']);
        $myCheck = htmlentities($row['myCheck']);

        // preparo il link per la modifica dei dati del record
        $link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];

        echo "<tr>
                <td><input name=\"id[]\" type=\"checkbox\" value=\"$row[id]\" /></td>
                <td>$id</td>
                <td>$username</td>
                <td>$myCheck</td>
               
               
                <td><a href=\"$link\">CANCELLA</a></td>
            </tr>";
    }

    echo '</table>
        <br />
        <input type="submit" name="Submit" value="ELIMINA PRODOTTI SELEZIONATI" />
        </form>';

    // libero la memoria di PHP occupata dai record estratti con la SELECT
    mysql_free_result($result);

    // chiudo la connessione a MySQL
    mysql_close();
}

function elimina_record($ids)
{
    // verifico che almeno un id sia stato selezionato
    if(count($ids) < 1)
    {
        $messaggio = urlencode("NESSUNA PRODOTTO SELEZIONATO!");
        header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
        exit;
    }

    // per precauzione converto gli ID in interi
    $ids = array_map('intval',$ids);

    // creo una lista di ID per la query
    $ids = implode(',',$ids);

    // preparo la query
    $query = "DELETE FROM lista_in_lavorazione WHERE id IN ($ids)";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
        die("Errore nella query $query: " . mysql_error());
    }

    // conto il numero di record cancellati
    $num_record = mysql_affected_rows();

    // chiudo la connessione a MySQL
    mysql_close();

    $messaggio = urlencode("PRODOTTO ELIMINATO: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
?>
<br><br>
<a href="../formcerca.php"> <img src="../images/INDIETRO.png" ></a><br><br>
</center><br><br><br><br>
<center><h3><a href="../../index_ok.php"><img src="http://MIOSITO/registrazione_utenti/images/TORNA_ALLA_HOME.png"></a></h3></center>


</body>
</html>
<?php
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
scusa ma non capisco bene, cosa intendi per
ma non riesco ad inserire i parametri si SESSIONE
?
da quello che capisco da qualche parte l'utente per poter operare deve loggarsi, giusto? è in quel punto che devi prelevare le sessioni se il log è a buon fine
 

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
ciao
scusa ma non capisco bene, cosa intendi per ?
da quello che capisco da qualche parte l'utente per poter operare deve loggarsi, giusto? è in quel punto che devi prelevare le sessioni se il log è a buon fine
Ciao Borgo... ti giuro che non capisco...
questa e' la mia pagina di login

login.php
Codice:
<?php

    include '.././struttura/header.php';

?>

    <div id="wrapper">
   
        <?php
       
            $p = $_GET['azione'];
           
            // login.php?azione=login
            if($p == "login"){
           
                if(!isset($_POST['invia'])){ ?>
                   
                    <form method="post" action="#" id="formlogin">
                   
                        <label for="username"><font color='white'>USERNAME</font></label><br>
                        <input type="text" name="username" id="username" /><br><br><br>
                        <label for="password"><font color='white'>PASSWORD</font></label><br>
                        <input type="password" name="password" id="password" /><br><br><br><br>
                        <input type="submit" name="invia" id="login" value="ACCEDI" />
                   
                    </form><br><br><br>
                <a href="password_dimenticata.php"><font color='white'><strong>PASSWORD DIMENTICATA?</stong></font></a>  
<?php             } else {

                    $username = mysql_real_escape_string($_POST['username']);
                    $password = mysql_real_escape_string($_POST['password']);
                   
                    if($username == "" || $password == ""){
                   
                        echo "<h1><font color='white'>ATTENZIONE , DEVI COMPILARE TUTTI I CAMPI !</font></h1>";
                              header("Refresh: 4; URL= http://MIOSITOWEB/registrazione_utenti/login.php?azione=login");
                    } else {
                   
                        $password_cript = md5($password);
                       
                        $recuperadati = mysql_query("SELECT * FROM utenti WHERE username = '$username' AND password = '$password_cript'");
                       
                        $verificadati = mysql_num_rows($recuperadati);
                       
                        if($verificadati == 1){
                       
                            $sessione = mysql_fetch_array($recuperadati);
                            $_SESSION['utente'] = $sessione['username'];
                            echo "<h1><font color='white'>LOGIN EFFETTUATO CON SUCCESSO!</font></h1>";
                            header("Refresh: 2; URL= ../registrazione_utenti/index_ok.php");
                       
                        } else {
                       
                            echo "<h1><font color='white'>DATI ERRATI , RIPROVA !</font></h1>";
                                header("Refresh: 4; URL= MIOSITOWEB/registrazione_utenti/login.php?azione=login");

                        }
                   
                    }
               
                }
           
           
            // login.php?azione=logout
            } elseif ($p == "logout"){
           
                session_destroy();
                echo "<font color='white'><h1>LOGOUT EFFETTUATO CON SUCCESSO!</h1></font>";
                header("Refresh: 3; URL=http://MIOSITOWEB.org/index.php ");
           
            }
       
       
       
        ?>
   
<?php session_start(); ?>  
   
    </div>
<body bgcolor="000000">  
<style type="text/css">
<!--
A{text-decoration:none}
-->
</style>
</body>
</html>

le ho provate tutte..ma niente..

In pratica il primo codice che ho postato mi stampa a video la mia tabella db...il fatto e' che ,se io mi chiamo PIPPO e mi sono LOGGATO come tale,mi deve estrarre solo i dati riferiti a PIPPO enon anche quelli di PLUTOe GELSOMINO......sclero
 
Discussioni simili
Autore Titolo Forum Risposte Data
Merlina3377 [PHP] estrarre solo un determinato id da tanti con REGEXP O LIKE PHP 1
C [PHP] Estrarre da una classe i valori che mi interessano PHP 5
S [PHP] Estrarre dati da tabella e fare la media ad intervalli di tempo PHP 10
R [PHP] Estrarre id utente loggato.? PHP 4
S [PHP] Estrarre elementi array su più variabili PHP 5
S [PHP] Estrarre dati tabella in diversi array PHP 2
trattorino estrarre titolo video facebook in php PHP 0
N [PHP] Estrarre singolo valore da array PHP 4
trattorino [PHP] sql estrarre in base all'ultima visita PHP 4
Jensen [PHP] Estrarre prossimi 4 lunedì PHP 4
trattorino [PHP] estrarre dati singoli PHP 1
G [PHP] estrarre data da timeline yyyy-dd-gg hh:mm:ss PHP 4
S [PHP] Estrarre dati colonna in una stringa PHP 6
S [PHP] estrarre dati sito web protetto con username e password PHP 13
trattorino Estrarre Nome Utente jquery div php PHP 9
S [PHP] estrarre le email da un elenco di url PHP 21
T4MAR4 [PHP] estrarre tag da un testo PHP 3
T [PHP] Estrarre stringa PHP 3
G [PHP] ESTRARRE DA DB VALORE MASSIMO E MINIMO IN UN INTERVALLO IMPOSTABILE A PIACERE PHP 56
bubino8 [PHP] Estrarre dominio No Sottodomini PHP 10
L [PHP] Estrarre dati da sito web Offerte e Richieste di Lavoro e/o Collaborazione 4
sandropochi [PHP] Query per estrarre record con data successiva a quella odierna PHP 2
U [PHP] estrarre i risultati di una query e visualizzarli in una tabella. PHP 9
S [PHP] estrarre numero da stringa PHP 5
giuseppe_123 [PHP] Estrarre giorno mese e anno da una data PHP 2
A [PHP] metodo di una classe per estrarre i dati con ciclo while PHP 1
asevenx [PHP] Estrarre valori evitando dublicati dal database PHP 2
filippino Script PHP per estrarre dati estrazioni da sito "10 e lotto" PHP 0
M Php+MySql: Estrarre dati da tabella e consentire all'utente di modificare un valore 'in linea' PHP 6
R Estrarre dati da tabella mysql [era:Sto benedetto php] PHP 22
M Estrarre dato da php e mysql PHP 5
A Estrarre da un Datetime di mysql la data e l'orario in PHP PHP 2
O [help] estrarre e visualizzare dati da mysql con php a oggetti PHP 6
I Estrarre dati da un file php PHP 3
D [PHP/SQL] Estrarre risultati da 2 database Database 0
P estrarre dati xml excel con php XML 1
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4

Discussioni simili