Login php e redirect

  • Creatore Discussione Creatore Discussione Laskot
  • Data di inizio Data di inizio

Laskot

Nuovo Utente
5 Giu 2017
15
0
1
29
Ciao a tutti,
avrei un paio di domande su PHP, sono alle prime armi e ho qualche difficoltà.

La prima è questa: sono riuscita a fare in modo che l'utente possa loggarsi, nella mia $_SESSION ci sono nome utente e password. Il problema è che vorrei poter modificare la mia homepage che è un file.HTML per renderla più personale,per esempio vorrei togliere il form di login quando l'utente è già loggato e mettere un altro form nel quale aggiungere informazioni personali. Non so proprio come modificare la mia pagina HTML di conseguenza al fatto che il login sia avvenuto o no.

La seconda è questa: l'utente si registra al sito, ma dopo che il mio utente è finito nel mio DB e quindi la registrazione penso sia corretta, visualizzo una pagina bianca. Ho cercato on the line e ho trovato che esiste il header("location: /nuova-pagina.php"); Il problema è che non cosa mettere come argomento: sto provando ad usare PHP sul localhost, ho la cartella htdocs piena dei miei file PHP e HTML, cosa scrivo per reindirizzarlo? location: miofile.html ? Ho provato diverse volte, ma non ci sono riuscita.

Grazie per l'aiuto :)
 
ciao
per prima cosa da quanto ho capito vorresti che la pagina sia dinamica, quindi non puoi usare l'estenzione mia_pagina.html ma devi usare mia_pagina.php, poi la funzione header ha la particolarità di dover essere usata prima di qualsiasi output html altrimenti non funziona, salvo reiidirizzare il flusso (anche uno spazio o riga vuota prima del tag php viene considerato output html) ti schematizzo come potresti fare
ti fai la tua pagina index.php con i form
PHP:
<?php
session_start();
//verifichi se l'utente è loggato o meno
if(!isset($_SESSION['username'])){
    //l'utente NON è loccato la sessionre non esiste
    echo "ciao per accedere devi loggarti<br />";
    ?>
    <form action="verifica_log.php" method="post" name="log">
    <!-- i campi per inserire user pass e submit-->
    </form>
    <?php
}else{
    //l'utente è loggato quindi può inserire i suoi dati
    echo "ciao ".$_SESSION['username']." inserisci i tuoi dati<br />";
    ?>
    <form action="dati_utente.php" method="post" name="dati">
    <!--
    i vari campi per inserire nome cognome, email ecc...
    e il submit
    -->
    </form>
    <?php
}
?>
poi ti fai la pagina verifica_log.php
PHP:
<?php
session_start();
//ricevi i dati dal form
$user=$_POST['user'];
$pass=$_POST['pass'];
//verifichi che i post esistano e che siano corretti e verifichi nel db
//dati di connessione
$ris=mysqli_query($connessione, "SELECT user, pass FROM utenti WHERE user='$user' AND pass='$pass'");
if(mysqli_num_rows($ris)>0){
    //l'utente è registrato e il log corretto
    $_SESSION['username']=$user;//valorizzi la sessione
}else{
    //l'utente non è registrato
    //per sicurezza distruggi le eventuali sessioni
    @session_destroy();
}
header('location:index.php');
?>
circa anologo per la pagina che inserirà i dati dell'utente dati_utente.php
PHP:
<?php
//in modo da essere sicuri che l'utente sia loggato
if(!isset($_SESSION['username'])){
    //tentativo di accesso non autorizzato
    @session_destroy();
    header('location:index.php');
}else{
    //dati di connessione
    //leggi i vari $_POST e li verifichi
    //e fai l'inserimento nel db
    header('location:pagina_che_vuoi.php');
}
?>
guarda come detto è uno schema, mancano le parti di html, css, ilnoltre l'ho diviso in tre paginwe, ma il tutto può ridursi ad un'unica pagina
comunque butta giù qualcosa e se hai problemi posta
 

Discussioni simili