• User Attivo

    TI IMPLORO IN GINOCCHIO DI AIUTARMI!!!!

    Senti sto avendo molti problemi con il tuo script e vorrei risolverli allora

    1. il $_SESSION['id'] non mi funziona
    2. il login non funziuona e ho scoperto che se metto il session_start() nel config.ini il login va se lo metto nella apgina privata il login non và ti posto il codice, in poche parole la pagina privata non mi riconosce come utente registrato...ti posto qui l'inizio del codice della pagina privata
      [php]
      <?
      session_start();
      // Se non è stata definita la variabile manda l'utente alla homepage
      if(!isset($_SESSION['login']))
      {
      header('Location: index.php');
      exit;
      }
      [/php]

  • ModSenior

    Ciao Zomer,
    Il codice che hai postato mi sembra corretto.


  • User Attivo

    E allora perchè non mi funziona? Prova tu questo è la index metti accedi e poi account Zomer e pass tgbyhn vedi che ti rimanda alla index!

    h**p://zomer.altervista.org/index.php


  • ModSenior

    Posta il codice per intero della pagina privata e del file login.php da te usato.


  • User Attivo

    login.php

    [PHP]
    <?php
    // Includo la connessione al database
    require('config.ini.php');

    // Se il modulo viene inviato...
    if(isset($_POST['login']))
    {

    // Dati Inviati dal modulo
    $user = (isset($_POST['user'])) ? trim($_POST['user']) : '';    // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato d� di default ''
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : '';    // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato d� di default ''
    
    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $user = addslashes($user);
        $pass = addslashes($pass);
    }
    
    // Crypto la password e la confronto con quella nel database
    $pass = md5($pass);
    
    // Controllo l'utente esiste
    $query = mysql_query("SELECT id,attivazione FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1");
    
    // Se ha trovato un record
    if(mysql_num_rows($query) == 1)
    {
        // prelevo l'id dal database
        $login = mysql_fetch_array($query);
        // L'account � attivo?
        if($login['attivazione'] == '')
        {
        // Creo una variabile di sessione
        $_SESSION['login'] = $login['id'];
    
        // reindirizzo l'utente
        header('Location: home.php');
        exit;
        }
        else
        {
        die('Attiva il tuo account!!!');
        }
    }
    // se non esiste da l'errore
    else
        die('Nome Utente o Password errati');
    

    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "hp://w.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="h**p://**w.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Login</title>
    </head>

    <body>
    <form action="" method="post">
    <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" />
    <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" />
    <input name="login" type="submit" value="Login" />
    </form>
    </body>
    </html>

    [/PHP]

    home.php
    [PHP]
    <?
    session_start();
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }

    //controllo se sono presenti richieste sul utente
    echo "<div id="richieste">";

    if(isset($_SESSION['user']) && isset($_SESSION['id']) && isset($_SESSION['nome']) )
    {
    $c=0;
    echo "<script language='javascript'>
    var richiesta = new Array();";
    //si conette al database è trova l'id dell'amico
    require('config.ini.php');
    $query="SELECT id_amico FROM richieste".$_SESSION['id']." WHERE 1";
    if($risultato = mysql_query($query))
    {
    while($row = mysql_fetch_array($risultato))
    {
    //if(strlen($row['amico'])>0)
    echo "richiesta[".$c++."] = '".$row['id_amico']."';";
    }
    // riapre il database e con l'id_amico trova il nome e cognome associato all'id
    $query = mysql_query("SELECT user,nome FROM utenti WHERE nome = '".$name."' LIMIT 1");
    //chiude il database
    mysql_close($db);

                    if($c>0)
                 //invia il messaggio al utente
                 $testo = '';
        if($row['tipo'] == "1") //o quello che hai deciso per le amicizie
        $testo = " L'utnete '$name' ti ha chiesto di essere suo amico ";
         //gli da la doppia chance
         echo "     $testo <a href='amicizia.php?amico_aggiungi=".$_row['user']."'>Accetta</a> 
                                <a href='amicizia.php?amico_elimina=".$_row['user']."'>Ignora</a><br>";
                }
                else
                errore('ERRORE QUERY');
                echo "</script>";
    
            }
    

    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "hp://w.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title>huiijl</title>
    <link rel="stylesheet" href="stili/prof-menu/prof-menu.css">
    <link rel="stylesheet" href="stili/barra/barra.css">
    </head>
    <body>
    <table style="height: 16px; width: 1089px;" cellpadding="0"
    cellspacing="0">
    <tbody>
    <tr>
    <td> </td>
    <td style="text-align: center;">
    <script type="text/javascript">
    //<![CDATA[
    document.write('<s'+'cript type="text/javascript" src="h**p://ad.altervista.org/js.ad/size=728X90/r='+new Date().getTime()+'"></s'+'cript>');
    //]]>
    </script></td>
    <td style="text-align: right;"><a href="logout.php"><img
    style="border: 0px solid ; width: 82px; height: 18px;"
    alt="Esci e buon divertiemnto :D"
    src="immagini/button/button_esci.gif"></a>
    <a href="ricerca1.php">Cerca amico</a>
    </td>
    </tr>
    </tbody>
    </table>
    <table style="width: 1089px; height: 118px;" cellpadding="0"
    cellspacing="0">
    <tbody>
    <tr>
    <td> <a href="home.php"><img
    style="border: 0px solid ; width: 300px; height: 110px;"
    alt="Zomer-Home" src="/loghi/logo.png"></a><br>
    </td>
    <td> <li class="green">
    <p><a href="#">Il mio profilo</a></p>
    <p class="subtext"> </p>
    </li>
    <li class="yellow">
    <p><a href="costruzione.html">MyBlog</a></p>
    <p class="subtext"></p>
    </li>
    <li class="red">
    <p><a href="costruzione.html">Messaggi</a></p>
    <p class="subtext"></p>
    </li>
    <li class="blue">
    <p><a href="amici.php">Amici</a></p>
    <p class="subtext"></p>
    </li>
    </td>
    </tr>
    </tbody>
    </table>
    <br>
    <br>
    <br>
    <br>
    <br>
    <table style="width: 109px; height: 35px;" cellpadding="0"
    cellspacing="0">
    <tbody>
    <tr>
    <td><a href="avatar/index.htm"><img style="border: 0px solid ; width: 92px; height: 26px;"
    alt="Cairca una foto" src="immagini/button/button_carica.gif"></a>
    </td>
    </tr>
    </tbody>
    </table>
    <br>
    <br>
    <div id="bottom">
    Barra
    </body>
    </html>
    [/PHP]


  • ModSenior

    home.php
    [php]
    <?php
    require('config.ini.php');
    // Se non è stata definita la variabile manda l'utente alla homepage
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }

    //controllo se sono presenti richieste sul utente
    echo "<div id="richieste">";

    if(isset($_SESSION['user']) && isset($_SESSION['id']) && isset($_SESSION['nome']) )
    {
    $c=0;
    echo "<script language='javascript'>
    var richiesta = new Array();";
    //si conette al database è trova l'id dell'amico

                $query="SELECT id_amico FROM richieste".$_SESSION['id']." WHERE 1";
                if($risultato = mysql_query($query))
                {
                    while($row = mysql_fetch_array($risultato))
                    {
                        //if(strlen($row['amico'])>0)
                        echo "richiesta[".$c++."] = '".$row['id_amico']."';";
                    }
                     // riapre il database e con l'id_amico trova il nome e cognome associato all'id
                       $query = mysql_query("SELECT user,nome FROM utenti WHERE nome = '".$name."'   LIMIT 1");
    
                    if($c>0)
                 //invia il messaggio al utente
                 $testo = '';
        if($row['tipo'] == "1") //o quello che hai deciso per le amicizie
        $testo = " L'utnete '$name' ti ha chiesto di essere suo amico ";
         //gli da la doppia chance
         echo "     $testo <a href='amicizia.php?amico_aggiungi=".$_row['user']."'>Accetta</a> 
                                <a href='amicizia.php?amico_elimina=".$_row['user']."'>Ignora</a><br>";
                }
                else
                errore('ERRORE QUERY');
                echo "</script>";
    
            }
    

    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "hp://w.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title>huiijl</title>
    <link rel="stylesheet" href="stili/prof-menu/prof-menu.css">
    <link rel="stylesheet" href="stili/barra/barra.css">
    </head>
    <body>
    <table style="height: 16px; width: 1089px;" cellpadding="0"
    cellspacing="0">
    <tbody>
    <tr>
    <td> </td>
    <td style="text-align: center;">
    <script type="text/javascript">
    //<![CDATA[
    document.write('<s'+'cript type="text/javascript" src="h**p://ad.altervista.org/js.ad/size=728X90/r='+new Date().getTime()+'"></s'+'cript>');
    //]]>
    </script></td>
    <td style="text-align: right;"><a href="logout.php"><img
    style="border: 0px solid ; width: 82px; height: 18px;"
    alt="Esci e buon divertiemnto :D"
    src="immagini/button/button_esci.gif"></a>
    <a href="ricerca1.php">Cerca amico</a>
    </td>
    </tr>
    </tbody>
    </table>
    <table style="width: 1089px; height: 118px;" cellpadding="0"
    cellspacing="0">
    <tbody>
    <tr>
    <td> <a href="home.php"><img
    style="border: 0px solid ; width: 300px; height: 110px;"
    alt="Zomer-Home" src="/loghi/logo.png"></a><br>
    </td>
    <td> <li class="green">
    <p><a href="#">Il mio profilo</a></p>
    <p class="subtext"> </p>
    </li>
    <li class="yellow">
    <p><a href="costruzione.html">MyBlog</a></p>
    <p class="subtext"></p>
    </li>
    <li class="red">
    <p><a href="costruzione.html">Messaggi</a></p>
    <p class="subtext"></p>
    </li>
    <li class="blue">
    <p><a href="amici.php">Amici</a></p>
    <p class="subtext"></p>
    </li>
    </td>
    </tr>
    </tbody>
    </table>
    <br>
    <br>
    <br>
    <br>
    <br>
    <table style="width: 109px; height: 35px;" cellpadding="0"
    cellspacing="0">
    <tbody>
    <tr>
    <td><a href="avatar/index.htm"><img style="border: 0px solid ; width: 92px; height: 26px;"
    alt="Cairca una foto" src="immagini/button/button_carica.gif"></a>
    </td>
    </tr>
    </tbody>
    </table>
    <br>
    <br>
    <div id="bottom">
    Barra
    </body>
    </html>
    [/php]EDIT: non vedo dove dai valore a $_SESSION['user'] e $_SESSION['nome'].
    EDIT2: Questa query:
    [php]$query="SELECT id_amico FROM richieste".$_SESSION['id']." WHERE 1";[/php]
    Dovrebbe generare errori di sintassi.


  • User Attivo

    Ancora non funziona.
    Come dovrebbe essere la query?


  • ModSenior

    Non sò come hai strutturato la cosa dovrebbe essere cosi:
    [php]$query="SELECT id_amico FROM richieste WHERE campo = '{$_SESSION['id']}'"; [/php]

    Al posto di:
    [php]
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }
    [/php]
    Metti:
    [php]
    echo $_SESSION['login'];
    [/php]

    Nel file config.ini.php hai messo session_start?


  • User Attivo
    1. dreamwear mi diceva che andava bene come era la query
    2. la pagina si apre normale e l'echo non restituisce niente
    3. Il, session_start() lo devi mettere solo dove serve, non in config.inc.php.

  • ModSenior

    Dreamweaver può dire quello che vuole, ricordo che in php non si può programmare con editor visuali, ovvio che nel codice poi ci sono 3000 problemi.
    Il session_start ti serve in tutte le pagine invece di ripeterlo 300 volte lo apri una volta.


  • User Attivo

    ho inserito il session start e mi da qeusto errore
    Parse error: syntax error, unexpected T_VARIABLE in /membri/zomer/config.ini.php on line **4

    ecco il codice
    **[PHP]
    <?php
    session_start()
    // Dati connessione al database
    $db_host = 'localhost'; // Host - solitamente localhost
    $db_utente = 'zomer'; // Nome utente del Database
    $db_password = ''; // Password del Database
    $db_nome = 'my_zomer'; // Nome del Database

    // Effettua la connessione al database
    $dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
    mysql_select_db($db_nome);
    ?>
    [/PHP]

    comunque Dreamweaver si setta in visuale o codice e io c'è l'ho in codice...


  • ModSenior

    E allora come fa dreamweaver a dirti che la query è giusta?
    Manca il ; alla fine di session_start();


  • User Attivo

    Me lo indica dai colori, comunque lasciamo stare ti do ragione a te, ho un altro problema con le sessioni in questa queri non viene salvato il $_SESSION['id'] come mai?

    [PHP]
    mysql_query("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$_SESSION['id']."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
    [/PHP]


  • ModSenior

    Fai un echo e vedi se la variabile ha valore o no.


  • User

    Ciao Thedarkita, era un pò di tempo che non entravo nel forum. 😉
    Ma più che altro volevo dire a Zomer che anch'io utilizzo dreamweaver ma ti posso garantire che crea degli errori madornali negli script di autotenticazione utente, e per quello ti consiglio di affidarti a Thedarkita che mi ha aiutato in modo fenomenale per risolvere i problemi; altro che dream!!!
    Più che altro Thedarkita ho riscontrato un problema sulla casella di accettazione di un un regolamento all'atto di registrazione; ossia mi spiego meglio:
    quando un utente nuovo si deve registrarsi al sito deve necessariamente spuntare la casella di accettazione, ma vedo che anche se non fa la spunta riesce a registrarsi. Era una delle mie domande che ti avevo fatto tempo fà, ma vedo che non è stato risolto del tutto. Comunque noto nel db che se l'utente ha spuntato la casella compare il "si" dell' avvenuta spunta, dunque presumo che sia lo script che non sia corretto. Se ti è possibile potresti rivedere e inviarmi lo script.
    Grazie


  • ModSenior

    Ciao arkom,

    Non ho visto la tua richiesta per questo non ho risposto, se posti qui il codice della pagina di registrazione gli dò un occhiata.


  • User Attivo

    Ciao arkom,
    Io non dubito assolutamente delle capacità di thedark!!!! Anzi secondo me è uno dei più bravi!!! comunque per il tuo problema basta fare cosi

    [php]
    //Controllo che ha accettato la privacy
    if(!isset($_POST['checkbox']))
    die('Non hai spuntato la checbox');
    [/php]

    Ritornando a me, ho fatto un echo e mi dice
    **
    Parse error**: syntax error, unexpected T_ECHO in /membri/zomer/id_prova.php on line 3

    comunque ho gia provato a rivolgermi su un altro forum prima di te, e ti posto la discussione
    h**p://forum.it.altervista.org/php-mysql-e-file-database/96901-la-query-non-funge-come-dovrebbe.html

    TI PREGO AIUTAMI


  • ModSenior

    Zomer, dovresti postare nuovamente qui il tuo codice attuale.
    Seguire consigli qua e là non ti aiuta a trovare la soluzione, perchè finiamo per mischiare le cose e a creare problemi invece che risolverli.

    L'errore comunque è la mancanza di un . o di un ; che dovresti trovare nelle righe 1-3.


  • User Attivo

    Inftti ho abbandoanto li e vorrei riuscire a risolvere il problema con voi 😄

    [PHP]
    <?php
    error_reporting(E_ALL);
    /*recupero le variabili inviate tramite get e definisce la data corrente */
    $nome=$_GET['nome'];
    $data=date("d/m/Y");
    $tipo="amicizia";
    //connesione al database
    include("config.ini.php");
    //query
    $id = mysql_query("SELECT id FROM utenti WHERE nome = '".$nome."'")or die("<h1>".mysql_error()."</h1>");
    $array = mysql_fetch_array($id);

    mysql_query("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$_SESSION['id']."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title>Richiesta effetuata con sucesso</title>
    </head>
    <body>
    <img alt="logo" src="loghi/logo.png"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <div style="text-align: center;">Richiesta inviata con
    sucesso <a href="home.php">torna alla home</a></div>
    </body>
    </html>

    [/PHP]


  • ModSenior

    Questa sarebbe la pagina id_prova.php che ti da errore alla riga 3?
    Vedendo questa query:
    [php]
    INSERT INTO richieste".$array['id']."
    [/php]
    Se il mio id utente è 300 tu stai cercando di inserire nella tabella richieste300, e quindi non credo che la trovi.