• User

    @probid said:

    Ciao a tutti,possibilmente evitiamo di andare ot o di creare discussioni e post di questo tipo.
    Se volete farlo,aprite un nuovo thread dove discutere su quale dei due metodi di redirect è migliore,così da non confondere l'eventuale utente inesperto che cerca aiuto. 😉 😉

    ah ok scusa
    @probid said:

    @Rinino: ciao,com'è andata poi,funziona lo script di wantley?
    Facci sapere,se non funziona ti aiutiamo noi! 😉
    grazie della fiducia -.- =P


  • User Attivo

    Wantley mi sta aiutando e parecchio...cmq, le faremo sapere!

    😉


  • User Attivo

    Allora, vi posto una pagina della mia applicazione di prova:

    Nella prima parte ho trovato molto utlili i metodi
    ob_start(); e ob_end_flush();

    Evito così l'annoso problema degle header gia mandati...

    Poi faccio il controllo sulla sessione per verificare i permessi direttamente sull'id della sessione...
    Infine ripristino la sessione per poter usare i valori salvati in essa...

    
    <?
    ob_start();
    if(session_id()==$_SESSION['IdSessione']){
    header('Location:../errore.php');
    ob_end_flush();
    }else{
    session_start();
    ?>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
            <title>Consulta rubrica</title>
            <style type="text/css" media="all">
            @import "../css/c.css"; .style1 {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-weight: bold;
        }
        .style2 {font-family: Geneva, Arial, Helvetica, sans-serif}
        </style>
    
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
        <meta http-equiv="Content-Language" content="eu-it" />
        <meta name="robots" content="all" />
    
        <meta http-equiv="imagetoolbar" content="false" />
    
        <meta name="MSSmartTagsPreventParsing" content="true" />
    
        <meta name="author" content="Rinino" />
        <meta name="Copyright" content=
              "Copyright (c) 2007 Adriano Abbruzzese" />
        <meta name="description" content=""/>
        <meta name="keywords" content= "" />
        <script type="text/javascript" src="/js/minmax.js">
        </script>
    
        <!--[if IE]>
        <script type="text/javascript" src="/js/pngfix.js"></script>
        <![endif]-->
     </head>
    
    
    <body>
    
    <div id="wrapper">
        <div class="hide"><a href="#content">Salta la navigazione</a></div>
        <div id="top"></div>
    
    <div id="content">
    
    <h3>Contatti di <? echo $_SESSION['nome']?>:</h3>
    <!-- <h4>Id sessione corrente: <? echo session_id(); ?><h4>
         <h4>Id sessione salvata: <? echo $_SESSION['IdSessione'] ?></h4>
         -->
    
      <?
        require "../connection/db.php";
    
        $tabellaUtente = $_SESSION['nome'] . "tabella";
    
        $query = "select nome, cognome, Telefono from $tabellaUtente order by nome";
        $res = mysql_query($query, $conn)
         or die("Si è verificato un errore: " . mysql_error() );
    
        $num_campi = mysql_num_fields($res);
        mysql_close($conn);
    
    
          while($row = mysql_fetch_row($res)){
            for($i=0; $i<$num_campi; $i++){
          ?>
      <p>
       <b><? echo mysql_field_name($res, $i) ?> :</b>
       <?
       if(!isset($row*)){
       ?>
       <b><? echo "NULL" ?></b>
       <?
       }else{
       ?>
       <b><? echo $row*; ?></b>
       <?}?>
      </p>
      <?
      }
      ?>
      <p>----------------------</p>
      <?
      }
      ?>
      <p>Torna alla <a href="../index.php">Home</a>.</p>
      <p>Per inserire un nuovo contatto clicca <a href="aggiungiContatto.php">qui</a>!</p>
      <p><a href="rubr1.php">Torna</a> alla gestione della rubrica </p>
      <p><a href="../logout.php">Disconnettiti.</a></p>
    </div><!-- content -->
    <div id="footer">
      <p>
          Copyright &copy; 2007 Adriano |
         design Adriano | Sito ottimizzato per Firefox
         </p>
      </div><!-- footer -->
    </div><!-- wrapper -->
     </body>
    </html>
    <?}?>
    
    ```Poi ho pensato ad un modo, abbastanza "rustico" per poter creare una tabella nella base di dati per ogni utente, e ogni utente può effettuare query solo sulla sua tabella:
    
    

    <?

    session_start();

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Crea tabella</title>
    <style type="text/css" media="all">
    @import "../css/c.css"; .style1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
    }
    .style2 {font-family: Geneva, Arial, Helvetica, sans-serif}
    </style>

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <meta http-equiv="Content-Language" content="eu-it" />
    <meta name="robots" content="all" />
    
    <meta http-equiv="imagetoolbar" content="false" />
    
    <meta name="MSSmartTagsPreventParsing" content="true" />
    
    <meta name="author" content="Rinino" />
    <meta name="Copyright" content=
          "Copyright (c) 2007 Adriano Abbruzzese" />
    <meta name="description" content=""/>
    <meta name="keywords" content= "" />
    <script type="text/javascript" src="/js/minmax.js">
    </script>
    <!--[if IE]>
    <script type="text/javascript" src="/js/pngfix.js"></script>
    <![endif]-->
    

    </head>
    <body>
    <div id="wrapper">
    <div class="hide"><a href="#content">Salta la navigazione</a></div>
    <div id="top"></div>

    <div id="content">
    <?
    if(session_id()==$_SESSION['IdSessione']){
    ?>
    <h3>Rubrica</h3>
    <?
    require "../connection/db.php";

    $tabellaUtente = $_SESSION['nome'] . "tabella";
    
    $sql = "CREATE TABLE $tabellaUtente ( "
     . "Id int PRIMARY KEY AUTO_INCREMENT, "
    

    . " Nome varchar(40), Cognome varchar(40), Telefono varchar(20))";

    $res = mysql_query($sql, $conn)
        or die("Si è verificato un errore: " . mysql_error() );
    
        mysql_close($conn);
    

    ?>
    <h3>Tabella creata!</h3>
    <?
    }else{
    ?>
    <h3>Non hai i permessi per visualizzare la pagina!</h3>
    <p>Torna alla <a href="../index.php">Home</a> per effettuare il login.</p>
    <?}?>
    </div><!-- content -->
    <div id="footer">
    <p>
    Copyright © 2007 Adriano |
    design Adriano | Sito ottimizzato per Firefox
    </p>
    </div><!-- footer -->
    </div><!-- wrapper -->
    </body>
    </html>

    In questa pagina non ho ancora usato il controllo che c'è in quella precedente...
    
    Sono solo le prime prove che sto facendo...sono apertissimo a consigli e critiche...
    
    Cmq, veramente gentili e scusate il "papiello"(termine in uso dalla popolazione indigena della mia città...:D)!

  • User

    perchè l'header farebbe schifo??

    se si programma come si deve è comodissimo... certo che se mischi l'html con il php potrai avere difficoltà a fare un redirect dopo aver inviato qualcosa al client...

    cmq mica ci stiamo incazzando :1:

    PS sorry per l'ot... sarà l'ultima volta


  • User

    xke crei una tabella x ogni utente?
    quante righe avrà ogni tabella dell'utente?
    come dice tarini nn mischiare php e html e poi nn hai chiuso la graffa di un else nella prima pagina


  • User Attivo

    Ma non dico che fa schifo...
    dicevo che non lo capivo bene...

    cmq, secondo te va bene la soluzione adottata?

    Per l'html nn so che dirti, sono alle prime armi in php...cmq tutto il tag <head></head> lo metterò in un file esterno da includere in ogni pagina...
    anche per il div footer...

    PS sorry per l'ot... sarà l'ultima volta

    che vuol dire?


  • User Attivo

    @Wantley said:

    xke crei una tabella x ogni utente?
    quante righe avrà ogni tabella dell'utente?

    Ogni utente ha una sua tabella...nn so, che mi consigli?


  • User

    fai un unica tabella degli utenti... e come hai già fatto usi l'ID come chiave primaria e ogni utente avrà la sua riga nella tabella e potrà modificare solo la sua riga

    x quanto riguarda l'html fai un file con in codice html che devi inserire in quel punto e poi fai include("nomefile"); così hai l'html da una parte e il php dall'altra


  • User Attivo

    no, la tabella utenti è una, poi c'è sta tabella con i contatti della rubrica (ripeto, applicazione di prova...) che potrà modificare a piacimento...
    anche se vedo di fare come mi hai consigliato...
    Grazie!


  • User

    aspetta prova a spiegarmi qul'è il prgetto così magari ci capisco d +


  • User Attivo

    Dopo il login (tabella utente) si può solo andare alla pagina di amministrazione della rubrica in cui, per ora, ho implementato solo 3 operazioni:

    1. crea una tabella nella base di dati
      2)aggiunge un contatto nella rubrica;
      3)consulta la sua rubrica;

    Ora devo implementare la cancellazione e la modifica di un contatto...

    quindi, ogni utente si crea la sua tabella dei contatti della rubrica...e dopo essersi loggato accede solo alla sua tabella...

    è concettualmente sbagliato?

    P.s.: esco, ti rispondo stasera...


  • User

    diciamo che nn è sbagliato allora analiziamo alcuni dati:
    -gli utenti possono inserire nella rubbrica solo altri utenti o anche persone "non utenti"?
    -quali sn i dati di ogni utente?
    -quali sn i dati di ogni rubbrica?


  • User Attivo

    Gli utenti possono inserire dei dati in una tabella che non ha niente a che vedere con gli altri utenti.
    Sono solo dati che vogliono conservare...(uso romantico delle basi di dati...:))
    Quindi ogniuno DEVE consultare solo la sua tabella...

    la tabella utenti ha:
    Id, cognome, nome e telefono.
    e questa è quella "replicata".

    Mentre, per ora ha:
    Id, username, password, nome ed email.

    Lo so, mi esprimo come una capra, ma l'importante è che alla fine ci capiamo!

    Cmq devo correggere una cosa:

    
    <?
    ob_start();
    session_start();
    if(session_id()!=$_SESSION['IdSessione']){
    header('Location:../errore.php');
    ob_end_flush();
    }else{
    ?>
    
    ```Questo è il codice giusto da inserire all'inizio della pagina...
    Ora gli headers vengono trattati correttamente e posso rimandare all'eventuale pagina d'errore senza problemi!
    
    Altro piccolo problemino: la password!
    Come faccio ad usare l'md5 o roba simile?
    
    Ora farò altre query, per completare tutte le operazioni sui dati, poi passerò ad altri tipi di contenuto, che ne so, tipo inserimento news visualizzabili in home page...che ne pensi?

  • User

    fare una tabella x ogni utente va a occupare molto spazio... nn puoi fare una tabella uteni con i dati deell'utente e come chiave id, una tabella rubbrica con i dati relativi a ogni persona in rubbrica (come chiave potresti usare ad esempio idContatto) e una relazione "ha in" (N a N) dove associ idutente e idcontatto
    le hai studiate le relazioni o devo spiegarmi meglio?


  • User Attivo

    le ho studiate, ma un po di tempo fa...me le andrò a rivedere!
    Cmq sto facendo questa prova proprio per imparare!


  • User Attivo

    Sentite, una mano su una select me la date?
    riesco a riempire la select con i dati che arrivano dalla base di dati, solo che stavolta non riesco a passarli alla pagina successiva!


  • User

    stesso problema che ho anche io... potresti usare le varibili http oppure registrare una varibile nella session
    xo nn mi convince nessuna delle 2 soluzioni... qualcuno ha un'altra soluzione?


  • User Attivo

    io cmq sono abituato ad usare variabili http...
    Poi se la gestione della sessione è la stessa che c'è con jsp, ci dovrebbe essere anche la richiesta e la pagina....


  • User

    no è meglio cn la sessione x 2 motivi
    1 appasre quello che hai letto dal db sulla barra usando le var http
    2 le var di una sessione le puoi usare in ogni pagina quindi se ti servono dei dati in + pagine con http è uno schifo


  • User Attivo

    Verissimo, infatti farò così!
    Grazie!

    Ah, se vuoi te la posso mandare, ma è molto grezza come applicazione.
    Mi serviva solo ad impare!
    Infatti adesso devo affinare tutto: organizzazione, codice e basedidati...