Visualizzazione risultati 1 fino 8 di 8
Like Tree1Likes
  • 1 Post By mzanella

Discussione: accesso pagina profilo utente con password assegnata

  1. #1
    fcfclean non è connesso Utente
    Data registrazione
    17-09-2014
    Messaggi
    140

    Predefinito accesso pagina profilo utente con password assegnata

    salve sono riuscito a creare una lista php dove aggiungo o elimino gli utenti e la pagina profilo con foto ( le assegno io ) la pagina profilo è compresa di: id nome cognome telefono email foto note appalti sto facendo questa cosa in modo che valuto l'operaio vorrei creare una pagina di login con la password che assegno io ad ogni id utente in modo che ogni utente può accedere alla sua pagina profilo
    posto la pagina profilo chiedo aiuto grazie ( no registrazione )
    ----------------------------------------------------
    Codice PHP:
    <?
    // connessione al database
    include('connect-db.php');
    $id = $_GET['id'];
    //$result = mysql_query("SELECT * FROM operai WHERE id=$id")
    $result = mysql_query("SELECT id, nome, cognome, telefono, email, foto, note, appalti FROM operai WHERE id=$id");

    // loop tra i risultati della query del database, visualizzandoli in tabella
    while($row = mysql_fetch_array( $result )) {

    // Per stampare i dati
    $id= $row['id'];
    $nome= $row['nome'];
    $cognome= $row['cognome'];
    $telefono= $row['telefono'];
    $email= $row['email'];
    $foto= $row['foto'];
    $note= $row['note'];
    $appalti= $row['appalti'];

    ?>
    Ultima modifica di karl94 : 14-12-2016 alle ore 13.11.59 Motivo: Formattazione del codice

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Ti servono:
    • una pagina HTML (o PHP) con il modulo di login
    • una pagina PHP che riceva i dati dalla precedente, controlli sulla base di dati che le credenziali siano corrette ed avvii la sessione
    • nella pagina del profilo, l'id dell'utente da mostrare sarà recuperato dalla sessione anziché da $_GET

    Ti sono chiari questi punti, o hai dubbi più specifici?

  3. #3
    fcfclean non è connesso Utente
    Data registrazione
    17-09-2014
    Messaggi
    140

    Predefinito

    ciao non sono un programmatore sto provato a creare il login il form ancora non l'ho creato ma sicuramente sbaglio qualcosa ciò che ho modificato esisteva già era per inseri i dati modificare i dati e cancellare sono riuscito a creare la pagina profilo ma credo che sono molto lontano nel realizzare ciò che mi serve

    <?php
    session_start();// come sempre prima cosa, aprire la sessione
    $password="xxxxxxxx"; /* inserire su questa riga la password voluta */
    $_SESSION["cognome"]=$_POST["cognome"];
    $_SESSION["id"]=$_POST["id"];
    $_SESSION["password"]== $password) { $_POST["password"];
    $query = mysql_query("SELECT id, nome, cognome, telefono, email, foto, note, appalti FROM operai WHERE id=$id");
    or DIE('query non riuscita'.mysql_error());

    if(mysql_num_rows($query)&gt;0){
    $row = mysql_fetch_assoc($query);
    $_SESSION["login"] =true;
    header("location:profilo.php");
    }else{
    echo "login effettuato con successo";
    }
    ?>
    ?>
    Ultima modifica di fcfclean : 14-12-2016 alle ore 15.22.29

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Prima di scrivere nella sessione, controlla che le credenziali siano corrette:
    Codice PHP:
    session_start();

    // Controllo delle credenziali
    $id = $_POST['id'];
    $password = $_POST['password'];
    $query = "SELECT * FROM operai WHERE id = $id AND password = '$password'";
    $result = mysql_query($query);

    // Se esiste una corrispondenza nella tabella: login corretto
    if (mysql_num_rows($result) > 0) {
    $_SESSION['id'] = $id;
    header('location: profilo.php');
    }

    // Nessuna corrispondenza: id o password errati
    else {
    echo
    "Errore: ID o password errati!";
    }
    L'idea consiste nell'estrarre dalla tabella la riga in cui ID e password corrispondono. Se tale riga esiste (num_rows > 0) il login avviene correttamente, altrimenti significa che non ci sono corrispondenze nella tabella: ID o password sbagliati.

    Cio` detto, alcune cose vanno sistemate: mysql_* e` deprecato, meglio usare mysqli o PDO, inoltre le password non dovrebbero essere memorizzate in chiaro nella base di dati: meglio usare funzioni come password_hash.
    fcfclean likes this.

  5. #5
    fcfclean non è connesso Utente
    Data registrazione
    17-09-2014
    Messaggi
    140

    Predefinito

    ciao e grazie per l'aiuto ma ciò che ho modificato non è un sito di registrazione ma aggiungo io i dati ( utenti ) io infatti la password la devo assegnare io in modo che l'operaio possa accedere al suo profilo le foto non sono memorizzate nel database se vuoi mi dai la tua mail cosi ti invio il file zippato credevo che inserendo il cognome e la password assegnata da me riconosceva id cognome de l'operaio
    Ultima modifica di fcfclean : 14-12-2016 alle ore 18.24.45

  6. #6
    fcfclean non è connesso Utente
    Data registrazione
    17-09-2014
    Messaggi
    140

    Predefinito

    ciao ti posto il codice dove aggiungo gli utenti vorrei che ogni utente che aggiungo gli assegno una password

    <?php
    /*
    NEW.PHP
    Permette all'utente di creare una nuova voce nel database
    */

    // crea il modulo di inserimento nuovi dati
    // dal momento che questo modulo è utilizzato più volte in questo file, ho fatto una funzione facilmente riutilizzabile
    function renderForm($nome, $cognome, $telefono, $email, $error)
    {
    ?>


    <?php
    // se ci sono errori vengono visualizzati
    if ($error != '')
    {
    echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>';
    }
    ?>

    <form action="" method="post">
    <div>
    <strong>Nome: *</strong> <input type="text" name="nome" value="<?php echo $nome; ?>" /><br/>
    <strong>Cognome: *</strong> <input type="text" name="cognome" value="<?php echo $cognome; ?>" /><br/>
    <strong>Telefono: </strong> <input type="text" name="telefono" value="<?php echo $telefono; ?>" /><br/>
    <strong>Email: </strong> <input type="text" name="email" value="<?php echo $email; ?>" /><br/>
    <strong>Foto: </strong> <input type="text" name="foto" value="<?php echo $foto; ?>" /><br/>
    <label>Note: </label><br> <textarea rows="5" cols="50" name="note" ><?php echo $note; ?></textarea><br/>
    <p>* Richiesto</p>
    <input type="submit" name="submit" value="Invia">
    </div>
    </form>
    </body>
    </html>
    <?php
    }

    // connessione al database
    include('connect-db.php');

    // verifica se il modulo è stato inviato. Se lo è, inizia a elaborare il modulo e lo salva nel database
    if (isset($_POST['submit']))
    {
    // ottenere i dati del modulo e verific che siano validi
    $nome = mysql_real_escape_string(htmlspecialchars($_POST['nome']));
    $cognome = mysql_real_escape_string(htmlspecialchars($_POST['cognome']));
    $telefono = mysql_real_escape_string(htmlspecialchars($_POST['telefono']));
    $email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
    $foto = mysql_real_escape_string(htmlspecialchars($_POST['foto']));
    $note = mysql_real_escape_string(htmlspecialchars($_POST['note']));
    // controlla che entrambi i campi vengono inseriti
    if ($nome == '' || $cognome == '' || $telefono == '' || $email == ''|| $foto='')
    {
    // genera messaggio di errore
    $error = 'ERROR: Please fill in all required fields!';

    // se uno dei due campi è vuoto, visualizzo di nuovo il modulo
    renderForm($nome, $cognome, $telefono, $email, $foto, $note, $error);
    }
    else
    {
    // salva i dati nel database
    mysql_query("INSERT operai SET nome='$nome', cognome='$cognome', telefono='$telefono' , email='$email', foto='$foto', note='$note' ")
    or die(mysql_error());

    // una volta salvato, si viene reindirizzati alla pagina di visualizzazione
    header("Location: view.php");
    }
    }
    else
    // se il modulo non è stato inviato, visualizzare il modulo
    {
    renderForm('','','','','','');
    }
    ?>

  7. #7
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    ciao e grazie per l'aiuto ma ciò che ho modificato non è un sito di registrazione ma aggiungo io i dati
    Quello che ti ho mostrato infatti era il codice per il login, non per la registrazione .

    ciao ti posto il codice dove aggiungo gli utenti vorrei che ogni utente che aggiungo gli assegno una password
    Aggiungi un campo per la password nel modulo di inserimento:
    Codice HTML:
    <strong>Cognome: *</strong> <input type="text" name="cognome" value="<?php echo $cognome; ?>" /><br/>
    <strong>Password:*</strong> <input type="password" name="password" /><br />
    <strong>Telefono: </strong> <input type="text" name="telefono" value="<?php echo $telefono; ?>" /><br/>
    e gestiscine l'inserimento lato server:
    Codice PHP:
    ...
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
    ...
    $query = "INSERT INTO operai (nome, cognome, password, telefono, email, foto, note) VALUES('$nome', '$cognome', '$password', '$telefono', '$email', '$foto', '$note')";
    mysql_query($query);
    Ovviamente alla tabella operai deve essere preventivamente aggiunto un campo password, di tipo VARCHAR(255) o superiore.

  8. #8
    fcfclean non è connesso Utente
    Data registrazione
    17-09-2014
    Messaggi
    140

    Predefinito

    ciao e grazie ancora x l'aiuto buone feste e buon natale

Regole di scrittura

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