Salve a tutti ragazzi, avrei un problemino con la funzione header() che e' presente nello script realizzato nella lezione 9 del corso di PHP e MySQL!
Il messaggio di errore che mi restituisce e' il seguente:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /Applications/MAMP/htdocs/ProvePHP/PHP:Mysql/modifica.php on line 73
Per correttezza vi posto anche la pagina da me creata, so che sono parecchie righe, ma visto che ho applicato qualche modifica al codice, nn sono stati grossi cambiamenti, preferisco incollarla tutta...
<?php
//richiamo il file di configurazione
require('config.php');
//richiamo lo script di connessione
require('connect.php');
if($_POST && isset($_GET['id']))
{
aggiorna_record();
}
elseif(isset($_GET['id']))
{
mostra_record();
}
else
mostra_lista();
//dichiaro la funzione mostra_lista()
function mostra_lista()
{
//mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '<strong>'. htmlentities($_GET['msg']).'</strong><br /><br />';
while ($row = mysql_fetch_assoc($result))
{
$nome = htmlspecialchars($row['nome']);
//preparo il link per la modifica dei dati del record
$link = $_SERVER['PHP_SELF'] .'?id=' .$row['id'];
echo "<p>Nome: $name <a href=\"$link\">Modifica</a></p>";
}
//libero la memoria di PHP
mysql_free_result($result);
//chiudo la connessione a MySQL
mysql_close();
}
function aggiorna_record()
{
//recupero i campi di tipo "stringa"
$nome = trim($_POST['nome']);
$email = trim($_POST['email']);
$messaggio = trim($_POST['messaggio']);
//verifico se devo eliminare gli slash inseriti in automatico da PHP
if(get_magic_quotes_gpc())
{
$nome = stripslashes($nome);
$email = stripslashes($email);
$messaggio = stripslashes($messaggio);
}
//effettuo l'escape dei caratteri speciali per inserirli all'interno
$nome = mysql_real_escape_string($nome);
$email = mysql_real_escape_string($email);
$messaggio = mysql_real_escape_string($messaggio);
echo $nome;
//recupero gli altri campi del form
$sesso = isset($_POST['sesso']) ? intval($_POST['sesso']) : 0;
$newsletter = isset($_POST['newsletter']) ? 1 : 0;
$attivita = intval($_POST['attivita']);
$id = intval($_GET['id']);
//verifico la presenza dei campi obbligatori
if(!$nome)
{
$messaggio = urlencode("Non hai inserito il nome");
header("location:$_SERVER['PHP_SELF']?id=$id&msg=$messaggio");
exit();
}
//preparo la query
$query = "UPDATE utenti SET
nome = '$nome',
email = '$email',
sesso = '$sesso',
newsletter = '$newsletter',
attivita = '$attivita',
messaggio = '$messaggio',
WHERE id = '$id'
";
//invio la query
$result = mysql_query($query);
//controllo l'esito
if(!$result)
{
die("Errore nella query $query: ". mysql_error());
}
//chiudo la connessione MySQL
mysql_close();
$messaggio = urlencode('Aggiornamento effettuato con successo');
header("location: $_SERVER['PHP_SELF']?msg=$messaggio");
}
//creo la funzione per mostrare i record
function mostra_record()
{
//mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '<strong>'. htmlentities($_GET['msg']).'</strong><br /><br />';
$id = intval($_GET['id']);
//preparo la query
$query = "SELECT nome,email,sesso,newsletter,attivita,messaggio FROM utenti WHERE id=$id";
//invio la query
$result = mysql_query($query);
//controllo l'esito
if(!$result)
{
die("Errore nella query $query: ". mysql_error());
}
//controllo che SELECT abbia restituito un record onde evitare manomissioni
//dell'id passato via GET
if(mysql_num_rows($result) != 1)
{
die("L'ID passato via GET è errato!");
}
list($nome,$email,$sesso,$newsletter,$attivita,$messaggio) = mysql_fetch_row($result);
$nome = htmlspecialchars($nome);
$email = htmlspecialchars($email);
$messaggio = htmlspecialchars($messaggio);
?>
<form name="form_registrazione" method="post" action="">
<label>Nome: <input name="nome" type="text" value="<? echo $nome;?>" /></label><br />
<label>Email: <input name="email" type="text" value="<? echo $email;?>" /></label><br />
Sesso: <label><input name="sesso" type="radio" value="1" <? if($sesso == 1) echo 'checked="checked"'; ?> />M</label><br />
<label><input name="sesso" type="radio" value="2" <? if($sesso ==2) echo 'checked="checked"'; ?> />F</label><br />
<label>Inviami newsletter: <input name="newsletter" typr="checkbox" value="1" <?if($newsletter) echo 'checked="checked"'; ?> /></label><br />
<label>Attività:
<select name="attivita">
<option value="0">::seleziona::</option>
<option value="1" <? if($attivita == 1) echo 'selected="selected"';?>>Studente</option>
<option value="2" <? if($attivita == 2) echo 'selected="selected"';?>>Lavoratore</option>
<option value="3" <? if($attivita == 3) echo 'selected="selected"';?>>Disoccupato</option>
</select>
</label><br />
<label>Messaggio:<br />
<textarea name="messaggio" cols="40" rows="5"><? echo $messaggio; ?></textarea>
</label></br />
<input name="invia" type="submit" value="Invia" />
</form>
<?php
}
?>
spero che qualcuno possa, e sopratutto abbia la voglia di aiutarmi, visto che ho anche provato a darmi dire dal PHP di che tipo di errore si tratta ma nn me lo vuol dire...
Detto questo grazie in anticipo a tutti quanti!!!