- Home
- Categorie
- Coding e Sistemistica
- PHP
- Parse Error
-
Parse Error
salve vorrei un aiuto per uno script di un guestbook che ho reperito in rete ma quando lo provo va in parse error, non trovo il problema.
La riga incriminata è quella in rosso e lo script stà i tag body:<?php
// modificate il nome di questo file solo se lo avete salvato con un nome diverso
include ("config.inc.php");
// Includo la connessione al database
require('config.php');
or die( "Impossibile collegarsi al database");
mysql_select_db( "$db_name") or die( "Impossibile selezionare il database");
$numresults = mysql_query("SELECT name, date, email, comment FROM guestbook");
$numrows = mysql_num_rows($numresults)
or die ("query 1 failed");if (empty($offset)) {
$offset=0;
}
$query = "SELECT name, date, email, comment FROM guestbook order by date DESC limit $offset,$limit";
$result = mysql_query ($query)
or die ("query 2 failed");while ($row = mysql_fetch_row ($result))
{
for ($i = 0; $i < mysql_num_fields ($result); $i++)
{
if ($i > 0)
print ("<br>");
if ($i == 0){
print "<b>Nome: </b>";
}
else if ($i == 1){
print "<b>Data: </b>";
}
else if ($i == 2){
print "<b>Email: </b>";
}
else{
print "<b>Commento:</b><br>";
}print ($row*); }
print "<br><br><center><hr></center>";
print ("<P>");
}
if ($offset >= 3) {
$prevoffset = $offset - $limit;
print "<a h..f="Guestbook\guest.php?offset=$prevoffset">PREV</a> \n";
}
$pages=intval($numrows/$limit);
if ($pages < ($numrows/$limit)){
$pages=($pages + 1);
}
for ($i = 1; $i <= $pages; $i++) {
$newoffset = $limit*($i-1);
if ($newoffset == $offset) {
print "$i \n";
} else {
print "<a h..f="Guestbook\guest.php?offset=$newoffset">$i</a> \n";
}
}
// visualizza il link alla pagina successiva solo se non è l'ultima pagina
if (! ( ($offset/$limit) == ($pages - 1) ) && ($pages != 1) ) {
$newoffset = $offset+$limit;
print "<a h..f="Guestbook\guest.php?offset=$newoffset">NEXT</a><p>\n";
}
?>Se avete la possibilità di controllare tutto lo script se ci sono altri errori, visto che sono veramente negato con il php, grazie.
-
Ciao arkom,
non è detto che l'errore sia prorpio ì, spesso lo trovi anche nella riga precedente...Io vedo a mio avviso questo:
**require('config.php');
or die( "Impossibile collegarsi al database"); **che scriverei come:
**require('config.php') or die( "Impossibile collegarsi al database");
**Nelle righe da te evidenziate non vedo alcun errore formale...
Prova lacorrezione che ti ho indicato e facci sapere.
**
**
-
Ciao Ceccus, forse hai ragione, ma adesso noto anche un'altra curiosità nel codice ossia questo:
include ("config.inc.php"); <= qua abbiamo un apice doppio
// Includo la connessione al database
require('config.php'); <= qua invece singoli apici, oltre al punto e virgola che mi hai segnalato
or die( "Impossibile collegarsi al database");
mysql_select_db( "$db_name") or die( "Impossibile selezionare il database");Potrebbe essere questo l'errore? Tieni conto che require('config.php'); e già incluso in altre pagine e funzionano benissimo per le fasi di registrazione e login. Questa stringa non faceva parte dello script iniziale del tutorial, ma l'ho sostituito per comodità con l'altro script che era più lungo e prevedeva il collegamento al DB che era questo:
// connessione al database
// sostituite localhost con il nome dell'host dove risiede il vostro database
mysql_pconnect( "localhost", "$username", "$password")
or die( "Impossibile collegarsi al database");Per adesso ti ringrazio
-
No, in questo caso apice doppio o singolo non fa alcuna differenza.
Prova togliendo il punto e virgola e posta qui l'eventuale errore...
-
per adesso grazie Ceccus, provo e ti faccio sapere.
-
Olla Ceccus ho provato ma forse ci sono altri problemi. Ho prelevato gli script originari per testarli in locale e mi dà un Undefined Variable on line 6 (segnalato in rosso) nella pagina guestbook.php ecco il codice:
(NB:se modifico qualcosa nello script poi mi da un errore anche nella parte verde dello script)<?php
// modificate il nome di questo file solo se lo avete salvato con un nome diverso
include ("config.inc.php");
// controlliamo che la form sia stata riempita prima di inviarla
if (($name == "") AND ($email == "") AND ($comments == "")):
// Questo è il messaggio di errore visualizzato...
$error1 = "<font face='Arial' color='Red'><STRONG>E' necessario inserire tutti i dati richiesti:</STRONG></font><br><br>";include($PostPage);
else:
if ($allowHTML == 0):
$name = ereg_replace("<","<",$name);
$name = ereg_replace(">",">",$name);
$email = ereg_replace("<","<",$email);
$email = ereg_replace(">",">",$email);
$url = ereg_replace("<","<",$url);
$url = ereg_replace(">",">",$url);
$urltitle = ereg_replace("<","<",$urltitle);
$urltitle = ereg_replace(">",">",$urltitle);
$referral = ereg_replace("<","<",$referral);
$referral = ereg_replace(">",">",$referral);
$comments = ereg_replace("<","<",$comments);
$comments = ereg_replace(">",">",$comments);
endif;
// connessione al database
// sostituite localhost con il nome dell'host dove risiede il vostro database
$mysql_link = mysql_pconnect( "localhost", "$username", "$password")
or die( "Impossibile collegarsi al server");
mysql_select_db( "$db_name") or die( "Impossibile selezionare il database");
$insert = "INSERT INTO guestbook(name, date, email, comment) VALUES('$name', SYSDATE(), '$email', '$comments')";
$mysql_insert = mysql_query($insert, $mysql_link)
or die("Avvisate $my_email che lo script non ha inserito questi dati nel database <BR><BR>$name,<br>$email,<br>$comments<br><br>$insert");
// Invia la mail di notifica per il nuovo messaggio inserito nel guestbook
if ($notify == 1):
$comments = ereg_replace("<BR>","\n",$comments);
mail
(
"$my_email",
"Nuovo messaggio nel guestbook",
"Nome : $name
Email : $email
Note:
$comments\n
",
"Inviato Da: $email\n"
);
endif;
// controlla che non siano presenti messaggi uguali
$name_chk = $name;
$email_chk = $email;
$comments_chk = $comments;
include($gbPage);
endif;
?>
-
Ciao arkom,
Questo script funziona solo con le register_globals ON da quello che vedo, e la maggior parte degli hosting ormai le ha impostate OFF. Qui trovi qualche informazione utile sulla direttiva register_globals.
Gli errori devi sempre incollarli cosi come sono, altrimenti non possiamo capire niente, e per postare il codice php usare i bbcode in modo da essere più leggibili :).
-
...e occhio alla linea 6, che termina con i due punti...
-
Ok TheDarkita, non mi conviene allora questo script visto che ci sono anche problemi di sicurezza. Niente register_globals su on, troppo vulnerabile da quello che ho capito.
Ma per capirci qualcosa come si riconosce uno script che ha bisogno di abilitare o meno il register_globals?Comunque cerco un'altro script più sicuro per il guesbook.
[html]
Ah poi non sapevo del bbcode ( sapevo manco cosa era !!!:bho:) ma adesso o visto la modalità avanzato e per la prossima volta provvedo come qua
[/html]Grazie anche a Ceccus!
-
Si riconosce da come vengono richiamate le variabili globali($_POST, $_GET, $_SESSION).