Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    6

    Modifica e ricerca di un record attraverso form non funzionante

    Salve a tutti, come da titolo sto realizzando un sito per la scuola...
    Il problema è che nonostante ci sto combattendo da ben 2 settimane non vuole proprio funzionare e comincio a perderci le speranze. Dovrei realizzare un sito html che attraverso i vari form permetta a un dato utente di registrarsi, eliminare, modificare e ricercare i propri dati registrati in un database.
    La registrazione e l'eliminazione funzionano correttamente, il problema sono la modifica e la ricerca che nonostante ho provato più volte a modificare e a giocarci non sono riuscito a farli funzionare

    Questa è la pagina html con i form:
    codice:
    
    
    codice HTML:
    <!DOCTYPE HTML><html>
    <head>  <title></title>  <link rel="stylesheet" type="text/css" href="style/style.css" title="style" /></head>
    <body>  <div id="main">    <div id="header">      <div id="logo">        <div id="logo_text">          <h1><a href="index.html">--<span class="logo_colour">--</span></a></h1>          <h2>Esami di stato 2014 - ITIS Informatico</h2>        </div>      </div>      <div id="menubar">        <ul id="menu">          <li><a href="index.html">Home</a></li>          <li><a href="examples.html">ESE</a></li>          <li><a href="page.html">ESE1</a></li>          <li><a href="another_page.html">ESE2</a></li>          <li class="selected"><a href="contact.html">Registrati</a></li>        </ul>      </div>    </div>    <div id="site_content">      <div id="content">        <h1>Registrati, elimina, modifica o ricerca un'utente!</h1>        <p>Scegli l'opzione che più ti conforta...</p>        <form action="Registrati.php" method="post" name="Registrati" id="Registrati">          <div class="form_settings">            <h3>Registrati:</h3>            Inserisci il tuo nickname: <br>            <input type="text" name="NICK"><br/>              <br>            Inserisci la tua password: <br>            <input type="text" name="PASS"><br/>              <br>            Inserisci la tua email: <br>            <input type="text" name="EMAIL"><br/>            <p style="padding-top: 15px"><input class="submit" type="submit" name="Registrati" value="Registrati" /></p>          </div>        </form>        <h3>Eliminati:</h3>        <form action="Elimina.php" method="post" name="Elimina" id="Elimina">          <div class="form_settings">            Inserisci il tuo nickname: <br>            <input type="text" name="NICK"><br/>              <br>            Inserisci la tua password: <br>            <input type="text" name="PASS"><br/>              <br>            Inserisci la tua email: <br>            <input type="text" name="EMAIL"><br/>            <p style="padding-top: 15px"><input class="submit" type="submit" name="Eliminati" value="Eliminati" /></p>          </div>          </form>       <h3>Modifica il tuo account:</h3>         <form action="Modifica.php" method="post" name="Modifica" id="Modifica">            <div class="form_settings">            Inserisci la password dell'utente che vuoi modificare:            <input type="text" name="PASS"><br/>            <br>            Inserisci il nuovo nickname: <br>            <input type="text" name="NICK2"><br/>              <br>            Inserisci la nuova password: <br>            <input type="text" name="PASS2"><br/>              <br>            Inserisci la nuova email: <br>            <input type="text" name="EMAIL2"><br/>            <p style="padding-top: 15px"><input class="submit" type="submit" name="Modifica" value="Modifica" /></p>           </div>            </form>        <h3>Ricerca dati utente:</h3>        <form action="Ricerca.php" method="post" name="Ricerca" id="Ricerca">            <div class="form_settings">            Inserisci la password dell'utente che vuoi ricercare:            <input type="text" name="PASS"><br/>            <p style="padding-top: 15px"><input class="submit" type="submit" name="Ricerca" value="Ricerca" /></p>           </div>        </form>      </div>    </div>    <div id="footer">      Copyright &copy; 2014</a>    </div>  </div></body></html>
    Questo il codice php della modifica:
    codice:
    
    
    Codice PHP:
    <?phpif(isset($_POST["Modifica"])){$PASS=$_POST["PASS"];$NICK2=$_POST["NICK2"];$PASS2=$_POST["PASS2"];$EMAIL2=$_POST["EMAIL2"];$NICK=addslashes($NICK);$PASS=addslashes($PASS);$EMAIL=addslashes($EMAIL);$db=mysql_connect("localhost""root");if (!$db)    {    echo "errore di connessione";    exit;    }else     {      echo "Connesso;";      mysql_select_db("utenter");      $query "update datiutente set NICK = '".$NICK2."', PASS = '".$PASS2"."', EMAIL = '".$EMAIL2."' where PASS = '".$PASS."'" ;      $result=mysql_query($query);     }if (!$result){$url="RimandaME.html";header("Location: $url");}else{$url="RimandaMO.html";header("Location: $url");}}?>
    Il codice della ricerca:
    codice:
    
    
    Codice PHP:
    <?phpif(isset($_POST["Ricerca"])){$NICK=$_POST["NICK"];$PASS=$_POST["PASS"];$EMAIL=$_POST["EMAIL"];$NICK=addslashes($NICK);$PASS=addslashes($PASS);$EMAIL=addslashes($EMAIL);$db=mysql_connect("localhost""root");if (!$db)    {    echo "errore di connessione";    exit;    }else     {        echo "Connesso;";        mysql_select_db("utenter");        $query="SELECT ('".$NICK."','".$PASS."','".$EMAIL."')";        $query="FROM datiutente";        $query="WHERE PASS='$PASS'";        $result=mysql_query($query);     }if (!$result){$url="RimandaRiE.html";header("Location: $url");}else{$url="RimandaRiO.html";header("Location: $url");}}?>
    Sapete dirmi dove sbaglio?

    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Guarda, intanto ti pregherei di dare una formattata al codice perchè così è pressocchè illeggibile.

    da quello che ho visto, in questo secondo script php tu provi a concatenare varie stringhe in $query. In realtà non stai facendo questo perchè hai scritto "$query=" su tutte le linee, mentre la concatenazione si fa utilizzando dal secondo spezzone "$query .="

    Questo intanto è quello che ho visto, se sistemi il codice sopra provo a rileggere bene.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    6
    Prima di tutto grazie mille per la risposta, il mio problema ora è concentrato tutto sulla ricerca! Il mo obiettivo è la ricerca di un record all'interno del database e la sua stampa, l'utente deve inserire nel form la propria password e il codice deve poi stampare il nickname e l'email su un'altra pagina in HTML...

    Codice html del form:

    <h3>Ricerca dati utente:</h3>
    <form action="Ricerca.php" method="post" name="Ricerca" id="Ricerca">
    <div class="form_settings">
    Inserisci la password dell'utente che vuoi ricercare:
    <input type="text" name="PASS"><br/>
    <p style="padding-top: 15px"><input class="submit" type="submit" name="Ricerca" value="Ricerca" /></p>
    </div>
    </form>

    Codice PHP della ricerca:

    <?php
    if(isset($_POST["Ricerca"])){
    $NICK=$_POST["NICK"];
    $PASS=$_POST["PASS"];
    $EMAIL=$_POST["EMAIL"];
    $NICK=addslashes($NICK);
    $PASS=addslashes($PASS);
    $EMAIL=addslashes($EMAIL);
    $db=mysql_connect("localhost", "root");
    if (!$db)
    {
    echo "errore di connessione";
    exit;
    }
    else
    {
    echo "Connesso;";
    mysql_select_db("utenter");
    $query="SELECT ('".$NICK."','".$PASS."','".$EMAIL."')";
    $query="FROM datiutente";
    $query="WHERE PASS='$PASS'";
    $result=mysql_query($query);
    }
    if (!$result)
    {
    $url="RimandaRiE.html";
    header("Location: $url");
    }
    else
    {
    $url="RimandaRiO.html";
    header("Location: $url");
    }
    }
    ?>

    Qualsiasi cosa scrivo nel form mi dice che non ha trovato nulla...

  4. #4
    Io verificherei la query che hai creato in $query facendone un echo, magari ha degli errori la query stessa, non di sintassi, ma di logica...

    In più, nel caso in cui la query fosse riuscita, perchè fai un redirect ad un'altra pagina? Se ho capito bene a quel punto dovresti mostrare i dati di quell'utente...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    6
    Quote Originariamente inviata da Shores Visualizza il messaggio
    Io verificherei la query che hai creato in $query facendone un echo, magari ha degli errori la query stessa, non di sintassi, ma di logica...

    In più, nel caso in cui la query fosse riuscita, perchè fai un redirect ad un'altra pagina? Se ho capito bene a quel punto dovresti mostrare i dati di quell'utente...
    Purtroppo a me serve così, l'utente inserisce la propria password e lo script php deve prendere dal database l'email e il suo nick e stamparli in un altra pagina HTML;

    Ho provato questo codice ma mi dice solo quante persone sono presenti nel database con lo stesso nickname e comunque non sono riuscito a reindirizzare il risultato su un'altra pagina

    Nuovo script:

    <?php
    if(isset($_POST["Ricerca"])){
    $NICK=$_POST["NICK"];
    $PASS=$_POST["PASS"];
    $EMAIL=$_POST["EMAIL"];
    $NICK=addslashes($NICK);
    $PASS=addslashes($PASS);
    $EMAIL=addslashes($EMAIL);
    $db=mysql_connect("localhost", "root");
    if (!$db)
    {
    echo "errore di connessione";
    exit;
    }
    else
    {
    echo "Connesso;";
    mysql_select_db("utenter");
    $query="SELECT * FROM datiutente WHERE NICK='".$NICK."'";
    $result=mysql_query($query);
    $num_results = mysql_num_rows($result);
    echo "Numero di utenti trovati: ".$num_results."<br>";
    for ($i=0; $i <$num_results; $i++){
    $row = mysql_fetch_array($result);
    echo "Nickname: ";
    echo stripslashes($row["NICK"]);
    }
    }
    }
    ?>

    Consigli?

  6. #6
    Scusami, ma non ci siamo: il codice php che è contenuto in una pagina NON PUO' modificare in nessuna maniera ciò che un'ALTRA pagina mostra...

    Allora, prima di tutto, come vuoi fare la ricerca?

    L'utente ti fornisce la sua password e basta e tu cerchi quella? Non mi sembra sufficiente, in fondo io e te potremmo per caso avere scelto la stessa password, e questo significherebbe che io potrei vedere e modificare i tuoi dati, non mi sembra ok...

    Se come probabile vuoi che sia solo chi ha inserito una certo nick a poterlo ritrovaree modificare, devi cercare SIA per nick che per password (WHERE nick="$NICK" AND password="$PASS" ) .

    (senza contare che non bisogna MAI inserire un valore inserito dall'utente in una query senza avere effettuato un escape con l'apposita funzione mysql_real_escape_string)

    Detto questo, quando fai

    echo stripslashes($row["NICK"]);

    significa che ritieni che nel database il campo che esiste si chiami NICK tutto maiuscolo, sei sicuro che sia così?

    Verifica queste cose e sappici dire!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    6
    Quote Originariamente inviata da Shores Visualizza il messaggio
    Scusami, ma non ci siamo: il codice php che è contenuto in una pagina NON PUO' modificare in nessuna maniera ciò che un'ALTRA pagina mostra...

    Allora, prima di tutto, come vuoi fare la ricerca?

    L'utente ti fornisce la sua password e basta e tu cerchi quella? Non mi sembra sufficiente, in fondo io e te potremmo per caso avere scelto la stessa password, e questo significherebbe che io potrei vedere e modificare i tuoi dati, non mi sembra ok...

    Se come probabile vuoi che sia solo chi ha inserito una certo nick a poterlo ritrovaree modificare, devi cercare SIA per nick che per password (WHERE nick="$NICK" AND password="$PASS" ) .

    (senza contare che non bisogna MAI inserire un valore inserito dall'utente in una query senza avere effettuato un escape con l'apposita funzione mysql_real_escape_string)

    Detto questo, quando fai

    echo stripslashes($row["NICK"]);

    significa che ritieni che nel database il campo che esiste si chiami NICK tutto maiuscolo, sei sicuro che sia così?

    Verifica queste cose e sappici dire!
    grazie mille per gli aiuti, ora ho risolto l'ultima pecca è che adesso mi esce questo errore (anche se lo script funziona):

    Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\PRO1\Ricerca.php on line 5

    Come faccio a non farlo visualizzare sulla pagina?

  8. #8
    Non puoi: quel messaggio dice che devi convertire le tue chiamate alle funzioni mysql_* in chiamate alle funzioni mysqli_* ed è una buona idea che tu lo faccia, visto che:

    1) Nelle prossime versioni di php le funzioni mysql_* non esisteranno più
    2) Le funzioni mysqli_ sono quasi identiche a quelle mysql_ quindi non è troppo lavoro fare questo cambio: dai però una controllata alla sintassi, perchè NON tutte hanno esattamente gli stessi parametri nello stesso ordine.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

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.