- Home
- Categorie
- Coding e Sistemistica
- PHP
- Aiuto!! Errore nello script php
-
Aiuto!! Errore nello script php
Ciao a tutti, ho un problema con questo script, la funzione principale di modifica è perfetta, ma quando ha concluso l'operazione non mi torna aggiornando la pagina, e non mi scrive "Aggiornamento effettuato con successo" devo farlo io aggiornando dal browser.
Chi mi può indicare l'errore?
Grazie.<?PHP
include('./global.php');
if($_POST && isset($_GET['domain_id']))
{
aggiorna_record();
}
elseif(isset($_GET['domain_id']))
{
mostra_record();
}
else
mostra_lista();function mostra_lista()
{
// mostro un eventuale domain_descrizione
if(isset($_GET['msg']))
echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';// preparo la query $query = "SELECT * FROM domains WHERE domain_id ORDER by domain_id DESC"; $conta=0; // invio la query $result = mysql_query($query); // controllo l'esito if (!$result) { die("Errore nella query $query: " . mysql_error()); } while ($row = mysql_fetch_assoc($result)) { $domain_url = htmlspecialchars($row['domain_url']); $domain_count = htmlspecialchars($row['domain_count']); $domain_status = htmlspecialchars($row['domain_status']); // preparo il link per la modifica dei dati del record $link = $_SERVER['PHP_SELF'] . '?domain_id=' . $row['domain_id']; $number=$conta+1; echo "<tr>
<td><font color=0000ff>$number</td>
<td><font color=0000ff><a href="http://www.$domain_url">$domain_url</a></td>
<td><font color=0000ff> $domain_count</td><td><font color=0000ff> $domain_status</td> <td><a href=\"$link\">modifica</a></td> </tr>"; $conta++; } echo '</table>'; // libero la memoria di PHP occupata dai record estratti con la SELECT mysql_free_result($result); // chiudo la connessione a MySQL mysql_close();
}
function aggiorna_record()
{
// recupero i campi di tipo "stringa"
$domain_url = trim($_POST['domain_url']);
$domain_email = trim($_POST['domain_email']);
$domain_descrizione = trim($_POST['domain_descrizione']);// verifico se devo eliminare gli slash inseriti automaticamente da PHP if(get_magic_quotes_gpc()) { $domain_url = stripslashes($domain_url); $domain_email = stripslashes($domain_email); $domain_descrizione = stripslashes($domain_descrizione); } // effettuo l'escape dei caratteri speciali per inserirli all'interno della query $domain_url = mysql_real_escape_string($domain_url); $domain_email = mysql_real_escape_string($domain_email); $domain_descrizione = mysql_real_escape_string($domain_descrizione); // recupero gli altri campi del form $domain_count = intval($_POST['domain_count']); $domain_pr = intval($_POST['domain_pr']); $domain_status = intval($_POST['domain_status']); $domain_id = intval($_GET['domain_id']); // verifico la presenza dei campi obbligatori if(!$domain_url) { $domain_descrizione = urlencode("Non hai inserito il domain_url"); header("location: $_SERVER[PHP_SELF]?domain_id=$domain_id&msg=$domain_descrizione"); exit; } // preparo la query $query = "UPDATE domains SET domain_url = '$domain_url', domain_email = '$domain_email', domain_count = $domain_count, domain_pr = $domain_pr, domain_status = $domain_status, domain_descrizione = '$domain_descrizione' WHERE domain_id = $domain_id"; // invio la query $result = mysql_query($query); // controllo l'esito if (!$result) { die("Errore nella query $query: " . mysql_error()); } // chiudo la connessione a MySQL mysql_close(); $domain_descrizione = urlencode('Aggiornamento effettuato con successo'); header("location: $_SERVER[PHP_SELF]?msg=$domain_descrizione");
}
function mostra_record()
{
// mostro un eventuale domain_descrizione
if(isset($_GET['msg']))
echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';$domain_id = intval($_GET['domain_id']); // preparo la query $query = "SELECT domain_url,domain_count,domain_pr,domain_descrizione,domain_email,domain_status FROM domains WHERE domain_id = $domain_id"; // invio la query $result = mysql_query($query); // controllo l'esito if (!$result) { die("Errore nella query $query: " . mysql_error()); } // controllo che la SELECT abbia restituito un record // l'id passato via GET potrebbe essere stato manipolato if(mysql_num_rows($result) != 1) { die("l'ID passato via GET è errato"); } list($domain_url,$domain_count,$domain_pr,$domain_descrizione,$domain_email,$domain_status) = mysql_fetch_row($result); $domain_url = htmlspecialchars($domain_url); $domain_email = htmlspecialchars($domain_email); $domain_descrizione = htmlspecialchars($domain_descrizione); ?> <form name="form_registrazione" method="post" action=""> <label>url: <input name="domain_url" type="text" value="<?echo $domain_url?>" /> </label>
<p>
<label>Visite:
<input name="domain_count" type="text" value="<?echo $domain_count?>" />
</label>
</p><p>
<label>PageRank:
<input name="domain_pr" type="text" value="<?echo $domain_pr?>" />
</label>
</p><p> <label>descrizione:<br /> <textarea name="domain_descrizione" cols="40" rows="5"><?echo $domain_descrizione?></textarea> </label> </p>
<p>
<label>email:
<input name="domain_email" type="text" value="<?echo $domain_email?>" />
</label>
</p><p>
<label>Condizione dominio:
<select name="domain_status">
<option value="00">:: seleziona ::</option>
<option value="0" <?if($domain_status==0) echo 'selected="selected"'?>>Disattivato 0</option>
<option value="1" <?if($domain_status==1) echo 'selected="selected"'?>>Attivo 1</option>
<option value="2" <?if($domain_status==2) echo 'selected="selected"'?>>Bannato 2</option>
</select>
</label>
</p><p> <input name="invia" type="submit" value="Invia" /> </p> </form> <?
}
?>
-
Prova a mettere:
[php]
//...
$domain_descrizione = urlencode('Aggiornamento effettuato con successo');
header("location: $_SERVER[PHP_SELF]?msg=$domain_descrizione");
exit();
}
[/php]Ciao!
-
Ma c'è già, è quello il problema, c'è un errore che non capisco dove può essere.
-
Nello script ci sono due header("location: $_SERVER[PHP_SELF]?msg=$domain_descrizione");
Il secondo non ha EXIT() mentre i primo si.
Controlla bene, il problema puo' essere li.Ciao!