Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 06-01-09, 02:11   #1 (permalink)
 
L'avatar di Mas245
 
Data di registrazione: Aug 2006
Ubicazione: Riccione
Messaggi: 184
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
Codice:
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
Codice:
<?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
Mas245 non in linea   Rispondi citando
Vecchio 06-01-09, 10:27   #2 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 287
Invia un messaggio tramite Skype a mikslap
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
mikslap non in linea   Rispondi citando
Vecchio 06-01-09, 10:52   #3 (permalink)
 
L'avatar di Mas245
 
Data di registrazione: Aug 2006
Ubicazione: Riccione
Messaggi: 184
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.
Mas245 non in linea   Rispondi citando
Vecchio 06-01-09, 12:04   #4 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Ciao Mas245,

Hai messo 2 else, quindi la sintassi è errata, prova ad aggiungere l'elseif invece dell'else.

Codice 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";
    } 
Thedarkita ora è in linea   Rispondi citando
Vecchio 06-01-09, 13:14   #5 (permalink)
 
L'avatar di Mas245
 
Data di registrazione: Aug 2006
Ubicazione: Riccione
Messaggi: 184
Grazie Thedarkita ho seguito il tuo consiglio ed ho modificato così
Codice:
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?
Mas245 non in linea   Rispondi citando
Vecchio 06-01-09, 13:43   #6 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 38
Invia un messaggio tramite MSN a Dreamer
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";
}
}
Dreamer non in linea   Rispondi citando
Vecchio 06-01-09, 14:13   #7 (permalink)
 
L'avatar di Mas245
 
Data di registrazione: Aug 2006
Ubicazione: Riccione
Messaggi: 184
Grazie Dreamer far eliminare il form una volta andato a buon fine l'inserimento come posso fare?
Mas245 non in linea   Rispondi citando
Vecchio 06-01-09, 17:01   #8 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 287
Invia un messaggio tramite Skype a mikslap
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
}
?>
mikslap non in linea   Rispondi citando
Vecchio 06-01-09, 19:51   #9 (permalink)
 
L'avatar di Mas245
 
Data di registrazione: Aug 2006
Ubicazione: Riccione
Messaggi: 184
Grazie mikslap il tuo codice restituisce quest'errore

Codice:
Parse error:  syntax error, unexpected $end in /var/www/insert.php on line 48
Mas245 non in linea   Rispondi citando
Vecchio 07-01-09, 10:19   #10 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 287
Invia un messaggio tramite Skype a mikslap
Quote:
Mas245 Visualizza il messaggio
Grazie mikslap il tuo codice restituisce quest'errore

Codice:
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
mikslap non in linea   Rispondi citando
Vecchio 07-01-09, 13:17   #11 (permalink)
 
L'avatar di Mas245
 
Data di registrazione: Aug 2006
Ubicazione: Riccione
Messaggi: 184
mancava una graffa ma ll'inizio avevo messo le sessioni per area privata
grazie di nuovo.
Mas245 non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:19.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.