[PHP] Problemi con Login e pagina Utente

silvioproducer

Nuovo Utente
30 Dic 2016
3
0
1
52
Salve, sono nuovo di questo forum, spero di non sbagliare sezione. Avrei bisogno di un piccolo aiuto se è possibile. Devo creare un form login multiutenti, in passato ho usato codici php dove devi inserire manualmente le username e password utenti, soltanto che vorrei usare il database adesso. Girando in internet, ho trovato questo codice Php. Il problema è che nell'esempio riportato in rete cosi come si presenta funziona benissimo, come spesso capita, lo fai tu stesso non và. In sostanza,mi da l'errore alla linea 12 come si vede nel codice che riporto. Qualcuno puo' aiutarmi? Grazie di cuore, a presto e Tanti Auguri di fine ed inizio Anno a tutti!

PHP:
<?php
include('koneksi.php');
if(isset($_POST['login'])) {
$username =$_post ['username'];
$password =$_post ['password'];
$bacasql = mysql_query ("SELECT * FROM admin WHERE username= '$username AND password='$password'");
$query=mysql_fetch_array($bacasql);
$username=$query['username'];

if($query>0){
    session_start();
  // (Nelle due linee sottostanti da l'errore, linea 12)
   $_SESSION['username']=['username'];
   $_SESSION['password']=['password'];

     if($query['username']=="admin"){
        header("location:form_admin.php");
    }elseif ($query['username']=="operator") {
        header("location:home.php");
        # code...
    }
 }
 else
 {
    echo"<script language='JavaScript'>alert('login anda ditolak')</script>";
    echo"<script language='javascript'>location.href='index.php'</script>";
 }
 ?>
 
Ultima modifica di un moderatore:
ciao
probabilmente l'hai copiato male, correggi così
PHP:
<?php
include('koneksi.php');
if(isset($_POST['login'])) {
    $username =$_post ['username'];
    $password =$_post ['password'];
    $bacasql = mysql_query ("SELECT * FROM admin WHERE username= '$username AND password='$password'");
    $query=mysql_fetch_array($bacasql);
    $username=$query['username'];
    $password=$query['password'];
    if($query>0){
        session_start();
        $_SESSION['username']=$query['username'];
        $_SESSION['password']=$query['password'];
        /*oppure visto che le estrai prima
        $_SESSION['username']=$username;
        $_SESSION['password']=$password;
        ma se usi direttamente $query[...]
        non ti serve estrarli prima
        */

        if($query['username']=="admin"){
            header("location:form_admin.php");
            exit();
        }elseif ($query['username']=="operator") {
            header("location:home.php");
        # code...QUESTO COS'E??
        }
     }else{
        echo"<script language='JavaScript'>alert('login anda ditolak')</script>";
        echo"<script language='javascript'>location.href='index.php'</script>";
     }
}
?>
o meglio ancora
PHP:
<?php
session_start();//è sempre meglio metterla all'inizio
include('koneksi.php');
if(isset($_POST['login'])) {
    $username =$_post ['username'];
    $password =$_post ['password'];
    $bacasql = mysql_query ("SELECT * FROM admin WHERE username= '$username AND password='$password'");
    $esiste=mysql_num_rows($bacasql);
    if($esiste>0){
        $query=mysql_fetch_array($bacasql);
        $_SESSION['username']=$query['username'];
        $_SESSION['password']=$query['password'];
        if($query['username']=="admin"){
            header("location:form_admin.php");
            exit();
        }elseif ($query['username']=="operator") {
            header("location:home.php");
            exit();
        }
     }else{
        echo"<script language='JavaScript'>alert('login anda ditolak')</script>";
        echo"<script language='javascript'>location.href='index.php'</script>";
     }
}
?>

inoltre un paio di consigli
abbandona le obsolete funzioni mysql_... e passa alle nuove mysqli_...
la password sarebbe meglio codificata come minimo con sha1
e ancora
non accodarti a vecchie discussioni, aprine una nuova (ti ho spostato)
e usa gli appositi bccode per il codice
 
ciao
probabilmente l'hai copiato male, correggi così
PHP:
<?php
include('koneksi.php');
if(isset($_POST['login'])) {
    $username =$_post ['username'];
    $password =$_post ['password'];
    $bacasql = mysql_query ("SELECT * FROM admin WHERE username= '$username AND password='$password'");
    $query=mysql_fetch_array($bacasql);
    $username=$query['username'];
    $password=$query['password'];
    if($query>0){
        session_start();
        $_SESSION['username']=$query['username'];
        $_SESSION['password']=$query['password'];
        /*oppure visto che le estrai prima
        $_SESSION['username']=$username;
        $_SESSION['password']=$password;
        ma se usi direttamente $query[...]
        non ti serve estrarli prima
        */

        if($query['username']=="admin"){
            header("location:form_admin.php");
            exit();
        }elseif ($query['username']=="operator") {
            header("location:home.php");
        # code...QUESTO COS'E??
        }
     }else{
        echo"<script language='JavaScript'>alert('login anda ditolak')</script>";
        echo"<script language='javascript'>location.href='index.php'</script>";
     }
}
?>
o meglio ancora
PHP:
<?php

[QUOTE="borgo italia, post: 185993, member: 9895"]mysqli[/QUOTE]

session_start();//è sempre meglio metterla all'inizio
include('koneksi.php');
if(isset($_POST['login'])) {
    $username =$_post ['username'];
    $password =$_post ['password'];
    $bacasql = mysql_query ("SELECT * FROM admin WHERE username= '$username AND password='$password'");
    $esiste=mysql_num_rows($bacasql);
    if($esiste>0){
        $query=mysql_fetch_array($bacasql);
        $_SESSION['username']=$query['username'];
        $_SESSION['password']=$query['password'];
        if($query['username']=="admin"){
            header("location:form_admin.php");
            exit();
        }elseif ($query['username']=="operator") {
            header("location:home.php");
            exit();
        }
     }else{
        echo"<script language='JavaScript'>alert('login anda ditolak')</script>";
        echo"<script language='javascript'>location.href='index.php'</script>";
     }
}
?>

inoltre un paio di consigli
abbandona le obsolete funzioni mysql_... e passa alle nuove mysqli_...
la password sarebbe meglio codificata come minimo con sha1
e ancora
non accodarti a vecchie discussioni, aprine una nuova (ti ho spostato)
e usa gli appositi bccode per il codice

Ciao Grazie di cuore per la risposta..provo subito. Per quanto riguarda il discorso
mysqli bè ancora dovrei imparare bene, da poco infatti riesco a smanettare sul php e database, cerchero' di aggiornarmi. Intanto grazie di nuovo.
 
Buon giorno, mi aggrego a questa discussione per un problema di login, anche se diverso da quello già postato. Premetto che sono un amatore, principiante e nemmeno giovane. Mi spiego, ho iniziato a studiare php da un mese e sto facendo un programmino lato server, su qnap, che deve semplicemente esporre, aggiornare, aggiungere e modificare una lista d'attesa. Tutto semplice e finora ben riuscito. Ho usato la funzione mysql e non mysqli, in futuro svilupperò la seconda. Ora il mio problema è questo. Ho fatto una pagina di login html, con un form che invia tramite POST le credenziali di accesso a una pagina php che, da un lato verifica le credenziali e quindi autorizza la funzione di modificare la lista d'attesa. In questa pagina php c'è un altro form che tramite una query invia al dbase i dati da aggiungere. Il problema è che nel momento in cui effettuo l'invio dei dati dal form presente nella pagina php, i valori delle variabili che contengono le credenziali inviate in precedenza dalla pagina login.html vengono cancellati, e quindi mi viene negata la possibilità di effettuare l'aggiornamento.
Senza la funzione la pagina di login, tutto funziona benissimo, e il programmino soddisfa completamente le mie esigenze, però ho la necessità che le modifiche possano essere effettuate solo da chi è accreditato.
Penso di aver capito questo, nel momento in cui un qualsiasi tasto submit invia i dati di un form, tutte le variabili che in precedenza sono state valorizzate dall'array $_POST['xyz'], si resettano.
Nei vari tutorial ho visto che le pagine di login, che sono in già in grado di realizzare, al termine della verifica delle credenziali, consentono il reindirizzamento verso la pagina da autorizzare, ma così facendo la pagina può essere richiamata anche senza le credenziali, e se invece implemento la verifica delle credenziali all'interno della pagina da autorizzare, le perdo appena eseguo l'invio degli altri dati.
Spero di essere riuscito a spiegarmi. Ringrazio chiunque abbia la bontà e la pazienza di darmi delle dritte.
Grazie
 
Aggiorno, ho trovato la soluzione al mio problema: impedisco l'accesso diretto alla pagina php e lo consento solo tramite include.
 

Discussioni simili