• User Attivo

    niente ancora non va ecco cosa mi dice:

    Parse error: syntax error, unexpected $end in /membri/zomer/attivazione.php on line 79

    e questo è il codice modificato, quarda che quelle query nell echo devono funzionare!

    h**p://zomer.altervista.org/attivazione.txt


  • ModSenior

    Glaximous utilizza la variabile prima di fare l'hash in md5, oppure fai fare l'hash mettendolo in un altra variabile che va al database.

    Zomer prova cosi:
    [php]<?php
    // Includo la connessione al database
    require('config.ini.php');
    require('errore.php');
    session_start();

    // Dati Inviati dal modulo
    $code = (isset($_GET['code'])) ? trim($_GET['code']) : '';

    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $code = addslashes($code);
    }
    

    // Controllo la validit� del link
    if(strlen($code) != 32)
    die('Codice non valido');

    //prelevo l'id
    $query = " SELECT * FROM utenti WHERE attivazione='$code'";
    $risult = mysql_query($query);
    $row = mysql_fetch_array($risult);
    $id = $row['id'];
    $user = $row['user'];

    function nick(){
    global $user;
    

    // Aggiorno il record
    $update = mysql_query("UPDATE utenti SET attivazione = '' WHERE attivazione = '$code' LIMIT 1");

    // Quanti record ha aggiornato la query
    $attivato = mysql_affected_rows();

    ?>
    <!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>Area privata</title>
    </head>
    <body>
    <?php if($attivato == 1){
    echo'
    Abbiamo attivato il tuo account ora puoi entrare in Zomer!';

    //creo la tabella dove veranno memorizzati tutti gli amici
    $query="CREATE TABLE amici".$user."(id INT UNSIGNED NOT NULL AUTO_INCREMENT, user VARCHAR(255),tipo_richiesta VARCHAR(100),data_amicizia VARCHAR(13),primary key(id))";
    if(!mysql_query($query))
    errore('Errore nella creazione della tabella amici errore: 0001 contattare l'amministratore');

    //viene creata la tabella dove vengono memorizzate le richieste
    $query="CREATE TABLE richieste".$user." (id INT UNSIGNED NOT NULL AUTO_INCREMENT, user VARCHAR(255), tipo_richiesta VARCHAR(255), data_amicizia VARCHAR(13),primary key(id))";
    if(!mysql_query($query))
    errore('Errore nella creazione della tabella delle richieste erorre: 0002 contattare l'amministratore!');

    //viene creata la tabella dove vengono memorizzati i gruppi a cui l'utnete fà parte
    $query="CREATE TABLE gruppi".$user." (id INT UNSIGNED NOT NULL AUTO_INCREMENT, id_gruppo VARCHAR(255), id_logo VARCHAR(255), info_gruppo VARCHAR(255), data_nascita VARCHAR(13), id_utenti VARCHAR(255), primary key(id))";
    if(!mysql_query($query))
    errore('Errore nella creazione della tabella delle richieste erorre: 0002 contattare l'amministratore!');

    //creo la cartella per il blog
    mkdir( $user , 0777);

             //creo la index nella cartella
             $s = fopen("./".$user."/index.htm","w");
            //crea il layout della pagina!
           fwrite($s,file_get_contents("code.txt"));
    

    }else{
    echo 'Errore, link non valido';}?>
    <br />
    <br />
    <br />
    <a href="index.php">Homepage</a><br />
    </body>
    </html>[/php]


  • ModSenior

    Zomer manca anche la } che chiude la funzione nick.


  • User Attivo

    ok ho eliminato la funzione nick (ho capito che non mi serviva a un BI) comunque mi dice sempre lo stesso errore credo sia inutile dirti quale righa...


  • ModSenior

    Non hai messo la modifica che ti ho detto prima?
    Cosi:
    [php]
    <?php
    // Includo la connessione al database
    require('config.ini.php');
    require('errore.php');
    session_start();

    // Dati Inviati dal modulo
    $code = (isset($_GET['code'])) ? trim($_GET['code']) : '';

    // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
    if (!get_magic_quotes_gpc()) {
        $code = addslashes($code);
    }
    

    // Controllo la validit� del link
    if(strlen($code) != 32)
    die('Codice non valido');

    //prelevo l'id
    $query = " SELECT * FROM utenti WHERE attivazione='$code'";
    $risult = mysql_query($query);
    $row = mysql_fetch_array($risult);
    $id = $row['id'];
    $user = $row['user'];

    // Aggiorno il record
    $update = mysql_query("UPDATE utenti SET attivazione = '' WHERE attivazione = '$code' LIMIT 1");

    // Quanti record ha aggiornato la query
    $attivato = mysql_affected_rows();

    ?>
    <!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>Area privata</title>
    </head>
    <body>
    <?php if($attivato == 1){
    echo'
    Abbiamo attivato il tuo account ora puoi entrare in Zomer!';

    //creo la tabella dove veranno memorizzati tutti gli amici
    $query="CREATE TABLE amici".$user."(id INT UNSIGNED NOT NULL AUTO_INCREMENT, user VARCHAR(255),tipo_richiesta VARCHAR(100),data_amicizia VARCHAR(13),primary key(id))";
    if(!mysql_query($query))
    errore('Errore nella creazione della tabella amici errore: 0001 contattare l'amministratore');

    //viene creata la tabella dove vengono memorizzate le richieste
    $query="CREATE TABLE richieste".$user." (id INT UNSIGNED NOT NULL AUTO_INCREMENT, user VARCHAR(255), tipo_richiesta VARCHAR(255), data_amicizia VARCHAR(13),primary key(id))";
    if(!mysql_query($query))
    errore('Errore nella creazione della tabella delle richieste erorre: 0002 contattare l'amministratore!');

    //viene creata la tabella dove vengono memorizzati i gruppi a cui l'utnete fà parte
    $query="CREATE TABLE gruppi".$user." (id INT UNSIGNED NOT NULL AUTO_INCREMENT, id_gruppo VARCHAR(255), id_logo VARCHAR(255), info_gruppo VARCHAR(255), data_nascita VARCHAR(13), id_utenti VARCHAR(255), primary key(id))";
    if(!mysql_query($query))
    errore('Errore nella creazione della tabella delle richieste erorre: 0002 contattare l'amministratore!');

    //creo la cartella per il blog
    mkdir( $user , 0777);

             //creo la index nella cartella
             $s = fopen("./".$user."/index.htm","w");
            //crea il layout della pagina!
           fwrite($s,file_get_contents("code.txt"));
    

    }else{
    echo 'Errore, link non valido';
    }
    ?><br />
    <br />
    <br />
    <a href="index.php">Homepage</a><br />
    </body>
    </html>
    [/php]


  • User

    Scusate, sono ancora poco pratico 😛

    Io adesso dovrei creare una pagina in cui mi mostra l'IP degli utenti.
    E deve prendere dati da due tabelle una è "utenti" in cui deve prendere l'username l'altra si chiama "ip_utenti" composta da id, id_utente, ip_utente e data.

    Il risultato dovrebbe essere NomeUtente - IP - Data.
    Quindi dovrei prendere l'id e l'UserName dalla tabella "utenti" poi l'id_utente dalla seconda tabella che va confrontato con i campi della prima tabella, come dovrebbe essere strutturata quindi la query?


  • ModSenior

    Ciao la query dovrebbe essere tipo cosi:

    SELECT username,ip,data FROM tabella1 INNER JOIN tabella2 ON tabella1.id_utente=tabella2.id_utente
    

  • User Attivo

    Ora funziona tutto ma, è normale che il campo attivazione nel database è vuoto?


  • ModSenior

    Una volta che il recupero è avvenuto quel campo non ti serve più quindi puoi benissimo lasciarlo vuoto.


  • User

    Ho provato...

    Ecco cosa ho fatto:
    [PHP]<?php
    //Includo la connessione al database
    require('config.php')

    $query_ip = "SELECT id_utente,ip_utente,data FROM ip_utenti INNER JOIN utenti ON ip_utenti.id_utente=utenti.user";

    $result_query_ip = mysql_query($query_ip) OR die("Query non eseguita correttamente. ".mysql_error());

    while($a = mysql_fetch_array($result_query_ip))

    echo ''.$a['user'].' - '.$a['ip_utente'].' - '.$a['data'].'

    ?>[/PHP]

    Ed ovviamente c'è un errore 😛

    Parse error: syntax error, unexpected T_VARIABLE in /membri/rcayla/ip_utenti.php on line 12

    Potete aiutarmi??


  • ModSenior

    Prova cosi:
    [php]
    <?php
    //Includo la connessione al database
    require('config.php')

    $query_ip = "SELECT id_utente,ip_utente,data FROM ip_utenti INNER JOIN utenti ON ip_utenti.id_utente=utenti.user";

    $result_query_ip = mysql_query($query_ip) OR die("Query non eseguita correttamente. ".mysql_error());

    while($a = mysql_fetch_array($result_query_ip))

    echo $a['user'].' - '.$a['ip_utente'].' - '.$a['data'];

    ?>
    [/php]


  • User

    Non va, da quest'errore ancora:

    Parse error: syntax error, unexpected T_VARIABLE in /membri/rcayla/ip_utenti.php on line 12


  • ModSenior

    Manca un ; nel require sarebbe cosi:
    [php]
    <?php
    //Includo la connessione al database
    require('config.php');

    $query_ip = "SELECT id_utente,ip_utente,data FROM ip_utenti INNER JOIN utenti ON ip_utenti.id_utente=utenti.user";

    $result_query_ip = mysql_query($query_ip) OR die("Query non eseguita correttamente. ".mysql_error());

    while($a = mysql_fetch_array($result_query_ip))

    echo $a['user'].' - '.$a['ip_utente'].' - '.$a['data'];

    ?>
    [/php]
    La sintassi del resto è corretta, io non vedo nessun errore.
    Sicuro di aver salvato il file prima di aver riprovato ad eseguirlo?


  • User

    Salve,
    Mi sono fatto questo script per aggiornare la password però non va, potete dirmi dove sbaglio?

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

    //Metto l'id utente in una sessione
    $id_utente = $_SESSION['login'];

    // Se il modulo viene inviato...
    if(isset($_POST['modifica']))
    {
    // Dati Inviati dal modulo
    $old_pass = (isset($_POST['old_pass'])) ? trim($_POST['old_pass']) : ''; // Metto nella variabile 'old_pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $new_pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $new_pass2 = (isset($_POST['pass2'])) ? trim($_POST['pass2']) : ''; // Metto nella variabile 'pass2' il dato inviato dal modulo, se non viene inviato dò di default ''

    // Controllo i dati inviati
    if(strlen($new_pass) < 4)
    die('Password troppo corta');
    elseif(strlen($new_pass) > 12)
    die('Password troppo lunga');
    elseif ($new_pass != $new_pass2)
    die('Le due Password non coincidono');

    else
    {
    // Cerco se c'è un utente registrato con questa email
    $query_cambio = mysql_query("SELECT pass FROM utenti WHERE id = '$id_utente' LIMIT 1");

    // L'utente esiste?
    if(mysql_num_rows($query_cambio) == 0)
        die('Nessun utente registrato con questa password');
    

    // Query per l'aggiornamento della password
    $sql_update = 'UPDATE utenti SET pass = .$new_pass. WHERE id = .$id_utente. LIMIT 1;';
    mysql_query($sql_update) OR die("Errore 001, contattare l'amministratore ".mysql_error());

    // Esegue il logout cancellando la sessione
    session_destroy();

    header('Location: login.php');
    exit;

    }
    ?>[/PHP]

    Grazie 😄


  • ModSenior

    Al posto di:
    [php]$sql_update = 'UPDATE utenti SET pass = .$new_pass. WHERE id = .$id_utente. LIMIT 1;'; [/php]
    Metti:
    [php]$sql_update = 'UPDATE utenti SET pass = '$new_pass' WHERE id = '$id_utente' LIMIT 1'; [/php]

    Posta eventuali problemi, altrimenti devo controllarmi proprio tutto ogni volta, e amgari non mi accorgo del problema subito. 🙂


  • User

    Parse error: syntax error, unexpected T_VARIABLE in /membri/rcayla2/cambio_pass.php on line 36

    Adesso è questo l'errore, la linea 32 è la query di update.. 😞

    Edit: Ho fatto una piccola modifica ed adesso invece da questo errore: Parse error: syntax error, unexpected $end in /membri/rcayla2/cambio_pass.php on line 64

    La linea 64 però corrisponde alla chiusura del tag html cioè: </html>


  • ModSenior

    Manca una parentesi di chiusura.
    Se posti il tuo codice attuale vediamo.
    Se è come quello di sopra basta sostituire:
    [php]
    else
    {
    [/php]
    Con:
    [php]
    }
    else
    {
    [/php]


  • User

    Ecco il codice intero:
    [PHP]<?php
    // Includo la connessione al database
    require('config.php');

    //Metto l'id utente in una sessione
    $id_utente = $_SESSION['login'];

    // Se il modulo viene inviato...
    if(isset($_POST['modifica']))
    {
    // Dati Inviati dal modulo
    $old_pass = (isset($_POST['old_pass'])) ? trim($_POST['old_pass']) : ''; // Metto nella variabile 'old_pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $new_pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $new_pass2 = (isset($_POST['pass2'])) ? trim($_POST['pass2']) : ''; // Metto nella variabile 'pass2' il dato inviato dal modulo, se non viene inviato dò di default ''

    // Controllo i dati inviati
    if(strlen($new_pass) < 4)
    die('Password troppo corta');
    elseif(strlen($new_pass) > 12)
    die('Password troppo lunga');
    elseif ($new_pass != $new_pass2)
    die('Le due Password non coincidono');

    }
    else
    {
    // Cerco se c'è un utente registrato con questa email
    $query_cambio = mysql_query("SELECT pass FROM utenti WHERE id = '$id_utente' LIMIT 1");

    // L'utente esiste?
    if(mysql_num_rows($query_cambio) == 0)
        die('Nessun utente registrato con questa password');
    

    // Query per l'aggiornamento della password
    $sql_update = "UPDATE 'utenti' SET 'pass' = '$new_pass' WHERE 'id' = '$id_utente' LIMIT 1";
    mysql_query($sql_update) OR die("Errore 001, contattare l'amministratore ".mysql_error());

    // Esegue il logout cancellando la sessione
    session_destroy();

    header('Location: login.php');
    exit;

    }
    ?>

    <html>

    <head>
    <title>Camio Password</title>
    </head>

    <body>

    <form action="" method="post">
    <input name="old_pass" type="text" id="old_pass" value="Vecchia Password" /><br />
    <input name="pass" type="password" id="pass" value="Password" /><br />
    <input name="pass2" type="password" id="pass2" value="Ripeti Password" /><br />
    <input name="modifica" type="submit" value="Modifica" />

    </body>

    </html>[/PHP]

    Adesso non da errori però se apro la pagina mi dice "Nessun utente registrato con questa password" invece dovrebbe farmi vedere i campi per inserire la vecchia e a nuova password :S


  • ModSenior

    Prova cosi, quel else non serve a niente:
    [php]
    <?php
    // Includo la connessione al database
    require('config.php');

    //Metto l'id utente in una sessione
    $id_utente = $_SESSION['login'];

    // Se il modulo viene inviato...
    if(isset($_POST['modifica']))
    {
    // Dati Inviati dal modulo
    $old_pass = (isset($_POST['old_pass'])) ? trim($_POST['old_pass']) : ''; // Metto nella variabile 'old_pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $new_pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
    $new_pass2 = (isset($_POST['pass2'])) ? trim($_POST['pass2']) : ''; // Metto nella variabile 'pass2' il dato inviato dal modulo, se non viene inviato dò di default ''

    // Controllo i dati inviati
    if(strlen($new_pass) < 4)
    die('Password troppo corta');
    elseif(strlen($new_pass) > 12)
    die('Password troppo lunga');
    elseif ($new_pass != $new_pass2)
    die('Le due Password non coincidono');

    // Cerco se c'è un utente registrato con questa email 
    $query_cambio = mysql_query("SELECT pass FROM utenti WHERE id = '$id_utente' LIMIT 1"); 
    
    // L'utente esiste? 
    if(mysql_num_rows($query_cambio) == 0) 
        die('Nessun utente registrato con questa password'); 
    

    // Query per l'aggiornamento della password
    $sql_update = 'UPDATE utenti SET pass = '$new_pass' WHERE id = '$id_utente' LIMIT 1';
    mysql_query($sql_update) OR die("Errore 001, contattare l'amministratore ".mysql_error());

    // Esegue il logout cancellando la sessione
    session_destroy();

    header('Location: login.php');
    exit;

    }
    ?>

    <html>

    <head>
    <title>Camio Password</title>
    </head>

    <body>

    <form action="" method="post">
    <input name="old_pass" type="text" id="old_pass" value="Vecchia Password" /><br />
    <input name="pass" type="password" id="pass" value="Password" /><br />
    <input name="pass2" type="password" id="pass2" value="Ripeti Password" /><br />
    <input name="modifica" type="submit" value="Modifica" />

    </body>

    </html>
    [/php]


  • User Newbie

    Ciao,
    solo dopo 2 pagine sono già andata in tilt!

    Ti prego puoi aiutarmi?
    Sono una PERFETTA PRINCIPIANTE di PHP e sto appena, appena muovendo i primi passi...ho bisogno di creare una Zona Riservata del mio sito con tanto di Login e Password e non volevo utilizzare una gestione prefabbricata, ma provare a far da me...con la testa già in fumo!

    Mi rendo conto che se non conosco neanche il significato di "echo" &Co. non posso pretendere l'impossibile, ma ho un cliente che me lo ha chiesto e purtroppo non ho tempo materiale per studiare tutto di un fiato...me tapina...ma perché mi caccio sempre nei guai?!!!

    Conosco molto bene X-HTML e CSS che ormai maneggio da circa 2 anni e cosi mi stavo dando al PHP (...e MySQL!), ma proprio nel pieno dei miei studi (...il libro spiegava come installare e configurare un Serve Remoto, quindi MySQL!) un cliente mi si piomba con la sua Area Riservata...e sono solo al primo capitolo del libro!

    Ti prego puoi dirmi come creare questa Zona Riservata...so che ci vuole un Database per far registrare i dati di chi si Registra, ma credimi ho aperto MySQL e quando ho visto quel bel rettangolo nero che mi chiedeva dei dati...bè l'ho richiuso immediatamente e ho riaperto il libro! °_° HELP ME!?

    Non credo sia una reazione avversa, ma francamente con il PHP è tutta un'altra cosa rispetto all'X-HTML! Ho bisogno di una mano e di tanto sostegno morale...
    Tu puoi aiutarmi?

    Te ne sarei grata immensamente...
    P.S. Ho scaricato la tua versione ZIP e già messo nella cartella di studio del mio sito...chi ci capisce...non so da che parte incominciare...
    Sono depressa...

    Paperikat