dunque...
dopo studio approfondito sono giunta alla definizione di due files:
modifica.php e update.php.
il file modifica.php contiene il form con i campi da modificare (per semplicità ho considerato un solo campo, solo la colonna 'titolo' di una tabella di una unica riga che contiene anche 'id' 'testo' 'data' 'autore' 'mail')
il file update.php è l'action del form suddetto che ha method="get"
modifica.php
[php]<?
$titolo=$_REQUEST['titolo'];
include("top_foot.inc.php");
include("config.inc.php");
top();
$db = mysql_connect($db_host, $db_user, $db_password) or die("Mancata Connessione.<br />
Errore Numero: ".mysql_errno()."<br />descrizione: ".mysql_error());
$id=$_GET['id'];
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");
$sql = "SELECT titolo FROM news WHERE id = $id";
$result = mysql_query($sql, $db) or die("Mancata Query.<br />
Errore Numero: ".mysql_errno()."<br />descrizione: ".mysql_error());
$row = mysql_fetch_array($result);
mysql_close($db);
foot();
?>
<form method="get" action="update.php?id=$id">
<input type="text" size="40" name="titolo" value ="<?php $titolo ?>" />
<input type="submit" value="Invia" />
</form>
[/php]
update.php
[php]<?
$titolo=$_REQUEST['titolo'];
include("top_foot.inc.php");
include("config.inc.php");
top();
if ($pass != $password): echo "Password errata";
elseif (trim($titolo) == ""):
echo "Il campo Titolo deve essere riempito!";
else :
$titolo = addslashes(stripslashes($titolo));
$titolo = str_replace("<", "<", $titolo);
$titolo = str_replace(">", ">", $titolo);
$db = mysql_connect($db_host, $db_user, $db_password);
$id = $_GET['id'];
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");
$sql = "UPDATE news SET titolo = $titolo WHERE id = $id";
if (mysql_query($sql, $db))
echo "L'articolo è stato modificato correttamente";
else
echo "Errore durante l'inserimento";
//endif;
mysql_close($db);
endif; // chiude la verifica della presenza dei dati
foot();
?>
[/php]
quando arrivo sulla pagina modifica.php?id=xxx succede questo:
il form, che per semplicità ha un unico campo (titolo), appare vuoto mentre io me lo aspettavo pieno, stante il seguente:
<input type="text" size="40" name="titolo" value ="<?php $titolo ?>" />
quando inserisco un nuovo titolo e clicco su invia mi risulta il seguente errore:
Errore durante l'inserimento
quindi deve essere successo qualcosa qui:
[php]$sql = "UPDATE news SET titolo = $titolo WHERE id = $id";
if (mysql_query($sql, $db))
echo "L'articolo è stato modificato correttamente";
else
echo "Errore durante l'inserimento";[/php]
???