Visualizzazione risultati 1 fino 22 di 22

Discussione: login che mi fa logout

  1. #1
    Guest

    Predefinito login che mi fa logout

    Ciao ragazzi, e da un po di giorni che sto impazzendo con il login, lo sto controllando punto per punto per vedere qualche errore che ho commesso ma niente non riesco a venirne a capo.Il problema è questo, ho un login di registrazione utenti che ha due campi uno per la registrazione ed uno per il login, il problema è proprio nel login, che quando voglio fare il login il campo mi compare per 2-3 secondi e fa logout da solo senza che io ho fatto niente. Volevo un parere da voi esperti quale potrebbe essere l'errore, vi posto i 5 file che compongono il login.
    config.php
    Codice PHP:
    <?php

    function connect () {

    mysql_connect ("localhost.altervista","root","");
    mysql_select_db("my_squadranostra");
    }

    ?>
    index.php
    Codice PHP:
    <?php

    include 'header.php';

    ?>

    <div id="wrapper">

    <p><?php if (isset ($_SESSION ['utenti'])){

    echo
    "ciao <strong>" .$_SESSION ['utenti']."<strong>";
    } else {

    echo
    "ciao,<a href='register.php'>registrati al sito!</a>";
    }
    ?>
    </p>


    </div>
    </body>
    </html>
    header.php
    Codice PHP:
    <?php

    include 'config.php';
    connect ();
    session_start ();

    ?>
    <!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" lang="it">

    <head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-15" />
    <link href="style_login.css" type="text/css" rel="stylesheet" />
    <title>MyWebSite</title>
    <script type="text/javascript" src="js/jquery-1.3.2js"></script>
    <script type="text/javascript" src="js/jquery.validate.js"></script>
    <script type="text/javascript" src="js/controlloregistrazione.js"></script>
    </head>

    <body>


    <div id="menu">

    <div class="menuwrapper">

    <div class="menunav">

    <ul>
    <li><a href="index.php">home</a></li>
    <?php if(isset ($_session['utente'])){


    echo
    "<li><a href='login.php?azione=logout'>esci</a></li>";


    } else {


    echo
    "<li><a href='register.php'>registrati</a></li>";
    echo
    "<li><a href='login.php?azione=login'>login</a></li>";




    }
    ?>

    </ul>

    </div>
    </div>
    </div>
    register.php
    Codice PHP:
    <?php

    include 'header.php';

    ?>



    <?php

    if (!isset ($_GET ['passkey'])) {

    if (!isset (
    $_POST ['invia'])) {?>

    <form method="post" action="#" id="formregistrazione">
    <ul>
    <li><label for="username">username</label>
    <input type="text" name="username" id="username" />
    </li>
    <li><label for="password1">password</label>
    <input type="password" name="password1" id="password1" />
    </li>
    <li><label for="password2">ripeti password</label>
    <input type="password" name="password2" id="password2" />
    </li>
    <li> <label for="email">email</label>
    <input type="text" name="email" id="email" />
    </li>
    </ul>
    <input type="submit" name="invia" id="registrati" value="registrati" />
    </form>

    <?php } else {

    //creazione codice di conferma
    $codice_conferma = md5(uniqid(rand()));

    //valori del form

    $username =mysql_real_escape_string($_POST['username']);
    $password1 =mysql_real_escape_string($_POST['password1']);
    $password2 =mysql_real_escape_string($_POST['password2']);
    $email =mysql_real_escape_string($_POST['email']);

    //controlli campi vuoti e password

    if ($username =="" | $email =="") {
    echo
    "devi riempire tutti i campi";
    }elseif (
    $password1=="" | $password2==""){
    echo
    "devi riempire tutti i campi";
    }elseif (
    $password2 != $password1) {
    echo
    "le password devono coincidere";
    } else {
    //inserisci i dati nel db_utenti_temp
    $recuperauseremail = mysql_query ("SELECT id FROM utenti WHERE 1 username '$username' OR email '$email'");
    $contausermail = mysql_num_rows($recuperausermail);

    } if (
    $contausermail > 0 ){

    echo
    "nome utente o email gia disponibili";

    }else{

    //invia dati al db utenti_tem

    $inviautentitemp = mysql_query ("INSERT INTO utenti_temp (codiceconferma, username, password,email) VALUES ('$codiceconferma','$username','$password2','$email')");

    if (
    $inviautentitemp){

    $to=$email;
    $subject="conferma la registrazione";
    $header="da:amministratore";
    $message="ecco il tuo codice di attivazione\r\n";
    $message="clicca sul link per confermare la registrazione\r\n";
    $message="http://www.squadranostra.altervista.org/register.php?passkey=$codiceconferma";

    $sendmail=mail($to,$subject,$message,$header);

    }

    if (
    $sendmail){

    echo
    'per completare la registrazione controla la tua casella di posta elettronica e clicca sul link di attivazione';

    }else{

    echo
    'errore link di attivazione non inviato';

    }

    }
    }

    }

    else {

    $passkey = $_GET ['passkey'];

    $sqlrecuperauser ="SELECT * FROM utenti_temp WHERE 1 codiceconferma = '$passkey'";
    $risultatouser = mysql_query($sqlrecuperauser);

    if (
    $risultatouser); {

    $contauser = mysql_num_rows ($contauser);

    if (
    $contauser == 1) {

    $rows = mysql_fetch_array ($risultatouser);
    $username = $rows ['username'];
    $email = $rows ['email'];
    $password = $rows ['password'];

    $passwordcript = md5(password);

    $sqlconfermauser = mysql_query ("INSERT INTO utenti (username, password, email) VALUES ('$username','$passwordcript', '$email')");

    if (
    $sqlconfermauser){

    echo
    "il tuo account è stato attivato con successo";
    $sqleliminadati = mysql_query ("DELETE FROM utenti_temp WHERE 1 codiceconferma = '$passkey'");

    } else {

    echo
    "errore";

    }
    }
    }
    }
    ?>
    <div id="wrapper">

    </div>

    </body>
    </html>
    login.php
    Codice PHP:
    <?php

    include 'header.php';

    ?>

    <div id="wrapper">

    <?php

    $p
    =$_GET['azione'];

    //login.php? azione=login
    if ($p == "login") {

    if (!isset (
    $_POST['invia'])) { ?>

    <form method="post" action="#" id="formlogin">

    <label for="username">username</label>
    <input type="text" name="username" id="username" /><br>
    <label for="password">password</label>
    <input type="password" name="password" id="password" /><br>
    <input type="submit" name="invia" id="login" value="accedi" />
    </form>
    <?php } else {


    $username = mysql_real_escape_string ($_POST ['username']);
    $password = mysql_real_escape_string ($_POST ['password']);


    if (
    $username == "" || $password == "") {

    echo
    "attenzione devi compilare i campi";

    } else {

    $password_cript = md5 ($password);

    $recuperadati = mysql_query("SELECT * FROM utenti WHERE 1 username = '$username' AND password = '$password_cript'");

    $verificadati = mysql_num_rows($recuperadati);

    if (
    $verificadati == 1) {

    $sessione =mysql_fetch_array($recuperadati);
    $_SESSION ['utente'] = $sessione ['username'];
    echo
    "login effettuato con successo";
    header("refresh : 2; URL=index.php");

    } else {

    echo
    "dati non presenti nel database";


    }
    }
    }

    //login.php? azione=logout

    ($p =="logout");

    session_destroy ();
    echo
    "logout effettuato con successo";
    header("refresh: 2; URL=index.php");


    }
    ?>



    </div>

    </body>
    </html>

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Alcune cose che non capisco:

    Nel login utilizzi $_SESSION['utente'], mentre nell'index controlli $_SESSION['utenti'].

    A volte, invece di $_SESSION, utilizzi $_session. Non ho mai provato se è case-sensitive, però nel dubbio, io lo metterei maiuscolo.

    Nelle ultime righe della pagina login.php, c'é:

    Codice PHP:
    ($p =="logout");

    session_destroy ();
    echo
    "logout effettuato con successo";
    header("refresh: 2; URL=index.php");
    Lì teoricamente adesso ti fa sempre il logout ogni volta: immagino vada un if nella prima riga che ho quotato, togliendo il ; e aggiungendo graffe... no?

    Ciao!
    Ultima modifica di alemoppo : 03-01-2013 alle ore 23.48.15

  3. #3
    Guest

    Predefinito

    alemoppo mi ha anticipato, comunque volevo aggiungere: register.php ti funziona davvero? Perché, oltre ad essere molto familiare, le query che contiene hanno sempre un 1 dopo il WHERE, il che dovrebbe darti errore, senza contare che alcune hanno anche altri errori di sintassi.
    Non ho mai provato se è case-sensitive, però nel dubbio, io lo metterei maiuscolo.
    Sì, lo è: $_session viene considerata come una variabile qualunque.
    Ultima modifica di giochidicartenc : 04-01-2013 alle ore 00.00.07

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    WHERE 1 è inutile, ma corretto: è una condizione sempre vera. In quel caso, però, visto che ci son altre condizioni, andrebbe un AND tra l'1 e la seconda condizione. (ovviamente, si fa prima ad eliminare l'uno).

    Ciao!

  5. #5
    Guest

    Predefinito login che mi fa logout

    Ciao Alemoppo, ammazza che occhio, ti son bastati pochi minuti per vedere cose che io non ho visto per giorni per quando riguada il login non mi fa più logout, quindi bastava quella if togliere il ; ed aggiungere una {, sei grande, grazie tantissimo

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Citazione Originalmente inviato da squadranostra Visualizza messaggio
    ammazza che occhio
    In realtà ne avrei 2

    Comunque, se ti va puoi confrontarlo con questo. L'unica cosa (in realtà ce ne sarebbero altre) è che utilizza le funzioni mysql_, come hai fatto tu. Però stanno diventando deprecate, quindi è bene utilizzare mysqli.

    Cao!
    Ultima modifica di alemoppo : 04-01-2013 alle ore 00.56.57 Motivo: +(in realtà ce ne sarebbero altre)

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    WHERE 1 è inutile, ma corretto: è una condizione sempre vera. In quel caso, però, visto che ci son altre condizioni, andrebbe un AND tra l'1 e la seconda condizione. (ovviamente, si fa prima ad eliminare l'uno).

    Ciao!
    Certo, quando dicevo che "WHERE 1 condizioni..." dovrebbe dare errore intendevo tra 1 e condizioni (per mancanza di operatori logici, non perché non si potesse fare: PHPMyAdmin ad esempio visualizza ogni campo con SELECT * FROM table WHERE 1).

    EDIT: scusate il post non inerente alla discussione.

    EDIT 2: Tanto per far diventare questo post On-Topic, squadranostra, la prima cosa che dovresti controllare quando qualcosa che dovrebbe succedere in un determinato caso accade sempre, è l'if (e ti saresti accorto subito dell'errore, senza perdere tutto il tempo che hai perso).
    Ultima modifica di giochidicartenc : 04-01-2013 alle ore 00.44.22

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Citazione Originalmente inviato da giochidicartenc Visualizza messaggio
    Certo, quando dicevo che "WHERE 1 condizioni..." dovrebbe dare errore intendevo tra 1 e condizioni (per mancanza di operatori logici, non perché non si potesse fare: PHPMyAdmin ad esempio visualizza ogni campo con SELECT * FROM table WHERE 1).
    Scusami, non avevo letto bene.

    Ciao!

  9. #9
    Guest

    Predefinito login

    ammazza mi sembra più completo domani lo do un occhiata, anzi due, ti saluto buonanotte.

  10. #10
    Guest

    Predefinito login

    Ciao alemoppo, ho inserito il login che mi hai indicato, ho notato che nella SELECT FROM manca un campo che è 'pass' non so se è un tua svista oppure è normale cosi, poi ho fatto il database con i sei campi e l'ho nominato utenti_b in quanto già ho un altro database che si chiama utenti, qui nella select ho dovuto cambiare tutti gli 'utenti' con 'utenti_b' va bene lo stesso, poi ho provato ad inserire il login nel mio sito come da tue istruzioni, però sicuramente sono io che ho commesso qualche errore perchè nella pagina principale dove l'ho provato non mi esce niente.
    la url per vedere il login è http://www.squadranostra.altervista.org/iscrizione.php
    mentre la pagina principale è http://www.squadranostra.altervista.org/index1.html
    ah dimenticavo, per codiceconferma è il codice captcha o sbaglio, perchè non mi compare. ciao ciao.

  11. #11
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Citazione Originalmente inviato da squadranostra Visualizza messaggio
    ho notato che nella SELECT FROM manca un campo che è 'pass' non so se è un tua svista oppure è normale cosi
    Se non ho capito male, ti stai riferendo a "iscrizione.php". Lì il mio scopo è vedere se esiste già un utente con quell'username. La password non mi serve a nulla; anzi, al 99.999% è differente.

    Citazione Originalmente inviato da squadranostra Visualizza messaggio
    l'ho provato non mi esce niente.
    la url per vedere il login è http://www.squadranostra.altervista.org/iscrizione.php
    In quell'url a me appare il form.

    Citazione Originalmente inviato da squadranostra Visualizza messaggio
    ah dimenticavo, per codiceconferma è il codice captcha o sbaglio, perchè non mi compare. ciao ciao.
    Assicurati di aver copiato anche la cartella "caratteri", con dentro soltanto il file arial.ttf.

    Non utilizzare però quello script: fanne uno tuo.

    Ciao!

  12. #12
    Guest

    Predefinito

    Se non ho capito male, ti stai riferendo a "iscrizione.php". Lì il mio scopo è vedere se esiste già un utente con quell'username. La password non mi serve a nulla; anzi, al 99.999% è differente.
    ah ok questo passaggio l'ho capito, si mi riferivo ad iscrizione.php
    http://www.squadranostra.altervista.org/iscrizione.php
    In quell'url a me appare il form.
    io mi riferivo quello di inserirli nelle pagine del sito
    In ogni pagina del sito in cui si include una dello script, è opportuno inserire la seguente riga all'inizio della pagina:
    Codice PHP:
    <?php session_start(); ?>
    Quindi, un esempio potrebbe essere:
    Codice PHP:
    <?php session_start(); ?>
    <!doctype html>
    <html>
    <head>
    <title> Home page!</title>
    </head>
    <body>
    Contenuto del sito.
    iscrizione:
    <?php include('iscrizione.php'); ?>
    Login: <?php include('login.php'); ?>
    contenuto del sito
    </body>
    </html>
    per quando riguarda il codice conferma, si ho copiato anche la cartella caratteri con denro solo il file arial.ttf ma niente non mi esce il codice captcha. ciao aspetto tue notizie

  13. #13
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Citazione Originalmente inviato da squadranostra Visualizza messaggio
    per quando riguarda il codice conferma, si ho copiato anche la cartella caratteri con denro solo il file arial.ttf ma niente non mi esce il codice captcha. ciao aspetto tue notizie
    Vedi che: http://www.squadranostra.altervista....teri/arial.ttf da un 404!
    Per l'altro problema, non l'ho capito.
    Comunque ripeto: non usare il mio, ma fanne uno tuo!


    Ciao!

  14. #14
    Guest

    Predefinito

    Ciao Alemoppo, grazie per avermi risposto, ho tolto il tuo Arial ed ho messo uno di mio, ma niente non ne vuole sapere ti do la url http://www.squadranostra.altervista....eakedArial.ttf poi per quando riguarda trasferire il login nelle pagine del mio sito ho messo sopra il codice html, come hai descritto tu cioè
    Codice PHP:
    <?php session_start ();?>
    poi per ricchiamare gli altri file nelle pagine ho messo nel body
    Codice PHP:
    <?php include ('iscrizione.php')?>
    Login:
    Codice PHP:
    <?php include ('login.php')?>
    Codice PHP:
    <?php include ('cambiopass.php')?>
    Codice PHP:
    <?php include ('recupero.php')?>
    in modo che dovrebbe comparire il login nelle pagine del mio sito, ma non compare niente, momentaneamente questa operazione l'ho fatta solo nella pagina principale e poi la estenderò a tutte le altre pagine la url è
    http://www.squadranostra.altervista.org/index1.html dov'è che sbaglio

  15. #15
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Ovviamente, per interpretare le pagine, queste devono avere estensione *.php.

    Per il file, lo script cerca il file ./caratteri/arial.ttf. Qualsiasi altro file, non verrà preso in considerazione. Finché questo http://www.squadranostra.altervista....teri/arial.ttf darà 404, non visualizzerai il captcha.

    Lo ripeto: utilizza lo script che hai fatto tu.

    Ciao!
    Ultima modifica di alemoppo : 06-01-2013 alle ore 03.24.43

  16. #16
    Guest

    Predefinito

    Ciao Alemoppo, pagine in estensione php intenti che include sia chiuso nei tag php
    esempio
    Codice PHP:
    <?php include ('nome_file.php');?>
    poi ho messo anche nei tag php, session_start prima del codice htm come hai mostrato tu nell'esempio
    l
    Codice PHP:
    <?php session_start ();?>
    Quindi per estensione di pagine in php,
    oltre ai su citati esempi, c'è qualche altra cosa da fare che io non riesco a decifrare,
    per vedere il login nellepagine del sito.
    Per quando riguarda il codice captcha, il tuo l'ho cambiato e ci ho messo FreakedArial.ttf infatti la url è http://www.squadranostra.altervista....eakedArial.ttf non so se cosi il passaggio è corretto oppure no. ciao ciao

  17. #17
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    http://www.squadranostra.altervista.org/index1.html ha estensione html. Per utilizzare PHP, devi modificare l'estensione della pagina, quindi da .html a .php Vedrai che comunque il normale html verrà interpretato comunque correttamente dai browser.

    Per il captcha, lo hai modificato anche nel sorgente, nel file "config.php" qui?
    Codice PHP:
    './caratteri/arial.ttf',
    Rispettando le maiuscole? (devono essere uguale al file: FreakedArial.ttf è differente da freakedArial.ttf o da freakedarial.ttf).

    Ciao!
    Ultima modifica di alemoppo : 06-01-2013 alle ore 17.53.23

  18. #18
    Guest

    Predefinito

    Grazie Woow, e che cavolo e, infatti prima che me lo dicessi tu avevo rinominato la pagina da html in php, pero mi dava errore di sintassi, allora ho pensato che forse non era cosi che dovevo fare, invece era proprio cosi, anche il codice captcha è andato a posto, però quando vado a fare la registrazione mi da quest'errore
    Problemi durante la query: Unknown column 'attivazione' in 'field list'

  19. #19
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Quell'errore, dice che esiste la colonna "attivazione". Strano. Prova a vedere da phpMyAdmin se veramente non c'é. Se non c'é veramente, o la aggiungi, oppure cancella la tabella e rifalla da capo, con le query nel file "installazione.php".

    Ciao!

  20. #20
    Guest

    Predefinito

    Ciao Ale, tutto risolto, il problema era come già ti avevo accennato qualche post fa, siccome già avevo un database di nome utenti, ho dovuto correggere il tuo, con utenti_b , tutto qui, perciò mi dava errore che non riconosceva la colonna 'attivazione' . Ti ringrazio tantissimo per l'aiuto che mi hai dato

    ciao

  21. #21
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,762

    Predefinito

    Pensavo l'avessi modificato anche nel sorgente di ogni pagina :)
    ..infatti è una idea un po' infelice. Se comunque (io) avessi fatto lo script più decentemente (salvando il nome in una variabile), ti sarebbe bastato modificare un campo... Ecco perché ti ri-ripeto di farti uno script tuo .

    Ciao!

  22. #22
    Guest

    Predefinito

    Dai Ale che lo script è ottimo, sei un grande, permettimi di tenere lo script momentaneamente il tempo che riuscirò a svilupparmi uno mio, ti ringrazio


    ciao

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •