- Home
- Categorie
- Coding e Sistemistica
- PHP
- Sto imparando il php
-
Sto imparando il php
Buonasera Sto realizzando il backend di un sito ho questo codice php che è di un area privata e serve per inserire solo il titolo della news, esce un errore del genere
**Parse error**: syntax error, unexpected T_ELSEIF in **/var/www/italydelight/insert.php** on line **31**
il codice è questo e la linea 32 è quella in rosso
<?php include ("conf.inc.php"); if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['user'])) { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Nuova News</title> </head> <body> <form action="<?php echo $PHP_SELF; ?> method="post" > <h3>Inserisci il titolo </h3> <input type="text" name="titolo" > <br /> <input type="submit" value="invia" > </form> <?php if(!empty($_POST['titolo'])) { $titolo = mysql_real_escape_string($_POST['titolo']); $insert_title="INSERT INTO temp_news (titolo) VALUES ('$titolo')"; $insert = mysql_query($insert_title); if($insert) { echo "Titolo Inserito "; echo "<a href=\"insert-time.php\">Tempistica</a>"; }else { echo "Inserimento non riuscito<a href\"insert.php\">Riprova<\a>"; }else { echo "inserisci il titolo"; } } } else{ echo "<meta http-equiv='refresh' content='=2;login.php' />"; } ?> </body> </html>
Vorrei capire dove sbaglio.
Saluti
-
Così come chiuse le parentesi graffe stanno ad indicare che manca un altro controllo ossia else if ().
Se mi dice quali sono le tue intenzioni potrò aiutarti.
CIAO
-
Allora la mia logica era :
se la sessione loggedin e la sessione user non sono vuote
restituisci il form per inserimento news.
Se il campo form titolo non è vuoto filtra e inserisci nel database.
Se la query è andata a buon fine mostra prossimo step altrimenti riprova.
L'errore me lo da in questo momento dove io vorrei dare l'alternativa a se il campo form è vuoto
e l'else secondo dovrebbe essere la continuazione se le sessioni loggedin e user sono vuote.
-
Ciao Mas245,
Hai messo 2 else, quindi la sintassi è errata, prova ad aggiungere l'elseif invece dell'else.
[php]
if($insert)
{
echo "Titolo Inserito ";
echo "<a href="insert-time.php">Tempistica</a>";
}elseif(inserimento non riuscito)
{
echo "Inserimento non riuscito<a href"insert.php">Riprova<\a>";
}else
{
echo "inserisci il titolo";
}[/php]
-
Grazie Thedarkita ho seguito il tuo consiglio ed ho modificato così
if(!empty($_POST['titolo'])) { $titolo = mysql_real_escape_string($_POST['titolo']); $insert_title="INSERT INTO temp_news (titolo) VALUES ('$titolo')"; $insert = mysql_query($insert_title); if($insert) { echo "Titolo Inserito "; echo "<a href=\"insert-time.php\">Tempistica</a>"; }elseif($insert){ echo "Inserimento non riuscito<a href\"insert.php\">Riprova<\a>"; } else{ echo "inserisci il titolo"; } } } else{ echo "<meta http-equiv='refresh' content='=2;login.php' />"; } ?>
però se non inserisci il titolo non esce echo "inserisci il titolo"
se invece và a buon fine esce titolo inserito ma fa vedere ancora il form di inserimento.
Come posso ovviare a questo?
-
if(!empty($_POST['titolo']))
{
$titolo = mysql_real_escape_string($_POST['titolo']);
$insert_title="INSERT INTO temp_news (titolo) VALUES ('$titolo')";
$insert = mysql_query($insert_title);
if($insert)
{
echo "Titolo Inserito ";
echo "<a href="insert-time.php">Tempistica</a>";
}else{echo "Inserimento non riuscito<a href\"insert.php\">Riprova<\a>"; }
}
else{
echo "inserisci il titolo";
}
}
-
Grazie Dreamer far eliminare il form una volta andato a buon fine l'inserimento come posso fare?
-
Innanzitutto devi controllare se dal form viene premuto il bottone **submit **per poi passare agli altri controlli:
1 - **if (isset($_POST['submit'])) **// controllo se premo bottone invia
2 - **if ((!$_POST['titolo']) || ($_POST['titolo'] == "")) **// controllo che sia inserito un titolo**if (isset($_POST['submit'])) **
{
** if ((!$_POST['titolo']) || ($_POST['titolo'] == "")) **
{
echo "E' obbligatorio scrivere il titolo (con un link INDIETRO)";
}
else
{
$titolo = mysql_real_escape_string($_POST['titolo']);
$insert_title="INSERT INTO temp_news (titolo) VALUES ('$titolo')";
$insert = mysql_query($insert_title);
if ($insert)
{
echo "Titolo Inserito ";
echo "<a href="insert-time.php">Tempistica</a>";
}
else
{
echo "Inserimento non riuscito<a href"insert.php">Riprova<\a>";
}
}
}
else
{
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?> method="post" >
<h3>Inserisci il titolo </h3>
<input type="text" name="titolo" >
<br />
<input type="submit" value="invia" >
</form>
<?php
}
?>
-
Grazie mikslap il tuo codice restituisce quest'errore
**Parse error**: syntax error, unexpected $end in **/var/www/insert.php** on line **48**
-
@Mas245 said:
Grazie mikslap il tuo codice restituisce quest'errore
>**Parse error**: syntax error, unexpected $end in **/var/www/insert.php** on line **48** >``` Puoi quotarmi il codice per intero, così comè, e magari la linea dell'errore la metti in grassetto? Spero che in quel config.inc.php ci sia il necessario per la connessione perchè ti garantisco funziona alla perfezione
-
mancava una graffa ma ll'inizio avevo messo le sessioni per area privata
grazie di nuovo.