non cambia nulla
scavicchiando un po' ne sto venendo a capo... $row è sempre vuoto perchè $result si riferisce sempre all'id 5 che in tabella non esiste... il problema è capire perchè va a puntare sempre a quello
non cambia nulla
scavicchiando un po' ne sto venendo a capo... $row è sempre vuoto perchè $result si riferisce sempre all'id 5 che in tabella non esiste... il problema è capire perchè va a puntare sempre a quello
Sotto la panza la mazza avanza.
quasi trovato... miseria che casino
questa query funziona, nel senso che mi tira su l'articolo dal db ma tira sempre su lo stesso con id 5 (ne ho inserito uno apposta con quell'id per vedere che succedeva):
questa, l'originale, invece no:Codice PHP:
$query = "SELECT titolo,testo,data,autore,mail FROM news";
sembra che non riesca a tirare su l'id... chiamo un esorcista?Codice PHP:
$query = "SELECT titolo,testo,data,autore,mail FROM news WHERE id='$id'";
edit: confermo, il problema è che non riesce a leggere l'id, inserendo un valore costante funziona come da copione... eppure l'url è corretto, generato da qui nella pagina precedente:
Codice PHP:
while ($row = mysql_fetch_array($result))
{ echo "<a href=\"view.php?id=$row[id]\">" . date("j/n/y", $row[data]) . " - $row[titolo]</a>
"; }
?>
Sotto la panza la mazza avanza.
a questo punto ho bisogno di un chiarimento... questo è il sorgente della pagina che dovrebbe visualizzare il contenuto degli articoli
ma sto cappero di $id che non esiste da nessun'altra parte (nelle altre pagine intendo) da dove dovrebbe tirarlo fuori? che deve corrispondere a quello della barra degli indirizzi (view.php?id=1 per esempio) l'ho capito, ma è sufficiente la sua presenza lì perchè il suo valore venga caricato nella corrispondente variabile? se no, come si fa?Codice PHP:
<?
include("top_foot.inc.php");
include("config.inc.php");
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE) die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = "SELECT titolo,testo,data,autore,mail FROM news WHERE id='$id'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$data = date("j/n/y", $row[data]);
echo "[b]$row[titolo][/b]
";
echo "$row[testo]
";
if ($row[mail] != "") echo "$data, <a href=mailto:$row[mail]>$row[autore]</a>
"; else echo "$data, $row[autore]
";
echo "
<a href=index.php>Torna alla pagina iniziale</a>
";
echo "<a href=all.php>Visualizza tutti gli articoli</a>
";
mysql_close($db);
foot();
?>
Sotto la panza la mazza avanza.
MA VAAAAAAFFAAAAAAAAANC...
e dire che me l'avevi pure accennato più su... dovevo mettere le registerglobals su on, ora funziona
ma ho letto che nel php.ini è sconsigliato attivarle per problemi di sicurezza e che da php5 verranno disattivate al default, in questo caso come si gestiscono gli id?
Sotto la panza la mazza avanza.
ok ho terminato la guida... funziona tutto; fermo restando la domanda sull'id del post sopra, ora avrei bisogno di una linea guida
ho fatto una pagina in xhtml+css con un box centrale per le news
come procedo? trasformo l'intera pagina (e le future) in php andando a botte di echo per generare l'xhtml o mi limito ad entrare in modalità php dall'xhtml?
in pratica: è preferibile avere tutta una serie di file .php con all'interno la generazione dell'xhtml o tutta una serie di .htm con all'interno il codice php?
Sotto la panza la mazza avanza.
non capisco il tuo problema.
Prima eri sulla strada giusta.
Le variabili passate via post si troveranno in
$_POST['var']
mentre quelle passate in get in
$_GET['var']
Comunque fatti un giro completo sul sito di freephp, vedrai che molte cose si chiariranno.
Ciao
NON devi cambiare i Register Globals su ON, lavora con il settaggio su OFF e segui il consiglio che ti ha dato gianiaz qui su.Originariamente inviato da Caleb
MA VAAAAAAFFAAAAAAAAANC...
e dire che me l'avevi pure accennato più su... dovevo mettere le registerglobals su on, ora funziona
ma ho letto che nel php.ini è sconsigliato attivarle per problemi di sicurezza e che da php5 verranno disattivate al default, in questo caso come si gestiscono gli id?
a seconda di come passi le variabili devi ripescartele con $_POST['var'] e $_GET['var']
ok, d'accordo per gestire le variabili che provengono dal form, ma il problema è che senza i register globals attivi non mi infila nulla nella variabile $id
mi spiego meglio: c'è una pagina index.php che elenca i titoli di tutti gli articoli, ogni link dell'articolo è una cosa del tipo http://test/view.php?id=X dove X corrisponde alla chiave univoca dell'articolo nel db
nella pagina view.php c'è la query SELECT titolo,testo,data,autore,mail FROM news WHERE id='$id'
il problema è che $id viene passata da index.php a view.php solo se si attivano i register globals, come si fa a passarla con sti cosi disattivi? questa è la parte di index.php che genera i vari link, e funziona:
cliccando su ogni link non funziona una mazza perchè si arriva a view.php senza un valore sensato nella variabile id... mi sono spiegato?Codice PHP:
$query = "SELECT id,data,titolo FROM news ORDER BY data DESC LIMIT 0,5";
$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result))
{ echo "<a href=\"view.php?id=$row[id]\">" . date("j/n/y", $row[data]) . " - $row[titolo]</a>
"; }
Sotto la panza la mazza avanza.
devi usare il GET anche nella select:
SELECT quellochevuoi FROM news WHERE id = $_GET['id']