-
Errore query
Salve a tutti. Devo inserire dati nel mio db, ma ricevo questo avviso di errore:
Parse error: syntax error, unexpected $end in /membri/xxx/input.php on line 23
Non riesco a trovare l'errore (la linea 23 è l'ultima, quella di chiusura del codice php).
Sotto il codice usato. Qualcuno sa dirmi perchè ? Grazie
Codice PHP:
<?php
// Qui sotto inserite il nome del DB
$database = "my_XXX";
mysql_select_db($database) or die("Errore durante la selezione del database");
$query = "INSERT INTO SalaStudio (cognome, nome, tipoDoc, nDoc, rilasciato, da, luogo) VALUES ('$cognome', '$nome', '$tipoDoc','$nDoc','$rilasciato','$da','$luogo')";
// lancio la query
if (mysql_query ($query))
// controllo l'esito
if (!$result) {
die("Dati non inseriti :-( Errore nella query $query: " . mysql_error());
// chiudo la connessione a MySQL
mysql_close();
echo 'Query eseguita correttamente';
?>
-
Ho risolto l'errore di inserimento dati.
Adesso vorrei che oltre uscirmi 'Query eseguita corretamente', l'utente fosse reindirizzato nella pagina di inserimento.
Come posso fare ? Grazie
-
Codice PHP:
header("location: PAGINA CHE VUOI TU");
-
Grazie, naviland. Funziona.
Come potrei fare per aggiungere anche la scritta nella PAGINA CHE VUOI TU che informa sull'operazione andata a buon fine ? Cioè il messaggio come c'era prima 'Query eseguita correttamente' ?
-
Se intendi stampare la scritta in questa pagina e poi dirottare l'utente non puoi.
Se fai l'output della scritta non puoi inviare poi l'header per il redirect (gli header prima di tutto) se invece invii l'header non visualizzeresti la scritta.
Puoi inserire il messaggio nell'altra pagina in questo caso dipende puoi inserirlo come semplice html oppure tramite php con echo, print, etc.
Hai anche un altra possibilità al termine della query stampi la scritta "query eseguita" e utilizzi javascript per effettuare un redirect dopo X secondi.
-
Grazie ancora per il supporto. Molto chiaro.
Quello che intendo dire è mettere il messaggio nella pagina del form, non in quella di inserimento dati, come hai intuito tu.
In pratica dalla pagina del form, spedisco i dati nel file di inserimento per il database. Però da questo file devo tornare poi indietro nella pagina del sito (per questo cercavo il modo di reindirizzare), ma a questo punto devo anche confermare dell'avvenuto passaggio dati.
Altrimenti compare solo il form ri-pulito, senza avvisi e potrebbe lasciare nel dubbio su quello che è successo.
Stavo pensando, ma forse dico una cavolata, potrei inizializzare una variabile prima dell'inserimento dati nella pagina del reindirizzamento e recupererla nella pagina del form (quella dove reindirizzo) ? In questo modo se la variabile è valorizzata, faccio comparire il messaggio di avvenuto inserimento e poi riazzero la variabile stessa.
Spero di essermi spiegato. Grazie di ogni indicazione.
-
Adesso ho capito bene cosa vuoi fare.
Facendo tutto con PHP mi vengono in mente due possibilità:
1)
Utilizzo della "variabile" come hai detto tu però non può essere in realtà una variabile non puoi condividerle tra due esecuzioni diverse, deve essere un parametro via GET ex: form.php?msg=true in questo modo nella pagina form leggi il valore di $_GET['msg'] se è definito stampi il messaggio se no niente.
In questo caso si tratta di un semplice messaggio non è un problema ma in generale non affidare mai passaggi di valori sensibili a get in quanto sono facilmente alterabili.
2)
In questo caso la pagina del form e la pagina che lo processa sono la stessa.
In cima allo script ci sarà la parte che elabora il form che verrà utilizzata solo se sono presenti dei dati Post del form, se non ci sono stampi il form.
Se invece il form è stato inviato lo elabori stampi il messaggio e stampi il form.
La prima soluzione è più semplice, la seconda un pò meno ma ti permette di dare anche messaggi di errore pertinenti tipo "non hai compilato il campo email" ristampando il form con già i valori che aveva inserito l'utente senza che lo debba riscrivere tutto.
-
Grazie. Proverò come suggerisci al punto 2.
Poi ti farò sapere e se avrò degli intoppi spero di trovare ancora aiuti.
Grazie ancora. Ciao