• User Attivo •

    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 :mmm:


  • User Attivo •

    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


  • User Attivo •

    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.


  • ModSenior •

    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]


  • User Attivo •

    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?


  • User •

    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";
    }
    }


  • User Attivo •

    Grazie Dreamer far eliminare il form una volta andato a buon fine l'inserimento come posso fare?


  • User Attivo •

    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
    }
    ?>


  • User Attivo •

    Grazie mikslap il tuo codice restituisce quest'errore

    **Parse error**:  syntax error, unexpected $end in **/var/www/insert.php** on line **48**
    

  • User Attivo •

    @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

  • User Attivo •

    mancava una graffa ma ll'inizio avevo messo le sessioni per area privata
    grazie di nuovo.