[PHP] Parse error: syntax error, unexpected variabile (T_VARIABLE)

username90

Nuovo Utente
27 Ott 2016
29
0
1
33
Ciao a tutti, spero di non sbagliare sezione del post e regole...sto facendo un progetto per l'uni, ma ho dei problemi quando scrivo gli script php. Il mio codice, salvato nel file inserisci_ricetta.php, è il seguente (avrei voluto metterlo usando gli appositi tag ma non sono stata capace, chiedo scusa in anticipo per questa cosa):
PHP:
<body>
    <h2>SEZIONE UTENTE</h2>
    <a><img src="img/utente.jpg" width="10%" height="10%"></a><br>
    <?PHP include "menu.inc.php";
    $tipo=$_GET["tipologia"];
    $titolo=$_GET["titolo"];
    $prep=$_GET["preparazione"];
    $diff=$_GET["difficolta'"];
    $cottura=$_GET["cottura"];
    $porzioni=$_GET["porzioni"];
    $cal=$_GET["porzioni"];
    $not=$_GET["note"];
  
    include "database.inc.php";
    $query="INSERT INTO ricetta (tipologia, titolo, preparazione, difficolta', cottura, porzioni, calorie, note)
            VALUES ("$tipo", "$titolo", "$prep", "$diff", "$cottura", "$porzioni", "$cal", "$not")";
    mysql_query($query) or die ("Query fallita: ".mysql_error());
    echo "<br><br><strong>INSERIMENTO AVVENUTO CON SUCCESSO</strong><br><br>";
    mysql_close($connessione);
    ?>
  
</body>
nel file menu.inc.php ci sono solo tre link nell'apposito hashtag <a></a>, nel file database.inc.php invece ho specificato come connettersi al mio database tramite la funzione mysql_connect. Quando vado a testare dal web la pagina inserisci_ricetta.php mi appare il seguente errore "Parse error: syntax error, unexpected '$tipo' (T_VARIABLE) in C:\xampp\htdocs\www\rivista\inserisci_ricetta.php on line 27". Dove sbaglio e soprattutto cosa? a me sembra corretto, ho preso spunto da un file trovato online per scrivere questo codice.
 
Ultima modifica di un moderatore:

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
Ciao,
PHP:
$query="INSERT INTO ricetta (tipologia, titolo, preparazione, difficolta', cottura, porzioni, calorie, note)
VALUES ("$tipo", "$titolo", "$prep", "$diff", "$cottura", "$porzioni", "$cal", "$not")";

Prova a togliere le variabili dalle virgolette, in questo modo:
PHP:
$query="INSERT INTO ricetta (tipologia, titolo, preparazione, difficolta', cottura, porzioni, calorie, note)
VALUES ($tipo, $titolo, $prep, $diff, $cottura, $porzioni, $cal, $not)";

Per postare il codice ti basta cliccare sulla quartultima icona presente nella barra superiore dell'editor (quella a sinistra del floppy) e selezionare "Codice" e successivamente PHP, inserendo il relativo codice.
 

username90

Nuovo Utente
27 Ott 2016
29
0
1
33
Grazie per avermi risposto. Allora ho corretto come mi hai detto tu ed effettivamente quell'errore di prima ora non c'è più, ma ce ne sono altri:
Notice: Undefined index: titolo in C:\xampp\htdocs\www\rivista\inserisci_ricetta.php on line 17

Notice: Undefined index: difficolta' in C:\xampp\htdocs\www\rivista\inserisci_ricetta.php on line 19

Warning: mysql_connect(): Access denied for user 'muzzo'@'localhost' (using password: YES) in C:\xampp\htdocs\www\rivista\database.inc.php on line 3
Conessione non riuscita: Access denied for user 'muzzo'@'localhost' (using password: YES)

muzzo è lo user del db che ho inserito nel file database.inc.php che è così scritto:
<?PHP
$connessione=mysql_connect("localhost", "muzzo", "mypwd") or die ("Conessione non riuscita: ".mysql_error());

mysql_select_db("dbprova") or die ("Selezione database non avvenuta");
?>
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
• Cambia i salvataggi del GET in questo modo
PHP:
$tipo=isset($_GET["tipologia"]) ? $_GET["tipologia"] : "";
$titolo=isset($_GET["titolo"]) ? $_GET["titolo"] : "";
// e tutte le altre variabili allo stesso modo

• Togli l'apostrofo a difficolta'.

Controlla che le credenziali per la connessione al db siano corrette.
 
  • Like
Reactions: username90

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
Notice: Undefined index: titolo in C:\xampp\htdocs\www\rivista\inserisci_ricetta.php on line 17
probabilmente hai scritto male "titolo" nella url che hai usato per chiamare lo script
il suggerimento che ti hanno già dato, non risolve il problema ma impedisce che l'informazione sia scritta nel db

Notice: Undefined index: difficolta' in C:\xampp\htdocs\www\rivista\inserisci_ricetta.php on line 19
idem come sopra, ma non usare mai caratteri speciali e spazi nei nomi degli oggetti, é un "volersi fare del male"

Conessione non riuscita: Access denied for user 'muzzo'@'localhost' (using password: YES)
l'utente che hai usato per accedere al db non ha le autorizzazioni necessarie, oltre a creare l'utente, devi dare le necessarie autorizzazioni,
non conosco mysql, ma vedi se, "GRANT SELECT ON nometabella TO PUBLIC" da ripetere con insert, update, delete e alter, è sufficiente a risolvere il problema
puoi provare la connessione con utente "root" probabilmente senza password

prossimo errore previsto,
$query="INSERT INTO ricetta (tipologia, titolo, preparazione, difficolta, cottura, porzioni, calorie, note)
VALUES ($tipo, $titolo, $prep, $diff, $cottura, $porzioni, $cal, $not)";
difficolta non accentata,
tutti i valori alfanumerici (es titolo) devono essere scritti tra apici
...., $titolo,......
...., '".$titolo."',.....
so che richiede attenzione e annoia, ma gli apici sono obbligatori
per chiarezza
virgola apice virgolette punto $titolo punto virgolette apice virgola
 
  • Like
Reactions: username90

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
probabilmente hai scritto male "titolo" nella url che hai usato per chiamare lo script
il suggerimento che ti hanno già dato, non risolve il problema ma impedisce che l'informazione sia scritta nel db

Il suggerimento mira ad accertare che esista effettivamente l'indice "titolo" (e tutti gli altri) all'interno di $_GET, prima di andare a salvare quel valore in una variabile. Quindi se nell'url non viene passato il valore per titolo, allora in $_GET non sarà presente l'indice titolo e, quando viene richiamato in quel modo, PHP ti restituisce la Notice: undefined index.

Inoltre, non impedisce affatto la scrittura in tabella, semplicemente attribuisce alla variabile in questione una stringa vuota, poiché, per ipotesi, non viene passato il parametro.

Poi, potrebbe anche essere un problema di incongruenza tra il name dell'input e l'indice di $_GET, ma è un altro discorso.

Dunque, prima di dire che una soluzione non risolve il problema, cerchiamo prima di individuare il problema.
 

username90

Nuovo Utente
27 Ott 2016
29
0
1
33
allora i problemi sugli indici li ho risolti in questo modo: difficolta sbagliavo a mettere l'apostrofo come entrambi mi avevate fatto notare, per titolo c'era incongruenza tra il name dell'input e l'indice di $_GET (che poi ho cambiato con $_POST). L'unico problema rimasto che sto cercando di risolvere è quello legate alle credenziali. Ho provato come utente "root" e password "" e quando compila mi dice Selezione database non avvenuta, perchè io nel file di configurazione avevo messo quest'istruzione mysql_select_db("dbprova") or die ("Selezione database non avvenuta");
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
il modo corretto per scrivere la query (presupponendo che le variabili siano tutte tipo stringa)
PHP:
$query="INSERT INTO ricetta (tipologia, titolo, preparazione, difficolta, cottura, porzioni, calorie, note)
VALUES ('$tipo', '$titolo', '$prep', '$diff', '$cottura', '$porzioni', $cal, '$not')";
se una variabile è tipo intero gli apici non ci vogliono es se calorie è un intero

per la stringa vuota attenzione: se il campo è settato a not null è facile che la query non avvenga e senza riportare errori
 
Discussioni simili
Autore Titolo Forum Risposte Data
T [PHP] ...Parse error che non c'è... PHP 7
G [WordPress] [PHP] Parse error: syntax error, unexpected '$x332cbce1' WordPress 2
N [PHP] problema Parse error in file configurazione PHP 3
F Aiuto PHP : Parse error PHP 1
H Parse error: syntax error, unexpected T_SL in /membri/sito/pagina.php... PHP 2
neo996sps Non riesco a fare un parse XML con PHP PHP 1
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7

Discussioni simili