Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di tom69
    Registrato dal
    Mar 2004
    Messaggi
    150

    Uguaglianza fra 2 dati...

    Buonasera...
    Ho un form dal quale un utente passa un valore ad un'altra pagina... questo valore sarà poi incorporato in una query e successivamente quest'ultima verrà eseguita...
    Quello di cui ho bisogno è un controllo che mi verifichi l'esistenza di un valore contenuto in un record uguale a quello che l'utente inserisce nel form...

    Esempio così mi spiego meglio:
    L'utente inserisce l'id di un libro che vuole visualizzare.. se nel db esiste quell'id il libro verrà stampato altrimenti ci sarà una scritta di errore...

    grazie
    Pochi vivono: la maggior parte della gente esiste e nulla più...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    61
    Codice PHP:
    $verifica_id mysql_query ("SELECT id FROM $tabella WHERE id='$id'");
    if ((
    $verifica_id) > 0)
         {
    echo
    "L'id esiste, mostro il libro";
          }
    else
    {
    echo 
    "Il libro selezionato non esiste!";

    Non commento perchè mi sembra piuttosto chiaro come esempio.
    L'idea è questa, poi magari qualcuno più bravo te lo sa far meglio.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    61
    Ancora meglio forse è fare un isset sull'id inviato, piuttosto che verificare "soltamente" se l'id è superiore a zero.

  4. #4
    prima di usare l'id che arriva dall'esterno consiglierei un cast forzato per andare sul sicuro:

    $id = (int)$_POST['id'];

  5. #5
    se l'id nn è un intero utilizza la funzione mysql_escape_string:

    $id=mysql_escape_string($_GET['id']);

    questa funzione aggiunge tutti gli \ utili al valore passato evitando il mysql injection faccio un esempio:

    se questa è la tua query "SELECT * FROM tabella WHERE id='{$_GET['id']}'"

    se io passo una cosa del genere

    www.miosito.it/prova.php?id=' OR 'a'='a

    ke succede??
    in $_GET['id'] hai ' OR 'a'='a

    proviamo a sostituire nella query

    "SELECT * FROM tabella WHERE id='' OR 'a'='a'"

    cosa è successo?? è successo ke la query creata seleziona tutti i record della tabella xkè 'a' è sempre = a 'a'.


    invece se prima di inviare l'id alla query lo facciamo passare sotto alla funzione ke ti ho citato prima la query diventa così:

    "SELECT * FROM tabella WHERE id='\\' OR \\'a\\'=\\'a'"

    e nn crea nessun problema.
    Spero di essere stato abbastanza chiaro

  6. #6
    Utente di HTML.it L'avatar di tom69
    Registrato dal
    Mar 2004
    Messaggi
    150
    Grazie, avete colmato ogni minimo dubbio che avevo!!!

    Pochi vivono: la maggior parte della gente esiste e nulla più...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.