Visualizzazione risultati 1 fino 4 di 4

Discussione: Mysqli query non funziona, non esce niente come risultato

  1. #1
    onlinepaid non è connesso Utente AlterBlog
    Data registrazione
    26-09-2016
    Messaggi
    14

    Exclamation Mysqli query non funziona, non esce niente come risultato

    Ciao,
    sto facendo un'area riservata ma trovo problemi per la funzione query (con insert nulla ma con select si)
    ecco il file:

    Codice PHP:
    <?php include("db_con.php");
    include(
    "area_riservata.php");?>

    <html>
    <h2>Ecco il riepilogo delle tue pratiche:</h2><br><br><br>
    <table>

    <?php

    // Perform queries
    $query = "SELECT id, tipo, descrizione
    FROM pratiche
    WHERE id_utente = '
    $id_utente'";
    mysqli_close($connessione_al_server);
    // Check connection
    if (mysqli_connect_errno())
    {
    echo
    "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    if(
    mysqli_query == true)
    {
    echo
    ".

    "
    ;
    }


    ?>

    </table>

    </body>
    </html>
    Ultima modifica di onlinepaid : 27-07-2017 alle ore 03.13.15

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Devi chiudere la connessione a mysqli solo dopo che compi tutte le operazioni... Cmq. Il procedimento è il seguente.. Crei una variabile per la classica connessione a mysqli successivamente come primo argomento passi la variabile di connessione alla funzione mysqli_query() mentre il secondo argomento dovrà essere insert o select ecc.... Se ciò nonostante non funziona può darsi che la causa sia il passaggio dei dati, credo che utilizzi una form html per inviare i dati al php..
    PS.. Se id_utente corrisponde ad un intero (questo campo MySQL deve essere salvato come intero) .. Nella query si utilizzano gli apici solo per le stringhe.. e dal momento che anche PHP utilizza gli apici per le stringhe.. Puoi togliere gli apici da id_utente sia quando effettui questa query con il PHP o direttamente in MySQL.
    I form html inviano solo stringhe quindi si deve trasformare una stringa in un intero,
    Codice PHP:
    if(isset($_POST['id_utente'])) {
    $id_utente = $_POST['id_utente'];
    if(
    $id_utente[0] == '0' || intval($id_utente)) {
    // per non accettare valori negativi si deve anche controllare che $id_utente sia maggiore di zero if($id_utente[0] == '0' || intval($id_utente) > 0) {
    $id_utente = (int)$_POST['id_utente'];
    }
    else {
    echo
    "${id_utente} non è un numero intero";
    }
    }
    Ultima modifica di darbula : 27-07-2017 alle ore 17.43.33

  3. #3
    onlinepaid non è connesso Utente AlterBlog
    Data registrazione
    26-09-2016
    Messaggi
    14

    Predefinito i FILE

    questi sono i fie che uso:

    autenticazione.php:

    Codice PHP:
    <?php

    # inizializzazione della sessione

    @session_start();

    # inclusione del file di funzione

    @include_once 'functions.php';

    # istanza della classe

    $obj = new Iscrizioni();

    # chiamata al metodo per la verifica della sessione

    if ($obj->verifica_sessione())

    if (
    id_utente = 1){ echo '<html><a href="admin.php">vai a panello di controllo</a>'}

    {

    # redirect in caso di esito positivo

    @header("location:area_riservata.php");

    }

    # chiamata al metodo per l'autenticazione

    if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $login = $obj->verifica_login(htmlentities($_POST['email_o_nome_utente'], ENT_QUOTES), htmlentities($_POST['password'], ENT_QUOTES));

    # controllo sull'esito del metodo

    if ($login) {

    # redirect in caso di esito positivo

    @header("location:area_riservata.php");

    }else{

    # notifica in caso di esito negativo

    echo 'I dati indicati non sono corretti.';

    }

    }
    # form per l'autenticazione

    ?>

    <!DOCTYPE html>

    <html>

    <style>

    form {

    border: 3px solid #f1f1f1;

    }



    input[type=text], input[type=password] {

    width: 100%;

    padding: 12px 20px;

    margin: 8px 0;

    display: inline-block;

    border: 1px solid #ccc;

    box-sizing: border-box;

    }



    button {

    background-color: #4CAF50;

    color: white;

    padding: 14px 20px;

    margin: 8px 0;

    border: none;

    cursor: pointer;

    width: 100%;

    }



    button:hover {

    opacity: 0.8;

    }



    .cancelbtn {

    width: auto;

    padding: 10px 18px;

    background-color: #f44336;

    }



    .imgcontainer {

    text-align: center;

    margin: 24px 0 12px 0;

    }



    img.avatar {

    width: 20%;

    border-radius: 50%;

    }



    .container {

    padding: 16px;

    }



    span.psw {

    float: right;

    padding-top: 16px;

    }



    /* Change styles for span and cancel button on extra small screens */

    @media screen and (max-width: 300px) {

    span.psw {

    display: block;

    float: none;

    }

    .cancelbtn {

    width: 100%;

    }

    }

    div {margin-left: 20px;}

    p {margin-left: 10%;}

    img {margin-left: auto;}

    </style>

    <body>



    <h2>Login Form</h2>



    <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="form_autenticazione" name="autenticazione">

    <div class="imgcontainer">

    <img src="https://www.w3schools.com/howto/img_avatar.png" alt="Avatar" class="avatar">

    </div>



    <div class="container">

    <label><b>Username</b></label>

    <input type="text" name="email_o_nome_utente" placeholder="Username" /><br/>



    <label><b>Password</b></label>

    <input type="password" name="password" id="password" placeholder=Password /><br/>



    <button type="submit" name="invio_dati">Invia</button><br/><br/>

    <input type="checkbox" checked="checked"> Remember me

    <label><br><a href="iscrizione.php" title="Registrazione">Se non sei registrato puoi farlo adesso</a></label>

    </div>



    <div class="container" style="background-color:#f1f1f1">



    <button type="button" class="cancelbtn">Cancel</button>

    <span class="psw">Forgot <a href="mailto:services@youneshaoufadi.com?&subject=Recupero%20password&body=Nome utente:<br>%20ps:spedire con l'email usata per registrati nel sito o scrivila qui:%20">Password</a></span>

    </div>

    </form>



    </body>

    </html>

    FUNCTIONS.PHP

    Codice PHP:
    <?php

    # inclusione del file di configurazione

    @include_once 'config.php';

    # definizione della classe che conterrà i metodi per la gestione degli iscritti

    class Iscrizioni {



    # definizione del costruttore

    public function __construct()

    {

    # istanza della classe per la connessione al database

    $data = new DATA_Class();

    }



    # metodo per la registrazione

    public function registra($nome_reale, $nome_utente, $password, $email)

    {

    # tolgo eventuali spazi vuoti

    $nome_reale = trim($nome_reale);

    $nome_utente = trim($nome_utente);

    $password = trim($password);

    # verifico che il modulo sia stato compilato

    if (strlen($nome_reale) == 0 || strlen($nome_utente) == 0 || strlen($password) == 0) return false;

    else {

    # cifratura della password

    $password = @sha1($password);

    # confronto degli input con i dati contenuti in tabella

    $query = @mysql_query("SELECT id_utente FROM iscritti WHERE nome_utente = '$nome_utente' OR email = '$email'") or die('Errore: ' . mysql_error());

    # controllo sulla presenza di corrispondenze prodotte dal confronto

    $conta = @mysql_num_rows($query);

    # se il confronto non genera corrispondenze..

    if ($conta == 0)

    {

    # ..si procede con la registrazione..

    $risultato = @mysql_query("INSERT INTO iscritti(nome_utente, password, nome_reale, email) VALUES ('$nome_utente', '$password','$nome_reale','$email')") or die('Errore: ' .mysql_error());

    return
    $risultato;

    }else{

    # ..altrimenti l'esito della registrazione sarà negativo

    return false;

    }

    }

    }



    # metodo per l'autenticazione

    public function verifica_login($email_o_nome_utente, $password)

    {

    # cifratura della password

    $password = @sha1($password);

    # confronto degli input con i dati contenuti in tabella

    $query = @mysql_query("SELECT id_utente FROM iscritti WHERE (email = '$email_o_nome_utente' OR nome_utente='$email_o_nome_utente') AND password = '$password'") or die('Errore: ' . mysql_error());

    # controllo sulla presenza di una corrispondenza prodotta dal confronto

    $conta = @mysql_num_rows($query);

    # se il confronto genera una corrispondenza..

    if ($conta == 1)

    {

    # ..viene generata la sessione di login..

    $risultato = @mysql_fetch_object($query);

    $_SESSION['login'] = true;

    $_SESSION['id_utente'] = $risultato->id_utente;

    return
    true;

    }else{

    # ..altrimenti l'esito dell'autenticazione sarà negativo

    return false;

    }

    }



    # metodo per la visualizzazione del nome dell'utente loggato

    public function mostra_utente($id_utente)

    {

    # estrazione del nome reale sulla base dell'identificatore memorizzato in sessione

    $query = @mysql_query("SELECT nome_reale FROM iscritti WHERE id_utente = $id_utente") or die('Errore: ' . mysql_error());

    $risultato = @mysql_fetch_object($query);

    # stampa a video del nome reale dell'utente

    echo $risultato->nome_reale;

    }



    # metodo per il controllo sulla sessione

    public function verifica_sessione()

    {

    # il metodo restituisce l'informazione relativa alla sessione a patto che questa sia stata inizializzata

    if(isset($_SESSION['login']))

    {

    return
    $_SESSION['login'];

    }else{

    return
    false;

    }

    }



    # metodo per il logout

    # la sessione viene distrutta a seguito di uno specifico input dell'utente

    public function esci() {

    $_SESSION['login'] = FALSE;

    @
    session_destroy();

    }

    }

    ?>

    Aiutatatemi vi prego, il problema che insert va ma select no cioè uso insert.php per inserire e riepilogo.php per vedere con inclusi nei due area_riservata.php
    Ultima modifica di onlinepaid : 28-07-2017 alle ore 19.39.20

  4. #4
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Si ma nel database inserisci tutti i campi vuoti?
    EDIT: In realta non dovrebbe funzionare neppure la insert, poiche con la registra($nome_reale,$nome_utente,$password,$email ) ritornerebbe false, le variabile non sono dichiarate...Se la risposta è si, il problema sta che all'epoca questo script usava register_global il che consentiva di creare le variabili automaticamente, cioè senza dichiararle ($email_o_nome_utente = $_POST['email_o_nome_utente']; e $password = $_POST['password']; esempio dichiarazione variabili) Il tuo script ormai è vecchio, USA funzioni deprecate da PHP 5.4 "mysql e register_global".. Qui è un forum di scambio di opinioni non un forum che si insegna a diventare programmatori.. Purtroppo ci sono cose che si devono studiare e non provare alla cieca... Se tu sei consapevole di non saper camminare, puoi pensare a correre .
    Il form non è quello della registrazione ma solo quello della verifica login? Altrimenti non è corretto per com'è scritto
    Ultima modifica di darbula : 29-07-2017 alle ore 09.46.55

Tags for this Thread

Regole di scrittura

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