Pagina 5 di 7 PrimoPrimo ... 34567 UltimoUltimo
Visualizzazione risultati 121 fino 150 di 184
Like Tree7Likes

Discussione: Login PHP non indirizza alla pagina privata

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

    Predefinito

    Mi rimane questo errore che non riesco a togliere:

    Notice: Undefined index: password in /membri/relettronico/gestionesupplenze/Visualizzazionesupplenze.php on line 130

    Il nome nella tabella è corretto

    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);
    }

    $password = $_GET['password'];
    $query = mysqli_query($conn, "SELECT * FROM scuola JOIN supplenze ON scuola.id = supplenze.id_scuola WHERE scuola.password = '$password' AND pubblico='1'");
    while(
    $cicle=mysqli_fetch_array($query)){
    echo
    "<tr>";
    echo
    '<td>' .$cicle['doc_ass'].' </td>';
    echo
    '<td>' .$cicle['data']. '</td>';
    echo
    '<td>' .$cicle['ora']. '</td>';
    echo
    '<td>' .$cicle['classe']. '</td>';
    echo
    '<td>' .$cicle['materia']. '</td>';
    echo
    '<td>' .$cicle['doc_sos']. '</td>';
    echo
    '<td>' .$cicle['conferma']. '</td>';
    echo
    "</tr>";

    }
    ?>

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

    Predefinito

    Quel messaggio indica che $_GET['password'] non è definito, il form non lo sta inviando.
    Verifica che il form abbia l'attributo method impostato a GET e che il nome del campo in cui inserire il codice meccanografico sia password.
    Puoi verificarlo rapidamente guardando l'URL della pagina di destinazione, dovrebbe essere nella forma http://relettronico.altervista.org/n...assword=codice.

    I suggerimenti che do più spesso:


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

    Predefinito

    Sembrerebbe tutto corretto... e il login lo fa il problema è che non prende i dati dalla tabella

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

    Predefinito

    Intendi dire che questo problema
    Notice: Undefined index: password in /membri/relettronico/gestionesupplenze/Visualizzazionesupplenze.php on line 130
    lo hai risolto ma ora hai un problema con la query che restituisce un record set vuoto?

    I suggerimenti che do più spesso:


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

    Predefinito

    Ora mi da questo errore la query... probabilmente non riceve il codice e quindi non riesce a estrarre i dati

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

    Predefinito

    "Questo errore" quale?

    I suggerimenti che do più spesso:


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

    Predefinito

    Notice: Undefined index: password

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

    Predefinito

    Non c'entra niente con la query, come indicato dal messaggio d'errore l'indice password del vettore $_GET non è definito. In altre parole, la pagina non sta ricevendo il campo password.

    I suggerimenti che do più spesso:


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

    Predefinito

    Ma lo dovrebbe ricevere dal login iniziale o sbaglio?

    Abbiamo fatto che la query legge la password cerca id_scuola poi va bella tabella supplenze e preleva tutti gli id sotto lo stesso id_scuola

    Se va il login in teoria viene inviata anche la password

  10. #130
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Puoi mostrare il codice del form (html) con method=get?

    Ciao!

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

    Predefinito

    Codice HTML:
    		<h3>Visualizza supplenze del giorno:</h3>
            		<form method="GET" action='Visualizzazionesupplenze.php'>
    					<label for="data"></label>
          					<input type="date" placeholder="Inserire data" name="data">
    				</form>
                
    		<font color="black"><table>
    ******* <tr>
    *************** <td>Docente assente</td>************** 
    *************** <td>Data</td>************ 
    ************* * <td>Ora</td>********
    *************** <td>Classe</td>
    *************** <td>Materia </td>
    *************** <td>Docente sostituto</td>
                    <td>Conferma</td>
    
    *************
    		<?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);
    		}
    
    		$password = $_GET['password'];
            
            echo "<pre>"; 
    var_dump($_GET); 
    echo "<pre>";         
    		$query = mysqli_query($conn, "SELECT * FROM scuola JOIN supplenze ON scuola.id = supplenze.id_scuola WHERE scuola.password = '$password' AND pubblico='1'");
    		while($cicle=mysqli_fetch_array($query)){
    		echo    "<tr>";
    		echo     '<td>' .$cicle['doc_ass'].' </td>';
    		echo     '<td>' .$cicle['data']. '</td>';
    		echo     '<td>' .$cicle['ora']. '</td>';
    		echo     '<td>' .$cicle['classe']. '</td>';
    		echo	 '<td>' .$cicle['materia']. '</td>';
    		echo	 '<td>' .$cicle['doc_sos']. '</td>';
    		echo	 '<td>' .$cicle['conferma']. '</td>';
    		echo     "</tr>";       
      
    		}
    		?>
    		</table></font>
    Il var_dump dice array(0) quindi non riceve dati


    Gli asterischi sono usciti perché ho copiato da telefono

  12. #132
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Appunto:
    Codice HTML:
    <form method="GET" action='Visualizzazionesupplenze.php'>
    	<label for="data"></label>
    	<input type="date" placeholder="Inserire data" name="data">
    </form>
    Dove è il campo con name=password che prelevi qui?
    Codice PHP:
    $password = $_GET['password'];
    (come già detto non conosco il perché devi/vuoi utilizzare get, ma se lo vuoi utilizzare il dato deve esserci!)

    Ciao!
    Ultima modifica di alemoppo : 07-08-2018 alle ore 01.04.46
    mzanella likes this.

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

    Predefinito

    Ma la password arriva da un'altra pagina

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

    Predefinito

    Allora mostra il codice di quest'altra pagina.

    I suggerimenti che do più spesso:


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

    Predefinito

    Codice HTML:
    	
    	<section id="slider">  
    	    	
    	    	<img src="img/apple-store.jpg"/>
    	    	
    	    	<h2>Gestione supplenze</h2>
    		  
                
    		<center>
                  <div id="Login">
                    
                         <form action="cod_mec.php" method="GET" autocomplete="off" >
                         
                         <b><font color="black"> <h3>Login</h3></font></b>
                         
                         <input type="password" name="password" placeholder="Codice Meccanografico"><br />
                         
                         <button>Accedi</button>
                         
                         </form>
                  
                    
                    </div>
    		</center>
                
    	</section> 

    Mi sono accorto ora che la action page è quella del login quindi la password non viene inviata allo script della selezione ma solo a quello di login... cosa dovrei fare? Perché lo script scrive i dati in una tabella se lo sposto nel file del login poi come faccio a dire qual è la tabella in cui deve scrivere?

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

    Predefinito

    Mi sono accorto ora che la action page è quella del login quindi la password non viene inviata allo script della selezione ma solo a quello di login
    Il che spiega il problema

    Allora... leggendo e rileggendo i vari messaggi l'unica cosa che posso dire è che qui c'è veramente moltissima confusione.

    Partirei dalla nomenclatura: hai un codice meccanografico (identificatore) tramite cui puoi leggere la lista delle supplenze di una scuola (risorsa). Quel codice NON È una password, e questa procedura NON È un login.

    Perché lo script scrive i dati in una tabella
    Nessuno degli script che hai mostrato di recente scrive i dati in una tabella, dunque non è chiaro di cosa tu stia parlando. Hai mostrato solo script che leggono i dati da una tabella.

    se lo sposto nel file del login poi come faccio a dire qual è la tabella in cui deve scrivere?
    L'unica tabella coinvolta è quella delle supplenze (con eventuali JOIN). Solo da essa devi leggere. Nessuna possibilità di ambiguità.

    Quarto punto: qual'è la sequenza di operazioni da eseguire? Cercando di mettere insieme e decifrare il codice delle ultime 5 pagine di discussione credo che sia questa:
    1. un visitatore arriva alla pagina "Gestione supplenze" contenente un form in cui inserire un codice meccanografico
    2. il visitatore inserisce il codice ed invia il dato
    3. se il codice è valido, il visitatore viene portato ad una pagina relativa ad una scuola, dalla quale è possibile selezionare un intervallo di date (se il codice meccanografico non è corretto viene mostrato un errore)
    4. il visitatore seleziona l'intervallo di date ed invia i dati
    5. al visitatore viene mostrata una pagina che riporta la lista delle supplenze nella scuola e nell'intervallo di date specificati

    È corretto?

    Se e solo se è corretto bisogna identificare per bene quali sono pagine e qual'è il loro ruolo:
    • pagina A con il form per inserire il codice meccanografico
    • pagina B con il form per selezionare un intervallo di date
    • pagina C per mostrare i risultati

    ed quali informazioni fluiscono dall'una all'altra:
    Codice:
    pagina A -- codice meccanografico --> pagina B
    pagina B -- codice meccanografico, intervallo di date --> pagina C
    A questo punto il comportamento di ciascuna pagina va "tradotto" in algoritmo (in pseudocodice):
    pagina A
    Codice:
    <form action="pagina B" method="GET">
        <input type="text" name="codice_meccanografico">
        <button>
    </form>
    pagina B
    Codice:
    if (<manca il codice> OR <il codice è sbagliato>):
        errore ed interruzione dello script
    
    (else)
    <form action="pagina C" method="GET">
        <input type="hidden" name="codice_meccanografico" value="$_GET['codice_meccanografico']">
        <input type="date" name="data_iniziale">
        <input type="date" name="data_finale">
        <button>
    </form>
    pagina C
    Codice:
    if (<manca il codice meccanografico> OR <codice meccanografico sbagliato> OR <manca la data iniziale> OR <manca la data finale>):
        errore ed interruzione dello script
    
    (else)
    result = database_query(<leggi tutte le supplenze in cui il codice meccanografico è $_GET['codice_meccanografico'] e la cui data è compresa tra $_GET['data_iniziale'] e $_GET['data_finale']>)
    foreach result as row:
        echo stampa_supplenza(row);
    E a questo punto l'algoritmo può essere implementato in PHP, con qualche osservazione:
    • per passare il codice meccanografico dalla pagina B alla C puoi (e dovresti...) usare in input type=hidden
    • lo pseudocodice serve a dare un'idea generale dell'architettura delle pagine, manca quindi una serie di dettagli (ad esempio l'uso dei prepared statement per la sicurezza) di cui bisogna tener conto nell'implementazione in PHP (o qualunque altro linguaggio)


    Più chiaro?

    I suggerimenti che do più spesso:


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

    Predefinito

    È come hai detto tu io ho la pagina in cui si inserisce il codice meccanografico (pagina A) poi ho la pagina C in cui vengono mostrate le supplenze la pagina B non si può includere nella pagina C perché se io voglio vedere quelle di domani e poi quelle di dopodomani lo devo fare nella stessa pagina non devo tornare indietro

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

    Predefinito

    Bene! Almeno qualcosa si sta schiarendo. In questo caso bisogna ritornare all'inizio del processo descritto nel messaggio precedente ed integrare questo "nuovo" requisito.

    Pagine e ruoli:
    • pagina A con il form per inserire il codice meccanografico
    • pagina B con il form per selezionare un intervallo di date ed per mostrare i relativi risultati

    La pagina B, dunque, permette sia di scegliere l'intervallo di date che di visualizzare i risultati. Rispetto a prima, le pagine B e C sono state accorpate, unicamente per semplicità ed immediatezza di utilizzo.

    Flusso delle informazioni:
    Codice:
    pagina A -- codice meccanografico --> pagina B
    pagina B -- codice meccanografico, intervallo di date --> pagina B
    Traduzione in algoritmo (pseudocodice):
    pagina A
    Codice:
    <form action="pagina B" method="GET">
        <input type="text" name="codice_meccanografico">
        <button>
    </form>
    pagina B
    Codice:
    if (<manca il codice> OR <il codice è sbagliato>):
        errore ed interruzione dello script
    
    (else)
    <form action="pagina B" method="GET">
        <input type="hidden" name="codice_meccanografico" value="$_GET['codice_meccanografico']">
        <input type="date" name="data_iniziale">
        <input type="date" name="data_finale">
        <button>
    </form>
    
    if (<sono presenti sia $_GET['data_iniziale'] che $_GET['data_finale']>):
        result = database_query(<leggi tutte le supplenze in cui il codice meccanografico è $_GET['codice_meccanografico'] e la cui data è compresa tra $_GET['data_iniziale'] e $_GET['data_finale']>)
        foreach result as row:
            echo stampa_supplenza(row);

    I suggerimenti che do più spesso:


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

    Predefinito

    Però io non ho il codice meccanografico ma id_scuola

    tabella scuole
    Codice:
    id | id_scuola |codice meccanografico | ...
    1  |     1     |


    tabella supplenze

    Codice:
    id_scuola | docente assente | ...
        1     |
        1     |
        5     |
    queste sono le mie tabelle quindi io devo dire di guardare nella tabella "scuole" l'"id_scuola" corrispondente al codice meccanografico inserito e selezionare tutte le supplenze sotto quell'id_scuola



    Ho cercato di fare lo script della pagina B come hai detto tu ma mi manca la query:

    Codice HTML:
    <form action="Visualizzazionesupplenze.php" method="GET">
        				<input type="hidden" name="cod_mec" value="$_GET['cod_mec']">
        				<input type="date" name="data_iniziale">
        				<input type="date" name="data_finale">
        				<button>Invia</button>
    			</form>
                
    		<font color="black"><table>
    ******* <tr>
    *************** <td>Docente assente</td>************** 
    *************** <td>Data</td>************ 
    ************* * <td>Ora</td>********
    *************** <td>Classe</td>
    *************** <td>Materia </td>
    *************** <td>Docente sostituto</td>
                    <td>Conferma</td>
    
    *************
    		<?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);
    		}
            
            $password=$_GET['cod_mec'];
            
            if(empty($cod_mec)){
            	die ("Codice meccanografico non inserito");
            }else{
            	
              if(!isset($_GET['data_iniziale'], ($_GET['data_finale'])){
                	$query = mysqli_query($conn, "SELECT * FROM [...] AND pubblico='1'");
    		while($cicle=mysqli_fetch_array($query)){
    		echo    "<tr>";
    		echo     '<td>' .$cicle['doc_ass'].' </td>';
    		echo     '<td>' .$cicle['data']. '</td>';
    		echo     '<td>' .$cicle['ora']. '</td>';
    		echo     '<td>' .$cicle['classe']. '</td>';
    		echo	 '<td>' .$cicle['materia']. '</td>';
    		echo	 '<td>' .$cicle['doc_sos']. '</td>';
    		echo	 '<td>' .$cicle['conferma']. '</td>';
    		echo     "</tr>";       
      
    		}
                    }
    		?>
    		</table></font>
    Ultima modifica di relettronico : 07-08-2018 alle ore 19.03.13

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

    Predefinito

    Codice:
    SELECT * FROM supplenze JOIN scuole ON supplenze.id_scuola = scuole.id_scuola WHERE supplenze.pubblico = 1 AND scuole.codice_meccanografico = <codice meccanografico> AND supplenze.data BETWEEN <data iniziale> and <data finale>
    I valori tra parentesi angolate vanno sostituiti con quelli letti da $_GET.

    I suggerimenti che do più spesso:


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

    Predefinito

    Quindi devo mettere i prepare statement

    $cod_mec=$_GET['cod_mec'];
    $data_iniziale=$_GET['data_iniziala'];
    $data_finale=$_GET['data_finale']

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

    Predefinito

    Questo è l'errore che mi da il codice:

    Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead)

    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);
    }

    $password=$_GET['password'];
    $data_iniziale = $_GET['data_iniziale'];
    $data_finale = $_GET['data_finale'];

    if(empty(
    $password)){
    die (
    "Codice meccanografico non inserito");
    }else{
    if(!isset(
    $_GET['data_iniziale'], ($_GET['data_finale'])){
    $query = mysqli_query($conn, "SELECT * FROM supplenze JOIN scuole ON supplenze.id_scuola = scuole.id_scuola WHERE supplenze.pubblico = 1 AND scuole.codice_meccanografico = $password AND supplenze.data BETWEEN $data_iniziale and $data_finale");
    while(
    $cicle=mysqli_fetch_array($query)){
    echo
    "<tr>";
    echo
    '<td>' .$cicle['doc_ass'].' </td>';
    echo
    '<td>' .$cicle['data']. '</td>';
    echo
    '<td>' .$cicle['ora']. '</td>';
    echo
    '<td>' .$cicle['classe']. '</td>';
    echo
    '<td>' .$cicle['materia']. '</td>';
    echo
    '<td>' .$cicle['doc_sos']. '</td>';
    echo
    '<td>' .$cicle['conferma']. '</td>';
    echo
    "</tr>";

    }
    }
    ?>

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

    Predefinito

    Visualizzazionesupplenze.php:
    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 è stato selezionato un intervallo di date, recupera le supplenze
    if (isset($_GET['data_iniziale'], $_GET['data_finale']) && !empty($_GET['data_iniziale']) && !empty($_GET['data_finale'])) {
    $data_iniziale = $_GET['data_iniziale'];
    $data_finale = $_GET['data_finale'];

    $query = "SELECT * FROM supplenze JOIN scuole ON supplenze.id_scuola = scuole.id_scuola "
    . "WHERE supplenze.pubblico = 1 "
    . "AND scuole.codice_meccanografico = ? "
    . "AND supplenze.data BETWEEN ? and ?";
    $stmt = mysqli_prepare($conn, $query);
    mysqli_stmt_bind_param($stmt, "sss", $codice_meccanografico, $data_iniziale, $data_finale);
    $result = mysqli_stmt_get_result($stmt);
    }
    ?>


    <!-- Form per la selezione dell'intervallo di date -->
    <form action="Visualizzazionesupplenze.php" method="GET">
    <input type="hidden" name="codice_meccanografico" value="$codice_meccanografico">
    <input type="date" name="data_iniziale">
    <input type="date" name="data_finale">
    <button>Invia</button>
    </form>

    <?php if (isset($result)): ?>
    <h2>Supplenze da <?php echo $data_iniziale; ?> a <?php echo $data_finale; ?>:
    <table>
    <thead>
    <tr>
    <th>Docente assente</th>
    <th>Data</th>
    <th>Ora</th>
    <th>Classe</th>
    <th>Materia</th>
    <th>Docente sostituto</th>>
    <th>Conferma</th>
    </tr>
    </thead>
    <tbody>
    <?php while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)): ?>
    <tr>
    <td><?php echo $row['doc_ass']; ?></td>
    <td><?php echo $row['data']; ?></td>
    <td><?php echo $row['ora']; ?></td>
    <td><?php echo $row['classe']; ?></td>
    <td><?php echo $row['materia']; ?></td>
    <td><?php echo $row['doc_sos']; ?></td>
    <td><?php echo $row['conferma']; ?></td>
    </tr>
    <?php endwhile; ?>
    </tbody>
    </table>
    <?php endif; ?>
    gestionesupplenze/index.php
    Codice HTML:
    <h3>Visualizza supplenze</h3>
    <form action="Visualizzazionesupplenze.php" method="GET" autocomplete="off">
      <div>
        <input type="text" name="codice_meccanografico" placeholder="Codice Meccanografico">
      </div>
      <button>Accedi</button>
    </form>
    Occhio ad eventuali errori di battitura.
    Ultima modifica di mzanella : 07-08-2018 alle ore 20.56.33

    I suggerimenti che do più spesso:


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

    Predefinito

    Siccome ho deciso di non mettere l'arco di tempo ma solo una data ho modificato cosi:
    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 è 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);
    mysqli_stmt_bind_param($stmt, "sss", $codice_meccanografico, $data);
    $result = mysqli_stmt_get_result($stmt);
    }
    ?>

    <h3>Visualizza supplenze del giorno:</h3>
    <form action="Visualizzazionesupplenze.php" method="GET">
    <input type="hidden" name="codice_meccanografico" value="$codice_meccanografico">
    <input type="date" name="data">

    <button>Invia</button>
    </form>

    <?php if (isset($result)): ?>
    <h3>Supplenze del giorno: <?php echo $data; ?></h3>
    <table>
    <thead>
    <tr>
    <th>Docente assente</th>
    <th>Data</th>
    <th>Ora</th>
    <th>Classe</th>
    <th>Materia</th>
    <th>Docente sostituto</th>>
    <th>Conferma</th>
    </tr>
    </thead>
    <tbody>
    <?php while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)): ?>
    <tr>
    <td><?php echo $row['doc_ass']; ?></td>
    <td><?php echo $row['data']; ?></td>
    <td><?php echo $row['ora']; ?></td>
    <td><?php echo $row['classe']; ?></td>
    <td><?php echo $row['materia']; ?></td>
    <td><?php echo $row['doc_sos']; ?></td>
    <td><?php echo $row['conferma']; ?></td>
    </tr>
    <?php endwhile; ?>
    </tbody>
    </table>
    <?php endif; ?>
    Ma in qualsiasi caso sia il tuo con l'arco di tempo che il mio non mi fa visualizzare nulla e mi è sparito il footer



    Ho trovato scritto (ha stampato bianco su bianco): "Codice meccanografico non inserito"
    vuol dire che non ha ricevuto il codice meccanografico
    Ultima modifica di relettronico : 07-08-2018 alle ore 21.21.10

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

    Predefinito

    Trovati gli errori:


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

    Warning: mysqli_stmt_get_result() expects parameter 1 to be mysqli_stmt, boolean given

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

    Predefinito

    mi è sparito il footer
    Beh, rimettilo

    Ho trovato scritto (ha stampato bianco su bianco): "Codice meccanografico non inserito"
    vuol dire che non ha ricevuto il codice meccanografico
    Esatto. Hai modificato gestionesupplenze/index.php come indicato?

    Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in /membri/relettronico/gestionesupplenze/Visualizzazionesupplenze.php on line 131
    MySQL non riesce a preparare la query. Hai controllato che sia corretta?
    Non conoscendo i nomi delle colonne ne ho usati di "inventati" ma verosimili. Puoi sostituire con questo per avere messaggi d'errore maggiormente esplicativi:
    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));
    }
    mysqli_stmt_bind_param($stmt, "sss", $codice_meccanografico, $data);
    $result = mysqli_stmt_get_result($stmt);
    }

    I suggerimenti che do più spesso:


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

    Predefinito

    Warning: mysqli_stmt_bind_param(): Number of elements in type definition string doesn't match number of bind variables in /membri/relettronico/gestionesupplenze/Visualizzazionesupplenze.php on line 131

    Può essere che la colonna id_scuola non viene selezionata ma non viene stampata?
    Ultima modifica di relettronico : 07-08-2018 alle ore 22.03.45

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

    Predefinito

    No, leggi bene l'errore: stai chiamando mysqli_stmt_bind_param indicando che vuoi impostare 3 parametri ("sss"), ma poi gliene passi solo due, è successo quando hai modificato il codice per lavorare con una sola data anziché un intervallo. Togli una "s":

    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));
    }
    mysqli_stmt_bind_param($stmt, "ss", $codice_meccanografico, $data);
    $result = mysqli_stmt_get_result($stmt);
    }
    Ultima modifica di mzanella : 07-08-2018 alle ore 23.02.47

    I suggerimenti che do più spesso:


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

    Predefinito

    Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given

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

    Predefinito

    L'esecuzione del prepared statement è fallita, meglio controllare la presenza di errori:
    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));
    }
    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));
    }
    }

    I suggerimenti che do più spesso:


Pagina 5 di 7 PrimoPrimo ... 34567 UltimoUltimo

Regole di scrittura

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