unexpected T_VARIABLE

Salve, ho un problema con il seguente script:

<?php
include("mydb.class.php");
include("top_foot.inc.php");
top();
$mydb_obj=new mydb('localhost', 'root', 'rubber', 'wood');
if ($_POST['pass'] != $mybd_obj->passw) {
   echo "Password errata";
}
elseif (trim($_POST['titolo'])=='' OR trim($_POST['testo'])=='') {
   echo "I campi Titolo e Testo devono essere riempiti!";
}
else
{
   if (!get_magic_quotes_gpc()) {
      $titolo = addslashes($_POST['titolo']);
      $autore = addslashes($_POST['autore']);
      $mail = addslashes($_POST['mail']);
      $testo = addslashes($_POST['testo']);
   }

   $titolo = htmlspecialchars($titolo);
   $autore = htmlspecialchars($autore);
   $testo = htmlspecialchars($testo);
   $testo = nl2br($testo);

   $data = mktime(0, 0, 0, $_POST['mese'], $_POST['giorno'], $_POST['anno']);
   echo" La data è: $data";
   $mydb_obj->db_select()
   
   //Query che si occupa dell'inserimento
   $query = "INSERT INTO $mydb_obj->db_name (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";
}
mysql_close($mydb_obj->bd);
foot();
?>

Il messaggio di errore è:

Parse error: parse error, unexpected T_VARIABLE in G:\Programmi\Apache Group\Apache2\htdocs\Test\save.php on line 31

Il codice del form in cui inserisco i dati è:

<?php
//include ("config.inc.php");
include ("top_foot.inc.php");

//intestazione
top();
?><style type="text/css">
<!--
body {
   background-color: #FFFFCC;
}
-->
</style>

<form method="POST" action="../save.php">
  <p>Titolo:
    <input type="text" size=40 name="titolo">
  Data:
  <select name=giorno>
      <?
for ($i=1; $i<=31; $i++)
echo "<option value=$i>$i";
?>
  </select>
  <select name=mese>
      <option value=1>Gennaio
      <option value=2>Febbraio
      <option value=3>Marzo
      <option value=4>Aprile
      <option value=5>Maggio
      <option value=6>Giugno
      <option value=7>Luglio
      <option value=8>Agosto
      <option value=9>Settembre
      <option value=10>Ottobre
      <option value=11>Novembre
      <option value=12>Dicembre
    </select>
  <select name=anno>
      <option value=2001>2001
      <option value=2002>2002
      <option value=2003>2003
      <option value=2004>2004
      <option value=2005>2005
    </select>
  <br>
  <br>
Autore
<input type="text" size=40 name="autore">
E-mail:
<input type="text" size=40 name="mail">
</p>
  <p>Testo<br>
    <textarea name="testo" cols=100 rows=35></textarea>
</p>
  <p>Password: 
    <input type="password" size=40 name="pass"> 
    <input name="submit" type=submit value=Invia>
    </p>
  </form>
<?
// chiusura pagina
foot();
?>

Qualcuno puo aiutarmi ??? ;-(

inviato 11 anni fa
gohan079
X 0 X

hai semplicemente dimenticato il punto e virgola finale alla riga:

$mydb_obj->db_select()

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Ciao Gianni, continuo ad avere problemi:

<?php
include("mydb.class.php");
include("top_foot.inc.php");
top();
$mydb_obj=new mydb('localhost', 'root', 'rubber', 'wood');
if ($_POST['pass'] != $mybd_obj->passw)
   echo "Password errata";
   elseif (trim($_POST['titolo'])=='' OR trim($_POST['testo'])==''):
   echo "I campi Titolo e Testo devono essere riempiti!";
   elseif (!get_magic_quotes_gpc()) {
      $titolo = addslashes($_POST['titolo']);
      $autore = addslashes($_POST['autore']);
      $mail = addslashes($_POST['mail']);
      $testo = addslashes($_POST['testo']);
   }

   $titolo = htmlspecialchars($titolo);
   $autore = htmlspecialchars($autore);
   $testo = htmlspecialchars($testo);
   $testo = nl2br($testo);

   $data = mktime(0, 0, 0, $_POST['mese'], $_POST['giorno'], $_POST['anno']);
   $mydb_obj->db_select();
   
//Query che si occupa dell'inserimento
$query = "INSERT INTO $mydb_obj->db_name (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";

mysql_close($mydb_obj->bd);
foot();
?>

L'errore è ancora:

Parse error: parse error, unexpected T_VARIABLE in G:\Programmi\Apache Group\Apache2\htdocs\Test\save.php on line 31

anche se questa volta la riga 31 non esiste.

risposto 11 anni fa
gohan079
X 0 X

inizia col togliere il ":" dalla riga

elseif (trim($_POST['titolo'])=='' OR trim($_POST['testo'])=='')

Comunque lo script ha diversi errori, ho provato a correggerlo:

<?php
include("mydb.class.php");
include("top_foot.inc.php");
top();
$mydb_obj=new mydb('localhost', 'root', 'rubber', 'wood');

if ($_POST['pass'] != $mybd_obj->passw)
{
   echo "Password errata";
   exit();
}

if (trim($_POST['titolo'])=='' OR trim($_POST['testo'])=='')
{
   echo "I campi Titolo e Testo devono essere riempiti!";
   exit();
}

if (!get_magic_quotes_gpc()) {
   $titolo = addslashes($_POST['titolo']);
   $autore = addslashes($_POST['autore']);
   $mail = addslashes($_POST['mail']);
   $testo = addslashes($_POST['testo']);
}

$titolo = htmlspecialchars($titolo);
$autore = htmlspecialchars($autore);
$testo = htmlspecialchars($testo);
$testo = nl2br($testo);

$data = mktime(0, 0, 0, $_POST['mese'], $_POST['giorno'], $_POST['anno']);
$mydb_obj->db_select();

//Query che si occupa dell'inserimento
$query = "INSERT INTO $mydb_obj->db_name (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";

// effettuo la query
mysql_query($query);

mysql_close($mydb_obj->bd);
foot();
?>
risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Ciao Gianni, innanzitutto ti ringrazio, ho sostituito il codice con quello che mi hai postato ma mi riporta ancora l'errore:

Parse error: parse error, unexpected T_VARIABLE in G:\Programmi\Apache Group\Apache2\htdocs\Test\save.php on line 31

A quanto ho capito c'è una variabile che non va, alla riga 31 c'è la variabile $data = ...... , ho provato a sost. la variabile $data con $date, il risultato è invariato.

risposto 11 anni fa
gohan079
X 0 X

Lo script che ti ho postato non ha errori di sintassi  :dunno: l'ho provato personalmente.

Che editor stai usando? Potrebbe essere la chace del browser?

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Sto usando dreamweaver, cmq devo realizzare un benedetto form che mi consenta di inserire dei dati in un database, non riesco a fare una cosa così semplice o almeno apparentemente semplice. Ti cosa mi consigli, ho scaricato delle guide di php.

risposto 11 anni fa
gohan079
X 0 X

Il problema che hai con quello script è sicuramente una sciocchezza, infatti ricevi un errore di sintassi (parser error)

Prova a fare il compia incolla nel file con il notepad.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

l'errore potrebbe nn essere per forza alla riga 31 infatti php potrebbe darti errore alla 31 mentre il vero errore sta alla 1 o alla 110,sarà stupido??? :crazy: :D

risposto 11 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

alla 1 si, alla 110 no però!

Infatti l'errore può essere in una posizione precedente a quella segnalata nei casi in cui è necessaria una "propagazione" a valle dell'illecito. Non può essere però dopo la riga segnalata perché il PHP non è un veggente  :)

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

ops piccolo errore scusate ! :D

la cosa + fastidiosa è quando dà errore sui tag di PHP es da errore alla riga dove compare solo ?>

risposto 11 anni fa
Andrea Turso
Andrea Turso
86
modificato 11 anni fa
X 0 X
la cosa + fastidiosa è quando dà errore sui tag di PHP es da errore alla riga dove compare solo ?>

capita quando ci si dimentica di chiudere una parentesi graffa o delle virgolette   :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda