Creare pagina gestione utenti

Salve a tutti,

Dopo una estenuante settimana di lavoro sono riuscito a fare quello che mi ero prefissato, creare una bella pagina di login ecc...Beh da neofita è una bella conquista.  O0

Ora, l'utente che si logga deve consultare e gestire alcuni dati dal database in mysql, diversi, ovviamente, per ogni utente. Come faccio a far pescare solo quelli ??

Grazie ciao ciao

inviato 10 anni fa
belbagarospo
X 0 X

Effettuato il login e riconosciuto l'utente devi memorizzare in sessione l'id dell'utente.

Utilizza poi questo ID per effettuare tutte le successive query. Ad esempio:

mysql_query("SELECT nome, cognome, username, data_nascita FROM profilo WHERE id_utente =" . $_SESSION['id_utente']);

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Grazie mille!!!  O0

Ora vedo cosa viene fuori.....

.....Penso che dovrò chiedere ancora il vostro aiuto!!!!

ciao ciao  :bye: :2funny:

risposto 10 anni fa
belbagarospo
X 0 X

Faccio una precisazione Gianni, solo perchè di fronte a un neofita è sempre melio essere prolissi.

Come soluzione è valida se i dati che deve visualizzare sono legati all'id dell'utente ad esempio il carrello di un commercio elettronico che è personale.

Se invece i dati sono multi utente è meglio prevedere dei permessi in fase di login e utilizzare quelli per le altre query, come ad esempio se si tratta di gestire anagrafiche con diversi livelli.

risposto 10 anni fa
LonelyWolf
X 0 X

Grazie ancora.

I dati ,comunque, dovrebbero essere legati all'id dell'utente.... se solo funzionasse...

ma non mi arrendo!!!

ciao ciao

risposto 10 anni fa
belbagarospo
X 0 X

iuppy!!

Ci Sono riuscito.... O0

Adesso però ho un altro problema... E ti pareva  ;D

Come faccio a collegare alcuni record di una tabella a determinate pagine???

In pratica, come posso fare a cliccare su un record e ad accedere ad una nuova pagina???

Grazie thanks!!

risposto 10 anni fa
belbagarospo
X 0 X

con un link che contiene una variabile che indica l'id del record selezionato:

mostra_dati.php?id_record=123

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Grazie,

Ma penso di nn aver capito!! ??...

Come faccio se sono + record ???

e come faccio a linkare un risultato???

Sono lento ..... Sorry!!!

ciao ciao 

risposto 10 anni fa
belbagarospo
X 0 X

se ho ben capito dovresti creare una serie di link, ciascuno che si riferisce ad un particolare rfecord di una tabella del DB.

Allora è sufficiente estrarre dal DB gli ID dei record e accodare agli URL che ti porteranno alla pagina successiva proprio questi ID.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

iuppy!!!  O0

Ci Sono riuscito...Adesso i record della query hanno un link...

Xò la visualizzazione non è proprio quella che mi aspettavo...

Io vorrei ke tutto andasse in una tabella...

Mi sono messo a modificare e cambiare due codici da me compilati ma nn riesco proprio ad integrarli per riuscire ad ottenere la tabella con i link funzionanti.... :tichedoff:

Riporto il codice senza tabella funzionante:

<?php
include('dbconnect.php');

$query =("select id_off,azienda,descrizione from offerte  WHERE username= '$username' ");
$result = mysql_query($query) or die (mysql_error());
while($q1 = mysql_fetch_assoc($result))
{
echo "id_off: ".$q1['id_off']." azienda: ".$q1['azienda']." <a href=\"".$q1['descrizione']."\">".$q1['descrizione']."</a>";
 }
   ?>

E poi il codice con la tabella da integrare:

<?php
include('dbconnect.php');

$query =("select id_off,azienda,descrizione from offerte  WHERE username= '$username' ");
$result = mysql_query($query) or die (mysql_error());
$number_cols=mysql_num_fields($result);
echo "<table  border =1>\n";
echo "<tr align=center>\n";
for ($i=0; $i<$number_cols; $i++)
{
echo "<th><u>" . mysql_field_name ($result,$i). "</th></u>\n";
}
echo "</tr>\n";
while($row=mysql_fetch_row($result))
{
echo "<tr align=center>";
while( list ($key, $value) = each($row) )
{
echo "<td>" . $value . "</td>";
}
echo "</tr>";
}
echo "</table>";
?>

Qualcuno mi aiuterebbe ad integrarle???

Grazie ciao ciao  :bye:

risposto 10 anni fa
belbagarospo
X 0 X

prova a cambiare

while( list ($key, $value) = each($row) )

con

foreach($row as $key => $value)

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

prova a cambiare

while( list ($key, $value) = each($row) )

con

foreach($row as $key => $value)

 :bye:

Grazie Ho provato a cambiare ma ottengo sempre lo stesso risultato...

Io vorrei una tabella nella quale sia possibile cliccare sui record e visualizzare determinate pagine.

I due codici che avevo postato ieri funzionano entrambi:

Il primo mi da una query in cui è possibile linkare i risultati (xò senza tabella ed in modo non  proprio ordinato);

<?php
include('dbconnect.php');

$query =("select id_off,azienda,descrizione from offerte  WHERE username= '$username' ");
$result = mysql_query($query) or die (mysql_error());
while($q1 = mysql_fetch_assoc($result))
{
echo "id_off: ".$q1['id_off']." azienda: ".$q1['azienda']." <a href=\"".$q1['descrizione']."\">".$q1['descrizione']."</a>";
 }
   ?>

il secondo mi da i risultati in una tabella, ma senza possibilità di cliccarci sopra.

<?php
include('dbconnect.php');

$query =("select id_off,azienda,descrizione from offerte  WHERE username= '$username' ");
$result = mysql_query($query) or die (mysql_error());
$number_cols=mysql_num_fields($result);
echo "<table  border =1>\n";
echo "<tr align=center>\n";
for ($i=0; $i<$number_cols; $i++)
{
echo "<th><u>" . mysql_field_name ($result,$i). "</th></u>\n";
}
echo "</tr>\n";
while($row=mysql_fetch_row($result))
{
echo "<tr align=center>";
while( list ($key, $value) = each($row) )
{
echo "<td>" . $value . "</td>";
}
echo "</tr>";
}
echo "</table>";
?>

Come posso Fare ad integrarli??

Grazie ciao ciao

risposto 10 anni fa
belbagarospo
X 0 X

Potrebbe andarti bene una cosa così:

include('dbconnect.php');

$query =("select id_off,azienda,descrizione from offerte  WHERE username= '$username' ");
$result = mysql_query($query) or die (mysql_error());
$number_cols=mysql_num_fields($result);
echo "<table  border =1>\n";
echo "<tr align=center>\n";
for ($i=0; $i<$number_cols; $i++)
{
echo "<th><u>" . mysql_field_name ($result,$i). "</th></u>\n";
}
echo "</tr>\n";
while($q1 = mysql_fetch_assoc($result))
{
  echo "<tr align=center>";

  echo "<td>id_off: ".$q1['id_off']. "</td>";
  echo "<td>azienda: ".$q1['azienda']. "</td>";
  echo "<td><a href=\"".$q1['descrizione']."\">".$q1['descrizione']."</a></td>";

  echo "</tr>";
}
echo "</table>";
risposto 10 anni fa
LonelyWolf
X 0 X

 ;D ;D siiiiiiiiiii,

Grazie Lonelywolf !!!

Era proprio quello che mi serviva.... Avevo provato, ma non riuscivo a capire dove sbagliavo!!

Grazie mille ciao ciao

 :bye: :bye:

risposto 10 anni fa
belbagarospo
X 0 X

Ohi,ohi!!!

Mi sorge un dubbio, adesso che sono riuscito ad avere i link alle pagine(che poi sono delle pagine dinamiche) all'interno della tabella, come faccio a crearle???

Mi spiego meglio

Avendo dei link a pagine dinamiche, che in realtà non esistono, come faccio a crearle??? O meglio a farle creare???

grazie ciao ciao

risposto 10 anni fa
belbagarospo
X 0 X

Tutti i link punteranno ad una sola pagina dinamica. Questa preleverà dall'URL (usando l'array $_GET) il numero che identifica l'offerta selezionata (id_off) e farà ulteriori query per mostrare dei dati relativi.

E' necessario quindi che nel link che ha portato a questa nuova pagina ci sia l'ID dell'offera selezionata e che la pagina sia sempre la stessa.

La riga:

echo "<td><a href=\"".$q1['descrizione']."\">".$q1['descrizione']."</a></td>";

deve quindi essere cambiata così:

echo "<td><a href=\"pagina_offerta.php?id_off=".$q1['id_off']."\">".$q1['descrizione']."</a></td>";

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ciao a tutti,  :crazy:

scusate se rispondo con ritardo, ma l'influenza non mi ha risparmiato e sono riuscito solo ora a rimettermi davanti al pc....Pensavate di esservi liberati di me??!!!  :'(

grazie ancora x il consiglio  adesso provo subito e vi faccio sapere se "funonzia"!!!

ciao ciao  :bye:

risposto 10 anni fa
belbagarospo
X 0 X
Tutti i link punteranno ad una sola pagina dinamica. Questa preleverà dall'URL (usando l'array $_GET) il numero che identifica l'offerta selezionata (id_off) e farà ulteriori query per mostrare dei dati relativi.

Grazie mille Gianni,

Ho fatto come hai detto tu è funziona!!!!! è vai !!!

Ciao ciao  O0

 

risposto 10 anni fa
belbagarospo
X 0 X

Ciao a tutti!!

Eccomi ancora una volta a chiedere il vostro aiuto!!

Ho bisogno di creare una pagina per la cancellazione di determinati record.... Ho letto la guida di Gianni e sono riuscito ad integrare il codice.... Purtroppo c'è qualcosa che non va e non riesco a capire cosa sia.... mi date una mano??? posto il codice:

<?php
// Connessione al database 
mysql_connect("localhost", "root", "password") or die(mysql_error()); 
mysql_select_db("database") or die(mysql_error()); 

//controllo cookie 
if(isset($_COOKIE['ID_my_site'])) 
{ 

$username = $_COOKIE['ID_my_site']; 
$pass = $_COOKIE['Key_my_site']; 
$check = mysql_query("SELECT * FROM iscrizione WHERE username = '$username'")or die(mysql_error()); 
while($info = mysql_fetch_array( $check )) 
{ 

//Se il controllo da password errata, torna alla pagina login
if ($pass != $info['password']) 
{ header("Location: login.php"); 
} 

//altrimenti pubblica area admin
else 
{ 
echo "Welcome,<u> $username </u>. "; 
echo "Fai o Controlla le tue Offerte<p>"; 

} 
} 
} 
else 

//se i cookie non esistono, torna alla pagina di login
{ 
header("Location: login.php"); 
} 



if($_POST)   
{   
    $ids = isset($_POST['id_off']) ? $_POST['id_off'] : array();   
    elimina_record($ids);   
}   
elseif(isset($_GET['id_off']))   
{   
    elimina_record(array($_GET['id_off']));   
}   
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_off,azienda,posti,posizione,sede,dettagli FROM offerte ";   
  
    // invio la query   
    $result = mysql_query($query);
   

  $number_cols=mysql_num_fields($result);


    // controllo l'esito   
    if (!$result) {   
        die("Errore nella query $query: " . mysql_error());   
    }   
  
echo  '<form name="form1" method="post" action="">   
        <table border="1">'; 
echo "<table  border =1>\n";
echo "<tr align=center>\n";

for ($i=0; $i<$number_cols; $i++)
{
echo "<th><u>" . mysql_field_name ($result,$i). "</th></u>\n";
}
echo "</tr>\n";
while($q1 = mysql_fetch_assoc($result))
{
  
 
  echo "<tr align=center>";
  echo "<td>".$q1['id_off']. "</td>";
  echo "<td>".$q1['azienda']. "</td>";
  echo "<td>".$q1['posti']. "</td>";
  echo "<td>".$q1['posizione']. "</td>"; 
  echo "<td>".$q1['sede']. "</td>";
  echo "<td><a href=\"pagina_offerta.php?id_off=".$q1['id_off']."\">".$q1['dettagli']."</a></td>";  
  echo  "<td><input name=\"id_off[]\" type=\"checkbox\" value=\"$q1[id_off]\" /></td>  
                
                <td><a href=\"$link\">elimina</a></td>  
            ";
echo"</tr>";
      } 
    echo '</table>   
        <br />   
        <input type="submit" name="Submit" value="Elimina record 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 record 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 offerte WHERE id_off 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("Numero record cancellati: $num_record");   
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);   
}   
?>

Grazie a tutti

Ciao ciao

risposto 10 anni fa
belbagarospo
X 0 X

Ops.. Ho dimenticato di postare che errore mi da:

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\cancella.php:24) in C:\wamp\www\cancella.php on line 146

ciao

risposto 10 anni fa
belbagarospo
X 0 X

il tuo problema è questo:

echo "Welcome,<u> $username </u>. "; 
echo "Fai o Controlla le tue Offerte<p>";

Se si è loggato hai già inviato alla pagina queste cose non puoi + redirezionare il browser, l'header è già stato mandato.

risposto 10 anni fa
LonelyWolf
X 0 X

il tuo problema è questo:

echo "Welcome,<u> $username </u>. "; 
echo "Fai o Controlla le tue Offerte<p>";

Se si è loggato hai già inviato alla pagina queste cose non puoi + redirezionare il browser, l'header è già stato mandato.

Non sto capendo??!! Quindi ke devo fare??  :'(

risposto 10 anni fa
belbagarospo
X 0 X

La funzione

header('location: ....

serve ad effettuare il redirect del browser verso una pagina specificata. Questa funzione non funziona (cacofonia voluta!) se lo script ha già prodotto dell'output, ad esempio con una echo.

Verifica quindi che non ci sia nessuna echo, o altra istruzione di output, o altro evento che genera output, prima di lancaire la header('location: ....

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Grazie Gianni, penso di aver risolto in parte il problema dell'header....

ora però il problema è un altro.

Ho questa pagina

<?php
// Connessione al database 
mysql_connect("localhost", "root", "password") or die(mysql_error()); 
mysql_select_db("database") or die(mysql_error()); 

//controllo cookie 
if(isset($_COOKIE['ID_my_site'])) 
{ 

$username = $_COOKIE['ID_my_site']; 
$pass = $_COOKIE['Key_my_site']; 
$check = mysql_query("SELECT * FROM iscrizione WHERE username = '$username' ")or die(mysql_error()); 
while($info = mysql_fetch_array( $check )) 
{ 

//Se il controllo da password errata, torna alla pagina login
if ($pass != $info['password']) 
{ header("Location: login.php"); 
} 

//altrimenti pubblica area admin
else
{ 
//echo "Welcome,<u> $username </u>. "; 
//echo "Fai o Controlla le tue Offerte<p>"; 

} 
} 
} 
else 

//se i cookie non esistono, torna alla pagina di login
{ 
header("Location: login.php"); 
} 

echo "<body bgcolor=#F7F3F7>";
echo "<table align=center width=780 border=0 cellspacing=0 cellpadding=0 >"."<tr>";
echo "<td>"."<table width=100%  border=0 cellspacing=0 cellpadding=0>";
echo "<tr>";
echo "<td width=26%>";
echo "<img border=1 src=immagini/logojob.jpg width=780 height=97>"."</font>"."</td>"."</tr>"."</table>";
echo "<p>"."</p>";
echo "<table align=center width=780 bordercolor=blue bordercolorlight=#00CCFF bordercolordark=#000099 border=1 cellspacing=0 cellpadding=0>"."<tr>";
echo "<td>"."<table width=100% bordercolor=blue bordercolorlight=#00CCFF bordercolordark=#000099 border=1 cellspacing=0 cellpadding=0>"."<tr>";
echo "<td>"."<table width=100%  border=0 cellspacing=0 cellpadding=0>"."<tr>";
echo "<td width=45%>";
echo "<a href=nuovaofferta.php> Nuova Offerta </a> |";
echo "<a href=cancellaofferte.php> Cancella Offerte </a> |";
echo "<a href=aggiornaofferta.php> Aggiorna Offerta </a> |";"</td>";
echo "<td width=4%>"."</td>";
echo "<td width=27% class=menuitem>". " | ";
echo "<a href=logout.php>Logout</a>". " | ";
echo "<a href=iscrivitiora.php class=menuitem>i</a>". " | ";
echo "<a href=members.php class=menuitem>Pagina Precedente</a>". " | ";
echo "</td>"."</tr>";
echo "<td width=26%>"."</td>"."<tr>"."</table>"."</td>"."</tr>";
echo "<tr>"."<td align=center>";
echo "<h4>Di seguito le tue offerte attive:</h4>"."</td>"."</tr>";
echo "<tr>"."<td align=center>";



if($_POST)   
{   
    $ids = isset($_POST['id_off']) ? $_POST['id_off'] : array();   
    elimina_record($ids);   
}   
elseif(isset($_GET['id_off']))   
{   
    elimina_record(array($_GET['id_off']));   
}   
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_off,azienda,posti,posizione,sede,dettagli FROM offerte  ";   
  
    // invio la query   
    $result = mysql_query($query);
   

  $number_cols=mysql_num_fields($result);


    // controllo l'esito   
    if (!$result) {   
        die("Errore nella query $query: " . mysql_error());   
    }   
  
echo  '<form name="form1" method="post" action="">   
        <table border="1">'; 
echo "<table  border =1 width=780>\n";
echo "<tr align=center>\n";

for ($i=0; $i<$number_cols; $i++)
{
echo "<th><u>" . mysql_field_name ($result,$i). "</th></u>\n";
}
echo "</tr>\n";
while($q1 = mysql_fetch_assoc($result))
{
  
 
  echo "<tr align=center>";
  echo "<td>".$q1['id_off']. "</td>";
  echo "<td>".$q1['azienda']. "</td>";
  echo "<td>".$q1['posti']. "</td>";
  echo "<td>".$q1['posizione']. "</td>"; 
  echo "<td>".$q1['sede']. "</td>";
  echo "<td><a href=\"pagina_offerta.php?id_off=".$q1['id_off']."\">".$q1['dettagli']."</a></td>";  
  echo  "<td><input name=\"id_off[]\" type=\"checkbox\" value=\"$q1[id_off]\" /></td>  
                
                <td> </td>  
            ";
echo"</tr>";
      } 
    echo '</table>   
        <br />   
        <input type="submit" name="Submit" value="Elimina record 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 record 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 offerte WHERE id_off 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("Numero record cancellati: $num_record");   
    //header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);   
}   
echo"</td>"."</tr>";

echo "</td>"."</tr>"."</table>"."</body>";
?>

Con questo codice mi vengono date tutte le offerte, anche quelle di un altro username....

Io vorrei che un username visualizzasse solo le sue offerte.

Ho provato a modificare

// preparo la query 
   
    $query = "SELECT id_off,azienda,posti,posizione,sede,dettagli FROM offerte  ";   
 

con

// preparo la query 
   
    $query = "SELECT id_off,azienda,posti,posizione,sede,dettagli FROM offerte where username='$username' ";   
 

ma la tabella non mi da risultati... Dove sbaglio???? :tichedoff:

Grazie  :bye:

risposto 10 anni fa
belbagarospo
X 0 X

non ricevi risultati oppure la query non va in porto (produce errori)?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
non ricevi risultati oppure la query non va in porto (produce errori)?

Non mi da risultati... mi da solo l'intestazione dei campi della tabella.

 :'(

risposto 9 anni fa
belbagarospo
X 0 X

ma se provi a lanciare la query da phpmyadmin ti da risultati?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
ma se provi a lanciare la query da phpmyadmin ti da risultati?

Si con phpadmin i risultati ci sono, eccome.

risposto 9 anni fa
belbagarospo
X 0 X

L'unica spiegazione che mi do è che la variabile $username sia vuota.

Prima della query fai una

echo 'Username: ' . $username;

e vedi cosa dice

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

L'unica spiegazione che mi do è che la variabile $username sia vuota.

Prima della query fai una

echo 'Username: ' . $username;

e vedi cosa dice

Ho provato ma niente da fare....La tabella mi dà l'intestazione dei campi ma nessun risultato.

 :'(

Aiutatemi.

risposto 9 anni fa
belbagarospo
X 0 X

Mica doveva risolvere il problema, serviva solo a capire se la variabile $username aveva un qualche valore...

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Mica doveva risolvere il problema, serviva solo a capire se la variabile $username aveva un qualche valore...

E come lo risolvo il problema??  :'(

risposto 9 anni fa
belbagarospo
X 0 X
Mica doveva risolvere il problema, serviva solo a capire se la variabile $username aveva un qualche valore...

E come lo risolvo il problema??  :'(

Mi stai facendo uscire matto  :crazy: Come posso risolvere il problema se non capisco dov'è la causa? Ti ho consigliato di inserire quel codice per scoprire se la variabile $username assume qualche valore. Infatti temo che la query non restituisca alcun risultato perché $username è vuota.

Se non mi confermi questa cosa non possiamo andare avanti.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Mica doveva risolvere il problema, serviva solo a capire se la variabile $username aveva un qualche valore...

E come lo risolvo il problema??  :'(

Mi stai facendo uscire matto  :crazy: Come posso risolvere il problema se non capisco dov'è la causa? Ti ho consigliato di inserire quel codice per scoprire se la variabile $username assume qualche valore. Infatti temo che la query non restituisca alcun risultato perché $username è vuota.

Se non mi confermi questa cosa non possiamo andare avanti.

 :bye:

Si penso che la variabile $username sia piena, infatti assume il valore dell'username. Però non riesco proprio a capire perchè non funziona!  :'(

risposto 9 anni fa
belbagarospo
X 0 X

 >:D Son Tornato, vi ho lasciato in pace per questo giorno di festa. :angel:

Ora torniamo a noi.

Gianni ti confermo che la variabile $username è vuota. Non riesco a capire però perchè?

Penso anche di aver combinato qualche macello con  l'header, ma non riesco a venirne a capo.

Cmq il codice è sempre quello che ho postato giorni fa.

Come devo fare??

Help me.  :'(

risposto 9 anni fa
belbagarospo
X 0 X

Se hai verificato che $username è vota allora devi continuare a risalire il codice, per trovarne la causa.

1) quale riga dovrebbe assegnare il valore a $username? Prendendolo da dove?

2) E' possibile che la sorgente del valore di $username possa, in determinate circostanze, non contenere il valore suddetto?

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

quindi vediamo un pò...

La variabile $username dovrebbe essere piena fino a questo punto

<?php
// Connessione al database 
mysql_connect("localhost", "root", "password") or die(mysql_error()); 
mysql_select_db("database") or die(mysql_error()); 

//controllo cookie 
if(isset($_COOKIE['ID_my_site'])) 
{ 

$username = $_COOKIE['ID_my_site']; 
$pass = $_COOKIE['Key_my_site']; 
$check = mysql_query("SELECT * FROM iscrizione WHERE username = '$username' ")or die(mysql_error()); 
while($info = mysql_fetch_array( $check )) 
{ 

//Se il controllo da password errata, torna alla pagina login
if ($pass != $info['password']) 
{ //header("Location: login.php"); 
} 

//altrimenti pubblica area admin
else
{ 
echo "Welcome,<u> $username </u>. "; 
echo "Fai o Controlla le tue Offerte<p>"; 

} 
} 
} 
else 



//se i cookie non esistono, torna alla pagina di login
{ 
//header("Location: login.php");

} 

echo "<body bgcolor=#F7F3F7>";
echo "<table align=center width=780 border=0 cellspacing=0 cellpadding=0 >"."<tr>";
echo "<td>"."<table width=100%  border=0 cellspacing=0 cellpadding=0>";
echo "<tr>";
echo "<td width=26%>";
echo "<img border=1 src=immagini/logojob.jpg width=780 height=97>"."</font>"."</td>"."</tr>"."</table>";
echo "<p>"."</p>";
echo "<table align=center width=780 bordercolor=blue bordercolorlight=#00CCFF bordercolordark=#000099 border=1 cellspacing=0 cellpadding=0>"."<tr>";
echo "<td>"."<table width=100% bordercolor=blue bordercolorlight=#00CCFF bordercolordark=#000099 border=1 cellspacing=0 cellpadding=0>"."<tr>";
echo "<td>"."<table width=100%  border=0 cellspacing=0 cellpadding=0>"."<tr>";
echo "<td width=45%>";
echo "<a href=nuovaofferta.php> Nuova Offerta </a> |";
echo "<a href=cancellaofferte.php> Cancella Offerte </a> |";
echo "<a href=aggiornaofferta.php> Aggiorna Offerta </a> |";"</td>";
echo "<td width=4%>"."</td>";
echo "<td width=27% class=menuitem>". " | ";
echo "<a href=logout.php>Logout</a>". " | ";
echo "<a href=iscrivitiora.php class=menuitem></a>". "  ";
echo "<a href=members.php class=menuitem>Offerte Attive</a>". " | ";
echo "</td>"."</tr>";
echo "<td width=26%>"."</td>"."<tr>"."</table>"."</td>"."</tr>";
echo "<tr>"."<td align=center>";
echo "<br>";
echo "<h4>Di seguito le tue offerte attive:</h4>"."</td>"."</tr>";
echo "<tr>"."<td align=center>";

poi il valore si "perde" da qui :

if($_POST)   
{   
      $username = $_COOKIE['ID_my_site'];  
    $ids = isset($_POST['id_off']) ? $_POST['id_off'] : array();   
    elimina_record($ids);   
}   
elseif(isset($_GET['id_off']))   
{   
    elimina_record(array($_GET['id_off']));   
}   
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_off,azienda,posti,posizione,sede,dettagli FROM offerte  ";   
  
    // invio la query   
    $result = mysql_query($query);
   

  $number_cols=mysql_num_fields($result);


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

echo  '<form name="form1" method="post" action="">   
        <table border="1">'; 
echo "<table  border =1 width=780>\n";
echo "<tr align=center>\n";

for ($i=0; $i<$number_cols; $i++)
{
echo "<th><u>" . mysql_field_name ($result,$i). "</th></u>\n";
}
echo "</tr>\n";
while($q1 = mysql_fetch_assoc($result))
{
  

  echo "<tr align=center>";
  echo "<td>".$q1['id_off']. "</td>";
  echo "<td>".$q1['azienda']. "</td>";
  echo "<td>".$q1['posti']. "</td>";
  echo "<td>".$q1['posizione']. "</td>"; 
  echo "<td>".$q1['sede']. "</td>";
  echo "<td><a href=\"pagina_offerta.php?id_off=".$q1['id_off']."\">".$q1['dettagli']."</a></td>";  
  echo  "<td><input name=\"id_off[]\" type=\"checkbox\" value=\"$q1[id_off]\" /></td> 
                
                <td> </td>  
            ";
           
echo"</tr>";
      } 
    echo '</table>   
        <br />   
        <input type="submit" name="Submit" value="Elimina record 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 record 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 offerte WHERE id_off 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("Numero record cancellati: $num_record");   
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);   
}   

a qui.

Per ricomparire dopo.

Per quale motivo??Non riesco a capire!

 :'( :tichedoff:

risposto 9 anni fa
belbagarospo
X 0 X

Ho visto che la variabile $username viene presa da un cookie:

$username = $_COOKIE['ID_my_site'];

metti una echo $username; subito dopo quell'istruzione, in modo da vedere se effettivamente il cookie contiene l'username.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Gianni, ho fatto come hai detto tu e il cookie contiene l'username, infatti compariva già qui

 echo "Welcome,<u> $username </u>. ";

Io penso ke il problema sia da qui in poi

if($_POST)   
{   
      $username = $_COOKIE['ID_my_site'];  
      echo $username;
    $ids = isset($_POST['id_off']) ? $_POST['id_off'] : array();   
    elimina_record($ids);   
}   
elseif(isset($_GET['id_off']))   
{   
    elimina_record(array($_GET['id_off']));   
}   
else  
    mostra_lista();   
  
function mostra_lista()   
{    
    // mostro un eventuale messaggio   
    if(isset($_GET['msg']))   
        echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />'; 
       

.........
 

Ma non riesco proprio a capire dove  :'( :'( :'(

Potrebbe essere legato alla questione dell'header????

infatti provando a cancellare qualche record ho questo messaggio di errore

[tt]Warning: Cannot modify header information - headers already sent by (output started at C:\www\cancella.php:11) in C:\www\cancella.php on line 182

[/tt]

Non so davvero cosa poter fare  :tichedoff::'( :'(

Aiuto..

risposto 9 anni fa
belbagarospo
X 0 X

nel codice che hai riportato hai individuato la riga che potrebbe non funzionare?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
nel codice che hai riportato hai individuato la riga che potrebbe non funzionare?

il messaggio di errore dice che 1 è questa :

<?php
echo "Welcome,<u> $username </u>. "; 
?>

e già mi puzza!! :)

e l'altra è questa:

<?php 
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio); 
?> 

Gianni, potrebbe quindi essere la causa un problema di header????

grazie ciao

risposto 9 anni fa
belbagarospo
X 0 X

Che errore ricevi? Riportalo integralmente.

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Che errore ricevi? Riportalo integralmente.

l'avevo postato prima cmq eccolo qua:

Warning: Cannot modify header information - headers already sent by (output started at C:\www\cancella.php:11) in C:\www\cancella.php on line 182

e le stringhe interessate sono :

1

<?php
echo "Welcome,<u> $username </u>. "; 
?>

2

<?php 
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio); 
?> 

Spero sia questo il problema :'(

risposto 9 anni fa
belbagarospo
X 0 X

E' un classico: quando utilizzi l'istruzione header non puoi più produrre output (es. con echo, print, ecc.) con le istruzioni precedenti! Bada che anche l'HTML o solo uno spazio prima del tag PHP sono da considerare output. Attento ache a dei precedenti messaggi di errore, anche questi sono output.

In pratica niente deve essere prodotto dallo script prima di usare la funzione header.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

E' un classico: quando utilizzi l'istruzione header non puoi più produrre output (es. con echo, print, ecc.) con le istruzioni precedenti! Bada che anche l'HTML o solo uno spazio prima del tag PHP sono da considerare output. Attento ache a dei precedenti messaggi di errore, anche questi sono output.

In pratica niente deve essere prodotto dallo script prima di usare la funzione header.

 :bye:

Grazie Gianni,

però e da questa mattina che ci provo :'(.... però non sto capendo cosa devo modificare :'(...

Mi aiuti tu???(ti do del tu, spero non sia un problema)

ciao grazie ancora  :bye:

risposto 9 anni fa
belbagarospo
X 0 X

Nessun problema con il "tu". Il problema è che non ho tempo per vedermi un'itero script, capire cosa vuoi ottenere e correggerlo  :dunno:

Posso solo cercare di spiegarti il motivo degli errori che ricevi.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Ok,

Grazie lo stesso Gianni,

Speriamo ci sia qualche altro disposto a darmi una mano...  :'( :'(

Magari nei momenti di pausa dai un okkiata a un pò di righe di codice e mi dici dove sta l'errore  :2funny: ;D :D ;)

Ciao ciao

risposto 9 anni fa
belbagarospo
X 0 X

Evvai, Yuppy!!!  O0

Gianni ho torvato il problema.... Dopo 2 giorni  e 2 notti in piedi davanti al pc.....

Ragazzi l'errore era questo, o meglio , mancavano queste due righe:

<?php
$username=$_GET['username'];
  $username = $_COOKIE['ID_my_site'];
?>

prima della query (ecco perchè la variabile $username era vuota)qui:

<?php // preparo la query 
   $username=$_GET['username'];
  $username = $_COOKIE['ID_my_site'];
    $query = "SELECT id_off,azienda,posti,posizione,sede,dettagli FROM offerte where username='$username'  ";   
 

Sono ormai un esperto di php ???!! ? ???

Ciao ciao a presto  :bye: :bye:

risposto 9 anni fa
belbagarospo
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda