Visualizzazione risultati 1 fino 10 di 10
Like Tree1Likes
  • 1 Post By mzanella

Discussione: Parse error: syntax error, unexpected 'error_reporting' (T_STRING)

  1. #1
    honeyecompost non è connesso Utente giovane
    Data registrazione
    21-09-2020
    Messaggi
    39

    Predefinito Parse error: syntax error, unexpected 'error_reporting' (T_STRING)

    Ciao a tutti, ho un nuovo problema che non riesco a risolvere:
    ho una pagina .php che contiene i dati per la connessione al db, che effettua anche la connessione
    Codice PHP:
    $host = "localhost";
    $username = "honeyecompost";
    $password = "";
    $database = "my_honeyecompost";

    $con = mysqli_connect($host,$username,$password,$database);
    if (
    mysqli_connect_errno()){echo ("ERRORE: " . mysqli_connect_error());
    }
    la includo in un' altra con require_once:
    Codice PHP:
    <?php//pagina che aggiunge i livelli delle singole lettiere alla tabella "livelli_lettiere" del db
    error_reporting(E_ALL);
    require_once
    'dati_accesso_db.php';//dati connessione e connessione
    $liv_l0 = $_POST['liv_l0'];
    $liv_l1 = $_POST['liv_l1'];
    $liv_l2 = $_POST['liv_l2'];
    $liv_l3 = $_POST['liv_l3'];
    $liv_l4 = $_POST['liv_l4'];
    $liv_l5 = $_POST['liv_l5'];
    $query_liv = "INSERT INTO livelli_lettiere(LIV0,LIV1,LIV2,LIV3,LIV4,LIV5) VALUES('$liv_l0','$liv_l1','$liv_l2','$liv_l3','$liv_l4','$liv_l5')";
    $result_liv = mysqli_query($con,$query_liv);//query che inser. i livelli_cisterne registrati per ogni lettiera nella tabella "livelli_lettiere"
    if(!$result_liv){
    echo(
    "Error description: " . mysqli_error($con));
    }
    ?>
    per effettuare la query di inserimento dati.
    Ho utilizzato lo stesso procedimento per altre pagine e non ho avuto problemi, mentre questa pagina mi da
    Parse error: syntax error, unexpected 'error_reporting' (T_STRING) in /membri/honeyecompost/xxxxxxxx.php on line 2
    Ho provato a commentare la riga ma mi esce la stessa cosa per tutte le righe seguenti.
    Non capisco proprio, potete aiutarmi?

  2. #2
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,252

    Predefinito

    Salve,
    mancano le parentesi in require_once().
    Codice PHP:
    require_once('dati_accesso_db.php');
    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 26-11-2020 alle ore 19.06.40

  3. #3
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Citazione Originalmente inviato da GraphOGLRisorse Visualizza messaggio
    Salve,
    mancano le parentesi sulla funzione require_once().
    Codice PHP:
    require_once('dati_accesso_db.php');
    Cordiali saluti.
    require_once è uno statement, non una funzione, dunque le parentesi non sono necessarie (sono, anzi, ridondanti).

    Parse error: syntax error, unexpected 'error_reporting' (T_STRING) in /membri/honeyecompost/xxxxxxxx.php on line 2
    È presente dell'altro codice prima di quello mostrato? Un unexpected [...] suggerisce che il parser di PHP si aspettava di trovare dell'altro rispetto a error_reporting, tipicamente a causa di istruzioni precedenti.
    Quel commento attaccato al tag di apertura di PHP potrebbe dare un po' di fastidio al parser, almeno uno spazio sarebbe preferibile, ma non è detto sia questo il problema.
    Ultima modifica di mzanella : 26-11-2020 alle ore 19.02.37
    GraphOGLRisorse likes this.

    I suggerimenti che do più spesso:


  4. #4
    honeyecompost non è connesso Utente giovane
    Data registrazione
    21-09-2020
    Messaggi
    39

    Predefinito

    Effettivamente mettendo uno spazio prima del commento sparisce il parse error. Ora mi appare questo
    Notice: Undefined index: liv_l0 in /membri/honeyecompost/agg_livelli_lettiere.php on line 4

    Notice: Undefined index: liv_l1 in /membri/honeyecompost/agg_livelli_lettiere.php on line 5

    Notice: Undefined index: liv_l2 in /membri/honeyecompost/agg_livelli_lettiere.php on line 6

    Notice: Undefined index: liv_l3 in /membri/honeyecompost/agg_livelli_lettiere.php on line 7

    Notice: Undefined index: liv_l4 in /membri/honeyecompost/agg_livelli_lettiere.php on line 8

    Notice: Undefined index: liv_l5 in /membri/honeyecompost/agg_livelli_lettiere.php on line 9
    Error description: Unknown column 'LIV0' in 'field list'
    ma potrebbe essere che mi appaia solo perchè non sto passando niente via POST?

  5. #5
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    ma potrebbe essere che mi appaia solo perchè non sto passando niente via POST?
    Sì, è così.
    Ora che il problema principale è sistemato dovresti aumentare la sicurezza del codice, controllando innanzitutto che tutti i parametri siano stati passati, poi magari usando prepared statement per evitare SQL Injection.

    I suggerimenti che do più spesso:


  6. #6
    honeyecompost non è connesso Utente giovane
    Data registrazione
    21-09-2020
    Messaggi
    39

    Predefinito

    Giusto, grazie mille
    Solo un' ultima cosa: adesso oltre ai Notice:undefined index mi appare questo
    Error description: Incorrect integer value: '' for column 'LIV_L0' at row 1
    LIV_L0 è una colonna impostata come INT UNSIGNED predefinito Null, dipende dal fatto che la tabella appena creata è vuota?

  7. #7
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    No, vuol dire che stai cercando di inserire una stringa vuota in una colonna che si aspetta un valore intero. Per semplificare è come se stessi eseguendo questa query:
    Codice:
    INSERT INTO table(int_column_1, int_columns_2) VALUES(42, "");
    Quando invece dovresti eseguire
    Codice:
    INSERT INTO table(int_column_1, int_columns_2) VALUES(42, NULL);
    // Oppure
    INSERT INTO table(int_column_1) VALUES(42);

    I suggerimenti che do più spesso:


  8. #8
    honeyecompost non è connesso Utente giovane
    Data registrazione
    21-09-2020
    Messaggi
    39

    Predefinito

    Beh, ma se le colonne sono predefinite a null non dovrebbe mostrarmo l'errore (credo), comunque proverò ad inserire valori interi oppure "null" e vediamo che succede

  9. #9
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Beh, ma se le colonne sono predefinite a null non dovrebbe mostrarmo l'errore (credo), comunque proverò ad inserire valori interi oppure "null" e vediamo che succede
    Al contrario, è un errore di tipo in piena regola. Una stringa vuota è una stringa, ed è vuota (...ma va ), quindi non è un intero, ed è giusto che venga segnalato l'errore di tipo, e non è NULL, perché un qualsiasi valore, fosse anche lo zero logico del tipo a cui appartiene, è appunto un valore, mentre NULL rappresenta l'assenza di valori.
    L'ultimo concetto, per esperienza, è un po' ostico da digerire... deriva dalla formalizzazione dei sistemi di tipi. E soprattutto alcune vecchie versioni di MySQL trattavano erroneamente la stringa vuota come NULL, comportamento che poi è stato corretto.

    I suggerimenti che do più spesso:


  10. #10
    honeyecompost non è connesso Utente giovane
    Data registrazione
    21-09-2020
    Messaggi
    39

    Predefinito

    Ho capito, infatti se modifico il codice in questo modo
    <?php //pagina che aggiunge i livelli delle singole lettiere alla tabella "livelli_lettiere" del db
    error_reporting(E_ALL);
    require_once 'dati_accesso_db.php';//dati connessione e connessione
    $liv_l0 = 0;
    $liv_l1 = 0;
    $liv_l2 = 0;
    $liv_l3 = 0;
    $liv_l4 = 0;
    $liv_l5 = 0;
    /*$liv_l0 = $_POST['liv_l0'];
    $liv_l1 = $_POST['liv_l1'];
    $liv_l2 = $_POST['liv_l2'];
    $liv_l3 = $_POST['liv_l3'];
    $liv_l4 = $_POST['liv_l4'];
    $liv_l5 = $_POST['liv_l5'];*/
    $query_liv = "INSERT INTO livelli_lettiere(LIV_L0,LIV_L1,LIV_L2,LIV_L3,LIV_L 4,LIV_L5) VALUES('$liv_l0','$liv_l1','$liv_l2','$liv_l3','$l iv_l4','$liv_l5')";
    $result_liv = mysqli_query($con,$query_liv);//query che inser. i livelli_cisterne registrati per ogni lettiera nella tabella "livelli_lettiere"
    if(!$result_liv){
    echo("Error description: " . mysqli_error($con));
    }
    ?>
    cioè commentando tutti i POST[] e assegnando 0 alle variabili, la pagina risulta bianca e senza errori

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •