Visualizzazione risultati 1 fino 7 di 7

Discussione: Problema nel recuperare id

  1. #1
    Guest

    Predefinito Problema nel recuperare id

    Salve a tutti, io sto facendo un sito, in un sito non può mancare registrazione elogin e di conseguenza non può mancare un profilo.
    io devo fare in modo che quando un utente si logga in una sessione si prende l'id come posso fare?
    ecco i codici:
    Codice PHP:
    <?php
    $nomehost
    = "localhost";
    $nomeuser = "root";
    $password = "";
    $dbname="sito";
    $connessione = mysql_connect($nomehost,$nomeuser,$password);
    if(
    $connessione==0){echo"Connessione fallita";}
    $database_select=mysql_select_db($dbname,$connessione);
    if(
    $database_select==0){echo"Selezione non riuscita";}
    $username=$_POST['username'];
    $password=$_POST['password'];
    $conferma=$_POST['conferma'];
    $email=$_POST['email'];
    if(
    $password!=$conferma){echo"ricontrolla i campi password";}else{
    if(
    $nome==' ' or $cognome==' ' or $username==' ' or $password==' ')
    {echo
    "tutti i campi sono obbligatori";}
    else{
    $query="Insert into `utenti` (`username`,`password`) VALUES ('$username','$password')";
    $result=mysql_query($query,$connessione);
    if(
    $result==0) die("errore registrazione");
    header("location:index.html");
    }
    }
    ?>
    Login:
    Codice PHP:
    <?php
    session_start
    ();
    $nomehost = "localhost";
    $nomeuser = "root";
    $password = "";
    $dbname="sito";
    $myusername=$_POST['username'];
    $mypassword=$_POST['password'];
    $connessione = mysql_connect($nomehost,$nomeuser,$password);
    $database_select=mysql_select_db($dbname,$connessione);
    $sql="SELECT * FROM utenti WHERE username='$myusername' and password='$mypassword' and id='$myid'";
    $query = mysql_query($sql) or die (mysql_error());
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    $query = "SELECT * FROM utenti WHERE id = " . $_SESSION['idutente'];
    $_SESSION['idutente'] = $row['id'];
    $_SESSION['username'] = $myusername;
    if(
    $count==1){
    session_register("myusername");
    session_register("mypassword");
    echo
    "<a href=\"member.php?user=$idutente\">Profilo</a>";

    }
    else{
    echo
    "login non riuscito";
    }
    ?>
    Ultima modifica di karl94 : 22-03-2015 alle ore 20.38.09

  2. #2
    Guest

    Predefinito

    Ciao, non ho testato il tuo codice ma a occhio ho capito c'è che non và, la parte più difficile è stata proprio capire cosa vuoi ottenere.
    La tua domanda è poco chiara, da quanto ho capito non riesci a estrapolare l'id dalla query per salvartelo nella sessione.

    Mi è sembrato che il tuo codice fosse un insieme di altri codici mischiati, l'ho riscritto da 0 con mysqli e orientato a classi.
    Ho cercato di farlo con la stessa logica del tuo così che fosse comprensibile, ma fai conto che comunque ci sono alcune cose che non sono troppo corrette.

    Codice PHP:
    <?php
    session_start
    ();

    $nomehost = "localhost";
    $nomeuser = "ThCommunity";
    $password = "";
    $dbname = "my_ThCommunity";

    $conn = new mysqli($nomehost, $nomeuser, $password);
    if (
    $conn->connect_error) {
    die(
    "Connection failed: " . $conn->connect_error);
    }

    $conn->select_db($dbname);

    $myusername = $conn->real_escape_string($_POST['username']);
    $mypassword = $conn->real_escape_string($_POST['password']);


    $sql = "SELECT idUtente, username FROM user WHERE username='".$myusername."' AND password='".$mypassword."'";
    $query = $conn->query($sql) or die (mysql_error());

    if(
    $query->num_rows == 1) {

    $fetch = $query->fetch_assoc();
    $_SESSION['idutente'] = $fetch['idUtente'];
    $_SESSION['username'] = $fetch['username'];

    echo
    "<a href=\"member.php?user=".$fetch['idUtente']."\">Profilo</a>";

    } else {
    echo
    "login non riuscito";
    }
    ?>
    Ora hai le variabili $_SESSION['idutente'] e $_SESSION['username'] richiamabili dove vuoi all'interno di qualsiasi pagina php che abbia un session_start(); all'inizio.

    Bye!
    Ultima modifica di pxy : 23-03-2015 alle ore 18.39.55

  3. #3
    Guest

    Predefinito

    @pxy ciao, scusa se ti rispondo ora ma ho avuto problemi di connessione, comunque grazie oggi provo e vedo se funziona. Ti faccio sapere

  4. #4
    Guest

    Predefinito

    @pxymi fa questo errore:

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\SitoPrincipale\registrazione-login\login2.php:1) in C:\xampp\htdocs\SitoPrincipale\registrazione-login\login2.php on line 2

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\SitoPrincipale\registrazione-login\login2.php:1) in C:\xampp\htdocs\SitoPrincipale\registrazione-login\login2.php on line 2

  5. #5
    Guest

    Predefinito

    Mmh, assicurati che nei tuoi script il "session_start();" sia la prima cosa che il server invia al browser.
    Devi farlo sempre prima che il server inizi a dialogare con il client (esempio un echo)
    E' buona pratica farlo sempre subito dopo "<?php" se lavori senza classi e quindi applicazioni che per un azione richiedono una pagina specifica.
    Fammi sapere se risolvi!, bye!

  6. #6
    Guest

    Predefinito

    allora, la pagina che mi hai dato e quella che cotatta con il database per il login se vedi, quinfi e la prima pzfina che vede il session_start() capito?

  7. #7
    Guest

    Predefinito

    Se provi lo stesso script su altervista funziona?
    Mi viene in mente che apache appia qualche impostazione strana e sporchi l'header iniziale non permettendoti di settare i cookie per la sesisone. Magari hai abilitato qualche compressione?
    Bho! Cmq prova su altervista, funziona?

Regole di scrittura

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