Errore alla riga 169

Ciao a tutti mi sono appena registrata in questo bel forum

Son arrivata qua tramite un motore di ricerca perchè voglio imparare sto benedetto php.

Ho letto il vostro corso tutto di un fiato  :coolsmiley:

Allora son qua perchè ho un problema con un file php. Vi posto il codice e errore.

L'errore è Parse error: syntax error, unexpected $end in /membri/eternityphp/sito/admin/nuovoarticolo.php on line 169

Il codice è

<p><strong>Creazione di un nuovo articolo/contenuto</strong></p>
<form name="inserisciarticolo" id="inserisciarticolo" method="POST" action="<?php echo
$editFormAction; ?>">
<p>Titolo del contenuto<br />
<input name="contentTitle" type="text" id="contentTitle" size="50" />
</p>
<p>Testo del contenuto<br />
<textarea name="contentText" cols="50" rows="10" id="contentText"></textarea>
</p>
<p>ID della categoria di appartenenza (vedi legenda qui sotto) <br />
<input name="catId" type="text" id="catId" size="10" />
<br />
Legenda degli ID<br />
</p>
<table style="border:1px dashed #FFFFFF">
<tr><td><div align="center"><strong>Categoria</strong></div></td>
<td><div align="center"><strong>ID</strong></div></td>
</tr>
<?php do { ?>
<tr>
<td><div align="center"><?php echo $row_legenda['catName']; ?></div></td>
<td><div align="center"><?php echo $row_legenda['catId']; ?></div></td>
</tr>
<?php } while ($row_legenda = mysql_fetch_assoc($legenda)); ?>
</table>
<p>
<input name="pulsanteinserisci" type="submit" id="pulsanteinserisci" value="Inserisci" />
<input name="pulsantecancella" type="reset" id="pulsantecancella" value="Cancella" />
</p>
<input type="hidden" name="MM_insert" value="inserisciarticolo">
</form>
<p><strong></strong></p>
</div></td>
</tr>
<tr>
<td>Ciao <?php echo $REMOTE_ADDR ?></td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($legenda);
?>

La riga 169 è <?php mysql_free_result($legenda); ?>

Cosa sbaglio?

inviato 10 anni fa
eternity
X 0 X

Il codice che hai riportato non contiene errori di questo tipo  :dunno: riporta interamente il codice dello script.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ecco il codice

<?php require_once('../connessione.php'); ?>
<?php
session_start();
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
session_unregister('MM_Username');
session_unregister('MM_UserGroup');
$logoutGoTo = "../index.php";
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}
}
?>
<?php
session_start();
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
$isValid = False; if (!empty($UserName)) {
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && true) {
$isValid = true;
}
}
return $isValid;
}
$MM_restrictGoTo = "login.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {
$MM_qsChar = "?";
$MM_referrer = $_SERVER['PHP_SELF'];
if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
$MM_referrer .= "?" . $QUERY_STRING;
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
header("Location: ". $MM_restrictGoTo);
exit;
}
?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text";
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "inserisciarticolo")) {
$insertSQL = sprintf("INSERT INTO tblcontent (contentTitle, contentText, catId) VALUES (%s, %s, %s)",
GetSQLValueString($_POST['contentTitle'], "text"),
GetSQLValueString($_POST['contentText'], "text"),
GetSQLValueString($_POST['catId'], "int")); 
mysql_select_db($database_connessione, $connessione);
$Result1 = mysql_query($insertSQL, $connessione) or die(mysql_error());
 $insertGoTo="grazie.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
mysql_select_db($database_connessione, $connessione);
$query_legenda = "SELECT * FROM tblcat ORDER BY catName ASC";
$legenda = mysql_query($query_legenda, $connessione) or die(mysql_error());
$row_legenda = mysql_fetch_assoc($legenda);
$totalRows_legenda = mysql_num_rows($legenda);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>EternityPhp</title>
<link rel="stylesheet" href="../stile.css" />
</head>
<body>
<table border="0" align="center">
<tr>
<td>
<img src="../logo.bmp" alt="Il mio sito web" border="0" />
</td>
</tr>
</table>
<table style="border:1px dashed #FFFFFF" align="center">
<tr valign="middle">
<td width="124" height="24"><div align="center"><a href="<?php echo $logoutAction ?>">Torna al
sito </a></div>
<div align="center"> <a></a></div></td>
</tr>
</table>
<br />
<table style="border:1px dashed #FFFFFF" align="center" width="90%">
<tr>
<td><div align="center">
<p><a href="areariservata.php">Clicca qui per tornare al main frame del pannello di
amministrazione</a></p>
<p><strong>Creazione di un nuovo articolo/contenuto</strong></p>
<form name="inserisciarticolo" id="inserisciarticolo" method="POST" action="<?php echo
$editFormAction; ?>">
<p>Titolo del contenuto<br />
<input name="contentTitle" type="text" id="contentTitle" size="50" />
</p>
<p>Testo del contenuto<br />
<textarea name="contentText" cols="50" rows="10" id="contentText"></textarea>
</p>
<p>ID della categoria di appartenenza (vedi legenda qui sotto) <br />
<input name="catId" type="text" id="catId" size="10" />
<br />
Legenda degli ID<br />
</p>
<table style="border:1px dashed #FFFFFF">
<tr><td><div align="center"><strong>Categoria</strong></div></td>
<td><div align="center"><strong>ID</strong></div></td>
</tr>
<?php do { ?>
<tr>
<td><div align="center"><?php echo $row_legenda['catName']; ?></div></td>
<td><div align="center"><?php echo $row_legenda['catId']; ?></div></td>
</tr>
<?php } while ($row_legenda = mysql_fetch_assoc($legenda)); ?>
</table>
<p>
<input name="pulsanteinserisci" type="submit" id="pulsanteinserisci" value="Inserisci" />
<input name="pulsantecancella" type="reset" id="pulsantecancella" value="Cancella" />
</p>
<input type="hidden" name="MM_insert" value="inserisciarticolo">
</form>
<p><strong></strong></p>
</div></td>
</tr>
<tr>
<td>Ciao <?php echo $REMOTE_ADDR ?></td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($legenda);
?>

Ho sistemato altri errori in altri file ma mi resta sempre questo e in un altro file un nuovo errore che non riesco a risolvere. Spero che con il vostro aiuto ...  :bye:

risposto 10 anni fa
eternity
X 0 X

la quinta riga apre una parentesi graffa che però non viene chiusa.

<?php require_once('../connessione.php'); ?>

<?php

session_start();

$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";

if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){

$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ciao eternity,

l'errore che hai segnalato è probabilmente dato da una parentesi di un if, o di un cilco non chiusa correttamente, per esempio in questa porzione di codice:

if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != ""))
{
$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);

if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true"))
{
  session_unregister('MM_Username');
  session_unregister('MM_UserGroup');
  $logoutGoTo = "../index.php";
  i f ($logoutGoTo) 
   {
    header("Location: $logoutGoTo");
    exit;
   }
}

mi pare che tu non abbia chiuso la graffa di questo if:

if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != ""))

Nel caso mi fossi perso io la sua chiusura chiedo scusa  :P

CMQ occhio perchè, da quanto ho potuto vedere nelle prime righe di codice, hai fatto 2 volte

session_start();

basta uitlizzarla una volta sola e dev'essere la prima istruzione della pagina!

Spero di esserti stato d'aiuto...

ciao

Lore

[EDIT] scusa Gianni, ma stavo scrivendo e non ho visto che avevi già risposto...

risposto 10 anni fa
Lore
Lore
1
modificato 10 anni fa
X 0 X

 :o cavolo  :o ora funzia  :smitten: grazie mille.

Ora però mi resta solo un errore in un nuovo file. Posto qua il codice?si dai lo posto qua  ???

L'errore è Parse error: syntax error, unexpected T_IF in /membri/eternityphp/sito/admin/modarticolo.php on line 31

Vi posto tutta la pagina

<?php require_once('../connessione.php'); ?>
<?php
//initialize the session
session_start();
// ** Logout the current user. **
$logoutAction = $_SERVER['PHP_SELF']."?doLogout=true";
if ((isset($_SERVER['QUERY_STRING'])) && ($_SERVER['QUERY_STRING'] != "")){
$logoutAction .="&". htmlentities($_SERVER['QUERY_STRING']);}
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
//to fully log out a visitor we need to clear the session varialbles
session_unregister('MM_Username');
session_unregister('MM_UserGroup');
$logoutGoTo = "../index.php";
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}
}
?>
<?php
session_start();
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";
// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
// For security, start by assuming the visitor is NOT authorized.
$isValid = False;
// When a visitor has logged into this site, the Session variable MM_Username set equal to their
username.
// Therefore, we know that a user is NOT logged in if that Session variable is blank.
if (!empty($UserName)) {
// Besides being logged in, you may restrict access to only certain users based on an ID
established when they login.
// Parse the strings into arrays.
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
// Or, you may restrict access to only certain users based on their username.
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && true) {
$isValid = true;
}
}
return $isValid;
}
$MM_restrictGoTo = "errore.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers,
$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {
$MM_qsChar = "?";
$MM_referrer = $_SERVER['PHP_SELF'];
if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
$MM_referrer .= "?" . $QUERY_STRING;
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
header("Location: ". $MM_restrictGoTo);
exit;
}
?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "modificarticolo")) {
$updateSQL = sprintf("UPDATE tblcontent SET contentTitle=%s, contentText=%s, catId=%s WHERE
contentId=%s",
GetSQLValueString($_POST['contentTitle'], "text"),
GetSQLValueString($_POST['contentText'], "text"),
GetSQLValueString($_POST['catId'], "int"),
GetSQLValueString($_POST['contentId'], "int"));
mysql_select_db($database_connessione, $connessione);
$Result1 = mysql_query($updateSQL, $connessione) or die(mysql_error());
$updateGoTo = "grazie.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}
mysql_select_db($database_connessione, $connessione);
$query_legenda = "SELECT * FROM tblcat ORDER BY catName ASC";
$legenda = mysql_query($query_legenda, $connessione) or die(mysql_error());
$row_legenda = mysql_fetch_assoc($legenda);
$totalRows_legenda = mysql_num_rows($legenda);
$colname_mostrarticolo = "1";
if (isset($_GET['contentId'])) {
$colname_mostrarticolo = (get_magic_quotes_gpc()) ? $_GET['contentId'] :
addslashes($_GET['contentId']);
}
mysql_select_db($database_connessione, $connessione);
$query_mostrarticolo = sprintf("SELECT * FROM tblcontent WHERE contentId = %s",
$colname_mostrarticolo);
$mostrarticolo = mysql_query($query_mostrarticolo, $connessione) or die(mysql_error());
$row_mostrarticolo = mysql_fetch_assoc($mostrarticolo);
$totalRows_mostrarticolo = mysql_num_rows($mostrarticolo);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>EternityPhp</title>
<link rel="stylesheet" href="../stile.css" />
</head>
<body>
<table border="0" align="center">
<tr>
<td>
<img src="../logo.bmp" alt="Il mio sito web" border="0" />
</td>
</tr>
</table>
<table style="border:1px dashed #FFFFFF" align="center">
<tr valign="middle">
<td width="124" height="24"><div align="center"><a href="<?php echo $logoutAction ?>">Torna al
sito </a></div>
<div align="center"> <a></a></div></td>
</tr>
</table>
<br />
<table style="border:1px dashed #FFFFFF" align="center" width="90%">
<tr>
<td><div align="center">
<p><a href="areariservata.php">Clicca qui per tornare al main frame del pannello di
amministrazione</a></p>
<p><a href="modificaarticoli.php">Clicca qui per tornare all'elenco degli articoli
modificabili</a> </p>
<p><strong>Modifica di un articolo/contenuto </strong></p>
<form name="modificarticolo" id="modificarticolo" method="POST" action="<?php echo
$editFormAction; ?>">
<p>Titolo del contenuto<br />
<input name="contentTitle" type="text" id="contentTitle" value="<?php echo
$row_mostrarticolo['contentTitle']; ?>" size="50" />
</p>
<p>Testo del contenuto<br />
<textarea name="contentText" cols="50" rows="10" id="contentText"><?php echo
$row_mostrarticolo['contentText']; ?></textarea>
</p>
<p>ID della categoria di appartenenza (vedi legenda qui sotto) <br />
<input name="catId" type="text" id="catId" value="<?php echo $row_mostrarticolo['catId'];
?>" size="10" />
<br />
Legenda degli ID<br />
</p>
<table style="border:1px dashed #FFFFFF">
<tr><td><div align="center"><strong>Categoria</strong></div></td>
<td><div align="center"><strong>ID</strong></div></td>
</tr>
<?php do { ?>
<tr>
<td><div align="center"><?php echo $row_legenda['catName']; ?></div></td>
<td><div align="center"><?php echo $row_legenda['catId']; ?></div></td>
</tr>
<?php } while ($row_legenda = mysql_fetch_assoc($legenda)); ?>
</table>
<p>
<input name="contentId" type="hidden" id="contentId" value="<?php echo
$row_mostrarticolo['contentId']; ?>" />
<input name="pulsanteinserisci" type="submit" id="pulsanteinserisci" value="Modifica" />
<input name="pulsantecancella" type="reset" id="pulsantecancella" value="Cancella" />
</p>
<input type="hidden" name="MM_update" value="modificarticolo">
</form>
<p><strong></strong></p>
</div></td>
</tr>
<tr>
<td>Ciao <?php echo $REMOTE_ADDR ?></td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($legenda);
mysql_free_result($mostrarticolo);
?>
risposto 10 anni fa
eternity
X 0 X

CMQ occhio perchè, da quanto ho potuto vedere nelle prime righe di codice, hai fatto 2 volte

session_start();

basta uitlizzarla una volta sola e dev'essere la prima istruzione della pagina!

Spero di esserti stato d'aiuto...

ciao

Lore

[EDIT] scusa Gianni, ma stavo scrivendo e non ho visto che avevi già risposto...

Grazie mille Lore  :smitten:

risposto 10 anni fa
eternity
X 0 X

sono i commenti al codice che "non rimangono commentati"

/* When a visitor has logged into this site, the Session variable MM_Username set equal to their
username.*/
// Therefore, we know that a user is NOT logged in if that Session variable is blank.
if (!empty($UserName)) {
/* Besides being logged in, you may restrict access to only certain users based on an ID established when they login.*/

prova a cambiare il tuo pezzo di codice con questo...

Il problema è ceh utilizzando // per commentare, commenta solo una riga per volta e se il testo va a capo, questo ( quello a capo), non essendo commentato viene interpretato da php che non lo riconosce...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

Nulla mi da sempre l'errore..

risposto 10 anni fa
eternity
X 0 X

Scusatemi l'errore può essere sempre di una stringa aperta ma non chiusa con una parentesi graffa?

risposto 10 anni fa
eternity
X 0 X

Nel caso non chiudessi un IF avresti un errore del genere:

"Parse error: parse error, unexpected $end"

[Scusatemi l'errore può essere sempre di una stringa aperta ma non chiusa con una parentesi graffa?

Le stringhe non si chiudono con le graffe, ma sono racchiuse tra doppi apici

$str = "ciao"; ]

Questo:

L'errore è Parse error: syntax error, unexpected T_IF in /membri/eternityphp/sito/admin/modarticolo.php on line 31

dovrebbe essere dovuto a qaunto ti ho detto prima...

(ma è sempre alla riga 31 l'errore?)

Prova a controllare anche gli altri commenti...

Ti faccio un esempio

//Commento 
su più righe

coì non è corretto, erchè utilizzi il costrutto per il commento su una riga applicandolo a più righe, dovrebbe essere

/*
commento
su 
più
righe
*/

prova a controllare all'interno del tuo script di aver utilizzato il costrutto corretto a seconda del numero di righe di commento ...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

Pardon, faccio una piccola aggiunta a quello detto prima sulle stringhe, o meglio, ti posto il link della documentazione ufficiale dui php.net:

http://www.php.net/manual/it/ref.strings.php

risposto 10 anni fa
Lore
Lore
1
X 0 X

 O0

risposto 10 anni fa
eternity
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda