Visualizzazione risultati 1 fino 3 di 3

Discussione: refresh automatico

  1. #1
    Guest

    Predefinito registrazione

    MI SCUSO PER L TITOLO DIFFERENTE HO CAMBIATO DOMANDA SORRY:
    ragazzi non so' come mantenere il login degli utenti durante la navigazione nel sito :

    registrazione.php

    Codice PHP:
    <?php

    function controlla_presenza($nick){

    $file = file("utenti.php");

    foreach(
    $file as $rigo) {
    $ex = explode("|",$rigo);

    if(@
    $ex[1] == $nick) {
    return
    "presente";
    }
    }
    }

    function
    nick_pass_ok($nick,$pass) {

    $file = file("utenti.php");

    foreach(
    $file as $rigo) {

    $ex = explode("|",$rigo);
    if(@
    $ex[1] == $nick AND $ex[2] == $pass)
    {
    return
    "ok";
    }

    }

    }

    $nick = $_POST['nome'];
    $nick = str_replace("|","",$nick);
    $nick = str_replace("\\","",$nick);
    $vpass = $_POST['pass'];
    $vpass = str_replace("|","",$vpass);
    $vpass = str_replace("\\","",$vpass);
    $pass = md5($vpass);

    if(@
    $_POST['registrati'] OR @$_POST['login']){
    if(
    trim($nick) == "" || trim($pass) == "") {
    header("Location:form.html");
    }
    }

    //Parte della registrazione
    if(@$_POST['registrati']) {
    $check = controlla_presenza($nick);

    if(
    $check == "presente") {
    echo
    "Utente già presente!"; exit();
    }

    $fp = fopen("utenti.php","a+");
    $fp = fopen(" . $nick . ".php","a+");
    fwrite(
    $fp,"<?php|".$nick."|".$pass."|\n ?>");
    fclose($fp);
    echo "$nick registrato! Password: $vpass";
    echo "<br><a href='form.html'>Torna alla pagina di login</a>";
    }
    //Parte del login!
    else if(@$_POST['login']) {
    $contr = nick_pass_ok($nick,$pass);

    if($contr == "ok") {
    session_start(); //inizzializzo la variabile
    $_SESSION['nick'] = $nick; //le assegno il valore del nome del utente
    echo "<b>$nick</b> sei loggato!";
    echo "Visualizza l'area riservata ";
    }

    else
    {
    echo "Nickname o password errati!";
    }
    }
    ?>

    login.php
    Codice PHP:
    <?php
    function controlla_presenza($nick){
    $file = file("utenti.php");
    foreach(
    $file as $rigo) {
    $ex = explode("|",$rigo);
    if(
    $ex[1] == $nick) {
    return
    "presente";
    }
    }
    }
    function
    nick_pass_ok($nick,$pass) {
    $pass = md5($pass);
    $file = file("utenti.php");
    foreach(
    $file as $rigo) {
    $ex = explode("|",$rigo);
    if(
    $ex[1] == $nick && $ex[2] == $pass) { return "ok"; }
    }
    }
    $nick = $_POST['nome'];
    $nick = str_replace("|","",$nick);
    $nick = str_replace("\\","",$nick);
    $vpass = $_POST['pass'];
    $vpass = str_replace("|","",$vpass);
    $vpass = str_replace("\\","",$vpass);
    $pass = md5($vpass);
    if(
    $_POST['registrati'] || $_POST['login']){
    if(
    trim($nick) == "" || trim($pass) == "") {
    header("Location:form.html");
    }
    }
    if(
    $_POST['registrati']) {
    $check = controlla_presenza($nick);
    if(
    $check == "presente") { echo "Utente già presente!"; exit(); }
    $fp = fopen("utenti.php","a+");
    fwrite($fp,"<?|".$nick."|".$pass."|\n");
    fclose($fp);
    echo
    "$nick registrato! Password: $vpass";
    echo
    "<a href='form.html'>Torna alla pagina di login</a>";
    }else if(
    $_POST['login']) {
    $contr = nick_pass_ok($nick,$pass);
    if(
    $contr == "ok") { echo "$nick sei loggato!";
    echo
    "Visualizza l'area riservata!";
    }else{
    echo
    "Nickname o password errati!";
    }
    }
    ?>
    [DS] Usa i tag di codice quando ne riporti ampi stralci, si legge meglio... e non esce un post kilometrico
    Ultima modifica di dementialsite : 29-03-2010 alle ore 08.47.02

  2. #2
    Guest

    Predefinito

    Non ho capito molto bene perchè hai postato 2 codici identici per valore ma differenti per indentazione...cmq c'è una variabile particolare che è "session" e che si mantiene per tutta la durata della sessione appunto,basta modificare il codice cosi:

    Da linea 40

    Codice PHP:
    else if($_POST['login']) {
    $contr = nick_pass_ok($nick,$pass);
    if(
    $contr == "ok") { echo "$nick sei loggato!";
    session_start(); //inizalizzo il metodo di memorizzazione della variabile
    $_SESSION['nick'] = $nick; //registro la variabile
    echo "Visualizza l'area riservata!";
    }else{
    echo
    "Nickname o password errati!";
    }
    }
    Ora su ogni pagina se vuoi verificare che l'utente sia connesso basta fare uno strlen o cmq verificare che la variabile $_SESSION['nick'] non sia vuota,tipo:

    Codice PHP:
    session_start();

    $nick = $_SESSION['nick']; //ripesco la variabile da sessione

    if (strlen($nick) > 0) { echo "Sei loggato come $nick"; }
    else { echo
    "non sei loggato"; }
    Byee spero di esserti stato d'aiuto :P

  3. #3
    Guest

    Predefinito

    grazie mille

Regole di scrittura

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