Pagina 6 di 7 PrimoPrimo ... 4567 UltimoUltimo
Visualizzazione risultati 151 fino 180 di 184
Like Tree7Likes

Discussione: Login PHP non indirizza alla pagina privata

  1. #151
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in /membri/relettronico/gestionesupplenze/Visualizzazionesupplenze.php on line 130

    Warning: mysqli_stmt_get_result() expects parameter 1 to be mysqli_stmt, boolean given in /membri/relettronico/gestionesupplenze/Visualizzazionesupplenze.php on line 131

    Warning: mysqli_stmt_error() expects parameter 1 to be mysqli_stmt, boolean given in /membri/relettronico/gestionesupplenze/Visualizzazionesupplenze.php on line 133

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

    Predefinito

    La riga 130 è questa, giusto?
    Codice PHP:
    mysqli_stmt_bind_param($stmt, "ss", $codice_meccanografico, $data);
    In questo caso controlla di aver controllato eventuali errori dopo aver preparato lo statement (righe precedenti alla 130):
    Codice PHP:
    $stmt = mysqli_prepare($conn, $query);
    if (!
    $stmt) {
    die(
    "Errore nella preparazione della query: " . mysqli_error($conn));
    }

    I suggerimenti che do più spesso:


  3. #153
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Non capisco cosa possa essere

    Codice PHP:
    <?php
    error_reporting
    (E_ALL);
    define('DBHOST', 'localhost');
    define('DBUSER', 'relettronico');
    define('DBPASS', '');
    define('DBNAME', 'my_relettronico');

    // Connessione alla base di dati
    $conn = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME);
    if (!
    $conn) {
    die(
    "Connection failed : " . mysqli_connect_error);
    }

    // Verifica la presenza del codice meccanografico
    if (!isset($_GET['codice_meccanografico']) || empty($_GET['codice_meccanografico'])) {
    die(
    "Codice meccanografico non inserito");
    }

    $codice_meccanografico = $_GET['codice_meccanografico'];
    // Se è stata selezionata una data, recupera le supplenze
    if (isset($_GET['data']) && !empty($_GET['data'])) {
    $data = $_GET['data'];

    $query = "SELECT * FROM supplenze JOIN scuola ON supplenze.id_scuola = scuola.id_scuola "
    . "WHERE supplenze.pubblico = 1 "
    . "AND scuola.codice_meccanografico = ? "
    . "AND supplenze.data = ?";

    $stmt = mysqli_prepare($conn, $query);

    if (!
    $stmt) {
    die(
    "Errore nella preparazione della query: " . mysqli_error($conn));
    }
    mysqli_stmt_bind_param($stmt, "ss", $codice_meccanografico, $data);
    $result = mysqli_stmt_get_result($stmt);
    if (!
    $result) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_stmt_error($stmt));
    }}
    ?>

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

    Predefinito

    Mi sono accorto che mancava un pezzo
    Codice PHP:
    // Se è stato selezionato un intervallo di date, recupera le supplenze
    if (isset($_GET['data']) && !empty($_GET['data'])) {
    $data = $_GET['data'];

    $query = "SELECT * FROM supplenze JOIN scuole ON supplenze.id_scuola = scuole.id_scuola "
    . "WHERE supplenze.pubblico = 1 "
    . "AND scuole.codice_meccanografico = ? "
    . "AND supplenze.data = ?";
    $stmt = mysqli_prepare($conn, $query);
    if (!
    $stmt) {
    die(
    "Errore nella preparazione della query: " . mysqli_error($conn));
    }

    if (
    mysqli_stmt_bind_param($stmt, "ss", $codice_meccanografico, $data)) {
    die(
    "Errore nel binding dei parametri: " . mysqli_stmt_error($stmt));
    }

    if (!
    mysqli_stmt_execute($stmt)) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_stmt_error($stmt));
    }

    $result = mysqli_stmt_get_result($stmt);
    if (!
    $result) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_stmt_error($stmt));
    }
    }
    Prova e riporta eventuali errori.

    I suggerimenti che do più spesso:


  5. #155
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    é uscito "erore nel binding dei parametri"

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

    Predefinito

    Mi aspettavo una descrizione dell'errore. Usiamo mysqli_report per mostrare tutti gli errori:
    Codice PHP:
    // Se è stato selezionato un intervallo di date, recupera le supplenze
    if (isset($_GET['data']) && !empty($_GET['data'])) {
    $data = $_GET['data'];
    mysqli_report(MYSQLI_REPORT_ALL);

    $query = "SELECT * FROM supplenze JOIN scuole ON supplenze.id_scuola = scuole.id_scuola "
    . "WHERE supplenze.pubblico = 1 "
    . "AND scuole.codice_meccanografico = ? "
    . "AND supplenze.data = ?";
    $stmt = mysqli_prepare($conn, $query);
    if (!
    $stmt) {
    die(
    "Errore nella preparazione della query: " . mysqli_error($conn));
    }

    if (
    mysqli_stmt_bind_param($stmt, "ss", $codice_meccanografico, $data)) {
    die(
    "Errore nel binding dei parametri: " . mysqli_stmt_error($stmt));
    }

    if (!
    mysqli_stmt_execute($stmt)) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_stmt_error($stmt));
    }

    $result = mysqli_stmt_get_result($stmt);
    if (!
    $result) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_stmt_error($stmt));
    }
    }

    I suggerimenti che do più spesso:


  7. #157
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Non descrive nessun errore

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

    Predefinito

    C'era un errore di battitura, mancava un "!":
    Codice PHP:
    // Se è stato selezionato un intervallo di date, recupera le supplenze
    if (isset($_GET['data']) && !empty($_GET['data'])) {
    $data = $_GET['data'];
    mysqli_report(MYSQLI_REPORT_ALL);

    $query = "SELECT * FROM supplenze JOIN scuole ON supplenze.id_scuola = scuole.id_scuola "
    . "WHERE supplenze.pubblico = 1 "
    . "AND scuole.codice_meccanografico = ? "
    . "AND supplenze.data = ?";
    $stmt = mysqli_prepare($conn, $query);
    if (!
    $stmt) {
    die(
    "Errore nella preparazione della query: " . mysqli_error($conn));
    }

    if (!
    mysqli_stmt_bind_param($stmt, "ss", $codice_meccanografico, $data)) {
    die(
    "Errore nel binding dei parametri: " . mysqli_stmt_error($stmt));
    }

    if (!
    mysqli_stmt_execute($stmt)) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_stmt_error($stmt));
    }

    $result = mysqli_stmt_get_result($stmt);
    if (!
    $result) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_stmt_error($stmt));
    }
    }
    Armati di pazienza

    I suggerimenti che do più spesso:


  9. #159
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Siamo allo stesso problema dell'altra volta... io ho una supplenza nel db il giorno 2018-08-02 invio la data 02/08/2018 e non mi mostra nessuna supplenza però io inserisco lo stesso formato non saprei... prova tu...

  10. #160
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Poi io ho messo le sessioni ma come faccio a dire che l'utente relettronico inserisce le supplenze sotto "id_scuola=1" mentre mzanella inserisce le supplenze sotto "id_scuola=2"?

    Io ho pensato di memorizzare invece dell'id l'id_scuola (mettendo username e password nella tabella "scuola" e poi attraverso una query tipo questa della visualizzazione inserire tramite $id_scuola = $_SESSION['id_scuola']
    query= "INSERT INTO supplenze (id_scuola, doc_ass, [...]) VALUES ($id_scuola, $doc_ass, [...])"

    Non so se la sintassi è corretta e nemmeno se è possibile fare cosi dimmi tu..

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

    Predefinito

    Siamo allo stesso problema dell'altra volta... io ho una supplenza nel db il giorno 2018-08-02 invio la data 02/08/2018 e non mi mostra nessuna supplenza però io inserisco lo stesso formato non saprei... prova tu...
    L'ho provato e funziona correttamente, dunque i problemi devono essere altrove.
    A questo punto mysqli_report(MYSQLI_REPORT_ALL); non serve più e va tolto.

    Poi io ho messo le sessioni ma come faccio a dire che l'utente relettronico inserisce le supplenze sotto "id_scuola=1" mentre mzanella inserisce le supplenze sotto "id_scuola=2"?
    Si tratta di mettere in relazione gli utenti con le scuole. Come prima cosa occorre decidere se:
    • ciascun utente può gestire una sola scuola
    • un utente può gestire un o più scuole

    Mi sembra di capire che siamo nel primo caso, allora bisogna aggiungere una colonna alla tabella degli utenti in cui memorizzare l'identificativo della scuola che quell'utente gestisce.
    In questo modo, per ogni utente, saprai qual'è l'id della scuola da utilizzare.

    I suggerimenti che do più spesso:


  12. #162
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    La scuola è identificata dall'id_scuola poi da qui non ho capito come devo continuare con il codice.

    Quindi come faccio a capire il problema dello script?

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

    Predefinito

    La scuola è identificata dall'id_scuola poi da qui non ho capito come devo continuare con il codice.
    Aggiungi la colonna id_scuola alla tabella degli utenti.
    Tutto il resto andrà fatto per gradi: quando un utente si registra dovrà indicare a quale scuola afferisce, durante gli inserimenti delle supplenze bisognerà leggere l'id dell'utente dalla sessione, usarlo per recuperare l'id della scuola "associata" a quell'utente, quindi usare quest'ultimo per indicare a quale scuola la supplenza si riferisce.

    Quindi come faccio a capire il problema dello script?
    Facile: non puoi perché non c'è!
    Il problema deve stare altrove. Nomi delle tabelle? Nomi dei campi? I dati arrivano correttamente tramite GET? Può essere di tutto, dall'esterno è impossibile stabilirlo.

    I suggerimenti che do più spesso:


  14. #164
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    E la query quindi come diventerebbe?
    Cambia solo la query o cambia tutto lo script?

    Se i nomi fossero coretti e i dati in GET arriva che altri problemi potrebbero esserci? Io vedo che nella pagina ce un ">" è un errore di battitura che potrebbe causare l'errore?

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

    Predefinito

    E la query quindi come diventerebbe?
    Cambia solo la query o cambia tutto lo script?
    Nello script a cui stiamo lavorando ora, ovvero la visualizzazione, non cambia nulla, neanche la query.
    Cambia lo script di inserimento, nel quale bisogna prima leggere l'id della scuola dell'utente e poi usarlo nell'inserimento vero e proprio. Qualcosa come
    Codice:
    SELECT id_scuola FROM utenti WHERE id = <id utente ottenuto dalla sessione>
    Se i nomi fossero coretti e i dati in GET arriva che altri problemi potrebbero esserci? Io vedo che nella pagina ce un ">" è un errore di battitura che potrebbe causare l'errore?
    Vero, c'è un ">" di troppo, ma è solo un errore di battitura nell'HTML, non è collegato al problema.
    Se i nomi, i dati che arrivano tramite GET e lo script sono tutti corretti, allora la situazione più probabile è che sia la base di dati ad essere sbagliata.
    Il campo data è di tipo DATE? I valori contenuti in ciascun campo sono corretti? Le righe che vorresti fossero mostrate hanno 1 come valore della colonna "pubblico"? Hai popolato la tabella scuole con la lista dei codici meccanografici e relativi id?

  16. #166
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Questo è quello che mi da il var dump:

    array(2) {
    ["codice_meccanografico"]=>
    string(22) "$codice_meccanografico"
    ["data"]=>
    string(10) "2018-08-05"
    }


    La tabella scuola è popolata con codice meccanografico e relativo id_scuola e i nomi delle colonne e delle tabelle mi sembrano corretti (mi uscirebbe l'errore se un tabella o una colonna non esistesse, ho controllato manualmente e c'è tutto)

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

    Predefinito

    Ah-ha! Allora sono i dati tramite GET che non arrivano correttamente, come immaginavo all'inizio. Anziché il codice meccanografico ti arriva la stringa "$codice_meccanografico".

    Ora è facile, il problema è nel form. Questa riga
    Codice HTML:
    <input type="hidden" name="codice_meccanografico" value="$codice_meccanografico">
    va modificata in
    Codice HTML:
    <input type="hidden" name="codice_meccanografico" value="<?php echo $codice_meccanografico; ?>">

  18. #168
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Esattamente come pensavi grazie mille!
    Funziona alla perfezione avevo pensato che (come la data sotto) dovesse ricevere il valore e non la stringa ma con poca esperienza credevo che fosse corretto anche cosi

    Ora nell'inserimento devo aggiungere la query:

    Codice PHP:
    $id= ($_SESSION['id']);
    SELECT id_scuola FROM users WHERE id = $id
    Il prepared statement non so se si scrive così dimmi tu...

    Poi io aggiungo questa query e nell'altra query dovrei richiamare l'id_scuola preso dal SELECT è un prepared statement normale o cambia?

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

    Predefinito

    Era la classica svista

    Ora dai pure un'occhiata alla documentazione dei prepared statement con mysqli.

    Prima di tutto "definisci" la query, usando dei punti di domanda come segnaposto per i valori:
    Codice PHP:
    $query = "SELECT id_scuola FROM users WHERE id = ?";
    quindi crei il prepared statement, un "oggetto" a cui poi "assocerai" il/i valore/i per le interrogazioni:
    Codice PHP:
    $stmt = mysqli_prepare($conn, $query);
    if (!
    $stmt) {
    die(
    "Errore nella preparazione della query: " . mysqli_error($conn));
    }
    Associ l'id letto dalla sessione:
    Codice PHP:
    if (!mysqli_stmt_bind_param($stmt, "i", $_SESSION['id'])) {
    die(
    "Errore nel binding dei parametri: " . mysqli_stmt_error($stmt));
    }
    Esegui il prepared statement:
    Codice PHP:
    if (!mysqli_stmt_execute($stmt)) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_stmt_error($stmt));
    }
    Ne estrai il risultato:
    Codice PHP:
    $result = mysqli_stmt_get_result($stmt);
    if (!
    $result) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_stmt_error($stmt));
    }
    E (finalmente) ottieni il dato che cercavi:
    Codice PHP:
    $result = mysqli_stmt_get_result($stmt);
    if (!
    $result) {
    die(
    "Errore durante l'esecuzione della query: " . mysqli_stmt_error($stmt));
    }

    $row = mysqli_fetch_array($result);
    if (!
    $row) {
    die(
    "Nessun utente con l'id specificato");
    }

    $id_scuola = $row['id_scuola'];
    Nell'inserimento vero e proprio potrai quindi usare $id_scuola assieme agli altri parametri.

    I suggerimenti che do più spesso:


  20. #170
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Mi da "Nessun utente con l'id specificato"

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

    Predefinito

    Riguardando alcuni vecchi messaggi ho visto che prima usavi $_SESSION['id_utente'], non $_SESSION['id'], il problema potrebbe essere questo, prova a dare un'occhiata.

    I suggerimenti che do più spesso:


  22. #172
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Io ho $_SESSION['id_utente']= $row['id']

    Ho provato con id_utente ma mi da lo stesso errore però io non ho la colonna id_utente ho id e id_scuola centra qualcosa?

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

    Predefinito

    Verifica che la sessione contenga l'informazione corretta:
    Codice PHP:
    var_dump($_SESSION);
    cosa mostra?

    I suggerimenti che do più spesso:


  24. #174
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Non mostra nulla non stampa nessuna scritta

  25. #175
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,067

    Predefinito

    Ma in alto nella pagina hai messo session_start() ?

    Ciao!

  26. #176
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Si l'ho messo il session_start()

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

    Predefinito

    Quindi la sessione è avviata, ma non contiene dati. Molto strano, dovrebbe stampare almeno il vettore vuoto.

  28. #178
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Ecco il vettore. Non usciva perché c era un errore di battitura.

    array(1) { ["id_utente"]=> &NULL }

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

    Predefinito

    Chiaro, l'errore è nel login: non viene inserito correttamente l'id dell'utente nella sessione.
    Mostra il codice del login aggiornato :)

    I suggerimenti che do più spesso:


  30. #180
    relettronico non è connesso Utente giovane
    Data registrazione
    03-01-2016
    Messaggi
    97

    Predefinito

    Ecco il login:
    Codice PHP:
    <?php
    session_start
    ();
    error_reporting(E_ALL);
    define('DBHOST', 'localhost');
    define('DBUSER', 'relettronico');
    define('DBPASS', '');
    define('DBNAME', 'my_relettronico');

    // Connessione alla base di dati
    $conn = mysqli_connect(DBHOST,DBUSER,DBPASS,DBNAME);
    if (!
    $conn) {
    die(
    "Connection failed : " . mysqli_connect_error);
    }

    // Verifica che username e password siano stati ricevuti

    if (!isset($_POST['username'], $_POST['password'])) {
    die(
    "Missing username or password.");
    }

    $username = $_POST['username'];
    $password = $_POST['password'];




    $query = "SELECT * FROM users WHERE username = ?";
    $stmt = mysqli_prepare($conn, $query);
    mysqli_stmt_bind_param($stmt, "s", $username);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);



    if (
    password_verify($password, $row['password'])) {
    $_SESSION['id_utente'] = $row['id'];
    header("Location:pannellodiamministrazione.php");

    }else {
    echo
    "Password errata";
    }
    mysqli_stmt_close($stmt);

    ?>

Pagina 6 di 7 PrimoPrimo ... 4567 UltimoUltimo

Regole di scrittura

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