Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    LINK SU PAGINA CHE NON FUNZIONA

    Ho fatto un sistema nel quale, un utente si connette (con sua user e password) e visualizza i suoi dati (siccome è una prova ho messo solo due campi: nome ed età).
    Nella pagina dell'utente c'è la possibilità di variare i proprii dati e confermare le modifiche fatte.
    Dopo la conferma delle modifiche, vi è una pagina che informa che le modifiche sono state eseguite.
    Su quest'ultima pagina ho messo un link (che non mi funziona) che dovrebbe riportare l'utente alla pagina contenente i suoi dati.
    Logicamente il codice interagisce con ildatabase.
    Posto il codice in ordine di funzionamento:
    La pagina di login (il form):
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">

    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    title>modulo di login</title>
    <
    link href="layout.css" rel="stylesheet" type="text/css" />
    </
    head>

    <
    body>
    <
    div id="box_login">
      
      

      <
    form name="modulo" action="ricerca_dati.php" method="post">
      
    Pannello di ricerca:

        

        <
    label><class="corpo_centr">Username:
          <
    input type="user" name="codice_user" size="30" />
          </
    p>
        </
    label>
        
        <
    label><class="corpo_centr">Password:
          <
    input type="password" name="codice_password" size="30" />
          </
    p>
        </
    label>
        <
    input name="submit" type="submit" value="invia"/>
      </
    form>
      <
    class="link">[url="http://klaudio.ilbello.com/"]Created by XFORZA[/url]</p>
    </
    div>
    </
    body>
    </
    html
    La pagina "ricerca_dati.php" dove l'utente visualizza i dati ed eventualmente può variarli

    Codice PHP:
    <?php 
    //includo il file che mi serve
    include ("config.inc.php");

    // Recupero i dati dal form inserimento_login.php
    $codice_user $_POST['codice_user']; 
    $codice_password $_POST['codice_password']; 

    //mi connetto al database,user e password
    $db mysql_connect($db_host$db_user$db_password);
    //in caso di errore
    if ($db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");

    //mi connetto alla tabella
    mysql_select_db($db_name$db)
    //in caso di errore
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
            
    //preparo la query
    $query "SELECT user, password, nome, eta FROM utenze where user='$codice_user' and password='$codice_password'";

    //invio la query al database
    $result mysql_query($query$db);

    //recupero i dati che arrivano dal database
    $row mysql_fetch_array($result);

    $user=$row['user'];
    $password=$row['password'];
    $nome=$row['nome'];
    $eta=$row['eta'];


    echo 
    "La tua user e' : ".$user.'
    '
    ;
    echo 
    "La tua password e' : ".$password.'
    '
    .'
    '
    ;
    echo 
    "Nome : ".$nome.'
    '
    ;
    echo 
    "Eta : ".$eta.'
    '
    .'
    '
    ;
    ?> 



    <div id="box_login">
      
      

      <form name="modulo" action="save_nuovidati.php" method="post">
      Modifica i tuoi dati:

        

        <label><p class="corpo_centr">Nome:
          <input type="user" name="nome" value="<? echo $nome ?>"  size="20" />
          </p>
        </label>
        
        <label>
        <p class="corpo_centr">Eta':
          <input type="name" name="eta" value="<? echo $eta ?>" size="5" />
        </p>
        </label>
            <label>
        <p class="corpo_centr">user:
          <input type="hidden" name="user" value="<? echo $user ?>" size="20" />
        </p>
        </label> 
           <label>
        <p class="corpo_centr">password:
          <input type="hidden" name="password" value="<? echo $password?>" size="20" />
        </p>
        </label>
        <input name="submit" type="submit" value="invia"/>
      </form>
    </div>
    e questa è la pagina "save_nuovidati.php" che salva i dati (e dove c'è il link che non mi funziona)
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>GuestBook</title>
    </head>

    <body>

    <?php
    include("config.inc.php");

    //recupero i dati da form modifica_dati.php
    $nome=$_POST['nome'];
    $eta=$_POST['eta'];
    $user=$_POST['user'];
    $password=$_POST['password'];

    //verifico che tutti i campi del form siano pieni

    if (empty($nome) || empty($eta)):
      echo 
    'Uno o più campi obbligatori sono vuoti!
    '

      echo 
    '[url="modifica_dati.php"]Torna indietro[/url]'
    {
        exit;
    }

    else :
      
    $nome addslashes(stripslashes($nome));
      
    $eta addslashes(stripslashes($eta));

      
    $nome str_replace("<""&lt;"$nome);
      
    $nome str_replace(">""&gt;"$nome);   
      
    $eta str_replace("<""&lt;"$eta);
      
    $eta str_replace(">""&gt;"$eta);
      
      
    $data_gdate("d");
      
    $data_mdate("m");
      
    $data_adate("y");
      
        
    $data mktime("0""0""0"$data_m$data_g$data_a);                                      
      
    //mi connetto al database,user e password
    $db mysql_connect($db_host$db_user$db_password);
    //in caso di errore
    if ($db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");

    //mi connetto alla tabella
    mysql_select_db($db_name$db)
    //in caso di errore
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    //inseriamo i dati
    $query "UPDATE utenze SET user = '$user', password = '$password', nome = '$nome', eta = '$eta' WHERE user = '$user' LIMIT 1";

    //verifico l'inserimento
        
    if (mysql_query($query$db))
        { 
      echo 
    "dati salvati correttamente".'
    '
    ;
      echo 
    '[url="ricerca_dati.php"]Clicca qui per tornare alla tua pagina[/url]';
    }
     else
     {
      echo 
    "Errore durante l'inserimento";
      }

      
    mysql_close($db);
    endif; 
    // chiude la verifica della presenza dei dati

    ?>

    </body>
    </html>
    Questa e la riga che non funziona: echo 'Clicca qui per tornare alla tua pagina';

    So perchè non va, ma non riesco a risolvere il problema, mi spiego:
    per far funzionare lo script, mi porto in tutte le pagine la user e la password inseriti dall'utente.
    Faccio questo per poter puntare con esattezza, ai record dell'utente presenti nel database.
    Quindi il link nell'ultimo file non funziona in quanto, torna correttamente alla pagina dell'utente, ma non riesce a visualizzare i dati dell'utente (in quanto non ha la user e la password per puntare alla riga nel database relativa all'utente).

    Premetto che ho fatto in questo modo in quanto da autodidatta mi è sembrato il modo corretto (anche se ora comincio a dubitarne).
    Ora chiedevo:
    1- è corretto programmare in questo modo? e se non corretto, in che modo potrei fare per portarmi "in giro" le credenziali di accesso dell'utente?
    2-se come ho fatto va bene, come risolvo il problema che ho, relativo al ritorno della pagina?
    Ogni critica, costruttiva, è ben accetta.
    Grazie

  2. #2
    devi usare le sessioni

    e le sessioni accoppiate ad un cookie sono la soluzione a tutti questi problemi
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Grazie Daniele per l'indicazione, mi puoi indicare una buona guida dove studiare quello che mi dici?

    ciao

  4. #4
    Direi che potresti partire a leggere questo
    http://forum.html.it/forum/showthrea...hreadid=291909

    è parecchio vecchio quindi non farci troppo affidamento ... usalo per farti un'idea

    PHP supporta un sistema di sessioni, ma sinceramente è lento, poco affidabile e poco flessibile ... per maggiori informazioni qui
    http://www.php.net/manual/en/features.sessions.php

    Qui una pagina utile sulla sicurezza delle sessioni di php
    http://php.html.it/guide/lezione/299...e-di-sessione/

    e da qui in poi
    http://php.html.it/guide/lezione/299...-sessioni-php/

    Dai una lettura anche a questo
    http://php.html.it/articoli/leggi/28...e-degli-array/

    Infine, dai una lettura a questo
    http://php.html.it/articoli/leggi/87...native-in-php/

    Ed implementa le sessioni per come sono spiegate li ^^
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    sei un mago, grazie di nuovo.
    Mi immergo nello studio.

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.