Problemi di login

ciao
hai ragine errore di copy/paste
correggi
$usn=htmlspecialchars(trim($_POST['username']));
$pas=md5(trim($_POST['username']));
in
PHP:
$usn=htmlspecialchars(trim($_POST['username']));
$pas=md5(trim($_POST['password']));
anche se un errore del genere avresti dovuto saperlo correggere tu.

se poi non ti fa entrare ancora può essere che l'errore sia nella tabella o nella pag riservata
 
Ciao

E questa è la paginaris.ph, non so se ti può essere d'aiuto:

PHP:
<link rel="stylesheet" type="text/css" href="coloredisfondo.css">
 
    <?php
require_once("connetti.php");
    session_start();
if(isset($_COOKIE["ultimoaccesso"])) {
    $valore_cookie = date("d/m/Y - H:i:s");
    setcookie ("ultimoaccesso", $valore_cookie, time() + 365 *24*3600);
    $ultimo_cookie = $_COOKIE["ultimoaccesso"];
    $me= "Il tuo ultimo accesso è stato il:  $ultimo_cookie";
} else {
    $valore_cookie = date("d/m/Y - H:i:s");
    setcookie ("ultimoaccesso", $valore_cookie, time() + 365 *24*3600);
    $me= "Non ti sei mai collegato a questa pagina";
}

session_start();
$stringa= strtoupper($_SESSION['nome']);
if(isset($_SESSION['nome'])) {
 
   
    echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
?>
<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>benvenuto</title>

<body>
    
<?php

$stringa= strtoupper($_SESSION['nome']); 


if (ifsset($_SESSION['nome'] = $nome))  {
    
 //if(isset($_SESSION['nome'] )) {   
    echo "Ciao " . $_SESSION['nome'];


    echo "Accesso non consentito";

}


    echo "<div class=\"messaggio\"><h1>";

    echo "BENVENUTO ".$stringa." <br />";
    echo $me;
    echo "</h1></div>";
    echo "</body></html>";
    }else{
    header("Location:failed.html");      
    exit();   
 
}
 
 ?> 
 
<html>
    <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
  

<center>  <br> <br>
    

<input type="button" onClick="window.location.href='logout.php';" style='padding:10px' value="Logout" />
 

 
</center>
 </body>
</html>

Ah ti posto anche la tabella utenti come l'ho fatta:

PHP:
create table utenti (

id 		INT UNSIGNED NOT NULL AUTO_INCREMENT,
nome 		VARCHAR(30) NOT NULL,
cognome 	VARCHAR(30) NOT NULL,
username 	VARCHAR(30) NOT NULL,
email           VARCHAR(40) NOT NULL,
password        VARCHAR(255) NOT NULL,
attivo	ENUM('1', '0') DEFAULT '0',
PRIMARY KEY (id)
);
 
Ciao

ciao
hai ragine errore di copy/paste
correggi
$usn=htmlspecialchars(trim($_POST['username']));
$pas=md5(trim($_POST['username']));
in
PHP:
$usn=htmlspecialchars(trim($_POST['username']));
$pas=md5(trim($_POST['password']));
anche se un errore del genere avresti dovuto saperlo correggere tu.

se poi non ti fa entrare ancora può essere che l'errore sia nella tabella o nella pag riservata

Ciao,

Infatti volevo solo la tua conferma se era un tuo errore o meno. L'avevo già corretto :P Infatti sotto c'è sia la paginaris e sia la tabella di come l'ho fatta. Puoi dare una controllata alla paginaris per favore. Grazie.
 
ciao
aggiungi al lo script che ti ho postato le due righe

PHP:
<?php
ob_start();//visto che usi header popo l'l'uotput html
session_start();//aggiungi questa e
if(isset($_POST['log'])){
    require_once("connetti.php");
    $usn=htmlspecialchars(trim($_POST['username']));
    $pas=md5(trim($_POST['username']));
	//................
	 if(mysql_num_rows($q) > 0){
        $_SESSION['nome']=$usn;// questa
		header("location: paginaris.php");
    }else{
	//.........
?>
 
Ciao

Evvaiiiiiiiiiiii sei un grande. Complimenti. Mi ha fatti entrare. però mi da il seguente errore che devo verificare a cosa corrisponde. L'errore è il seguente:

Fatal error: Call to undefined function ifsset() in /volume1/web/utenti/fabio/MegaLaboratorio/paginaris.php on line 38
 
Ciao

Ciao,

Credo di aver definitivamente riuscito nell'intento. L'unica cosa che mi appare ora è la seguente scritta, ma riuscirò a toglierla:

Ciao paperinik4Accesso non consentito. C'è lì'ho gia bello grande il benvenuto ehehehehe. Grazie ancora per l'aiuto.

Ti allego l'immagine.

P.S.: per sostituire lo username e metterci il nome, cosa debbo fare ???? Grazie ancora
 
Ciao

Ciao,

Ora che me l'hai fatto notare, l'ho corretto eheeheh. Errore di distrazione. Mi puoi dire esattamente da dove si pesca lo username ???? Che viene visualizzato nella paginatis. Perchè a posto dello username ci vorrei mettere il nome della persona. Il codice che riuguarda la parte del nome è il seguente:

paginaris.php

PHP:
<?php

$stringa= strtoupper($_SESSION['nome'] ); 


if (isset($_SESSION['nome'] = $nome))  {
    
 //if(isset($_SESSION['nome'] = $nome )) {   
    echo "Ciao " . $_SESSION['nome'];


    echo "<div class=\"messaggio\"><h1>";

    echo "BENVENUTO ".$stringa." <br />";
    echo $me;
    echo "</h1></div>";
    echo "</body></html>";
    }else{
    header("Location:failed.html");      
    exit();   
 

 }
 ?>
 
ciao
da dove lo verifichi
PHP:
//....
if(mysql_num_rows($q) > 0){
        $_SESSION['nome']=$usn;// da qui dove crei la sessione
        header("location: paginaris.php");
    }else{
//.....
 
Ciao

Ciao Borgo,

Scusami, ero andato a fare la spesa. Allora tornando a bomba. Da quello che mi hai postato tu ossia questo spezzone di codice:

PHP:
//....
if(mysql_num_rows($q) > 0){
        $_SESSION['nome']=$usn;// da qui dove crei la sessione
        header("location: paginaris.php");
    }else{
//.....

Lo dovrei modificare in questa maniera, per sicurezza ho messo anche questa riga in più:

PHP:
$usn=htmlspecialchars(trim($_POST['username']));
   $nme = mysql_real_escape_string(strtolower(trim ($_POST['nome'])));

//....
if(mysql_num_rows($q) > 0){
        $_SESSION['nome']=$nome;// da qui dove crei la sessione
        header("location: paginaris.php");
    }else{
//.....

Ho provato ovviamente a modificarlo, ma non mi visualizza un tubo. Come mai ????? Mi rimane la seguente scritta:

BENVENUTO
Il tuo ultimo accesso è stato il: 20/10/2012 - 11:20:19

Invece speravo che mi visualizzasse il nome.
 
Ciao

Allora,

Mi era venuto un dubbio, e me lo sono tolto. Ho fatto una nuova registrazione, una volta registrato mi arriva l'email di conferma che deve attivare l'account. Nel login o nella paginaris, abbiamo saltato il controllo riguardante attivo = 0 da attivo = 1 Ossia se è 0 non lo deve fare entrare, se è 1 ha via libera e si può connettere. Manca questo passaggio. Come si può integrare ???? Ti riposto il login.


login.php

PHP:
?php
ob_start();//visto che usi header popo l'l'uotput html
session_start();//aggiungi questa e
require_once("connetti.php");
if(isset($_POST['log'])){
    
   $usn=htmlspecialchars(trim($_POST['username']));
       
    $pas=md5(trim($_POST['password']));
   //$nome = mysql_real_escape_string(strtolower(trim ($_POST['nome'])));
   
    //$q=mysql_query("SELECT * FROM utenti WHERE username='$usn' AND password='$pas' ");
    $q=mysql_query("SELECT * FROM utenti WHERE username='$usn' AND password='$pas' ");
    if(mysql_num_rows($q) > 0){
       $_SESSION['nome']=$usn;// questa 
        
        
        header("location: paginaris.php");
    }else{
        header("location: login.php");
    }
    exit();
}else{
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>form di log</title>
</head>
<body>
<center>
<!--a che cavolo serve questo link? o clicko o inserisci -->
<h2>DIGITARE USERNAME & PASSWORD. PREMERE <a href="iscrizione.php"> QUI</a> </h2> 
<form action= "<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<font face="Comic Sans MS">
Username: <input type="text" name="username"  maxlength="30" size ="32"> <br /> <br />
Password: <input type="password" name="password"  maxlength="12" size ="14"><br /><br />
</font>
<input type="submit" name="log" value="Loggati" />
</form>
<!-- qui il tag center (obsoleto) era indentato col form -->
</center> 
</body>
</html>
<?php
}
ob_end_flush();
?>

e sotto ti metto anche la paginaris.php, perchè forse va modificata quella nel controllo che si effettua:

paginaris.php

PHP:
<link rel="stylesheet" type="text/css" href="coloredisfondo.css">
 
    <?php
require_once("connetti.php");
    session_start();
if(isset($_COOKIE["ultimoaccesso"])) {
    $valore_cookie = date("d/m/Y - H:i:s");
    setcookie ("ultimoaccesso", $valore_cookie, time() + 365 *24*3600);
    $ultimo_cookie = $_COOKIE["ultimoaccesso"];
    $me= "Il tuo ultimo accesso è stato il:  $ultimo_cookie";
} else {
    $valore_cookie = date("d/m/Y - H:i:s");
    setcookie ("ultimoaccesso", $valore_cookie, time() + 365 *24*3600);
    $me= "Non ti sei mai collegato a questa pagina";
}


session_start();
$stringa= strtoupper($_SESSION['nome']);
if(isset($_SESSION['nome'])) {
   
    echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
?>
    
<?php

$stringa= strtoupper($_SESSION['nome'] ); 
    
 if(isset($_SESSION['nome']))  {   

    echo "<div class=\"messaggio\"><h1>";

    echo "BENVENUTO ".$stringa." <br />";
    die();
    
    echo $me;
    echo "</h1></div>";
    echo "</body></html>";
    }else{
    header("Location:failed.html");      
    exit();   
 
}

}
 ?> 
<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>benvenuto</title>

<body>
 
<html>
    <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
  

<center>  <br> <br>
    

<input type="button" onClick="window.location.href='logout.php';" style='padding:10px' value="Logout" />
 

 
</center>
 </body>
</html>

Intanto farò altre prove, perchè mi sembra di ricordare che avevo trovato qualcosa al riguardo al controllo da 0 disattivo a 1 attivo. Il problema è ricordarsi dove l'ho visto e memorizzato eheheheeh.
 
Ciao

Mi spieghi perchè quando tu fai le modifiche funzionano e quando le faccio io no ??? Le avevo fatte non dico uguali ma simili, perchè avevo pensato che mancasse un controllo del genere. All'inizio avevo messo questa query in questa maniera:

PHP:
$q=mysql_query("SELECT username, password attivo FROM utenti WHERE username='$usn' AND password='$pas' AND username='$usn' AND attivo ='1'");

E non andava, invece con l'* e senza apici è andato. Un'altra cosa cte devo rompe, scusami. Visto che tu ci riesci e io con innumerevoli sforzi no. Volevo visualizzare il nome anzicchè lo username quando ti conetti alla paginaris.php
Ossia ora lui mi visualizza questo:

BENVENUTO PAPERINIK4

Invece dello username, vorrei visualizzare

BENVENUTO FABIO o pincopallino, come posso risolvere. Ovviamente da solo non ci sono riuscito. :(
 
ciao
sempre dove fai la verifica dell'user e pass
estrai il nome e lo metti in sessione, sessione che poi userai dove vuoi
aggiungi le righe indicate
PHP:
 <?php
ob_start();//visto che usi header popo l'l'uotput html
session_start();
if(isset($_POST['log'])){
    require_once("connetti.php");
    $usn=htmlspecialchars(trim($_POST['username']));
    $pas=md5(trim($_POST['username']));
    //................
     $q=mysql_query("SELECT * FROM utenti WHERE username='$usn' AND password='$pas'"); 
	 if(mysql_num_rows($q) > 0){
        $_SESSION['nome']=$usn;
		$riga=mysql_fetch_array($q);//aggiungi questa e
		$_SESSION['nome_utente']=$riga['nome'];//questa
        header("location: paginaris.php");
    }else{
    //.........
?>
 
ciao
sempre dove fai la verifica dell'user e pass
estrai il nome e lo metti in sessione, sessione che poi userai dove vuoi
aggiungi le righe indicate
PHP:
 <?php
ob_start();//visto che usi header popo l'l'uotput html
session_start();
if(isset($_POST['log'])){
    require_once("connetti.php");
    $usn=htmlspecialchars(trim($_POST['username']));
    $pas=md5(trim($_POST['username']));
    //................
     $q=mysql_query("SELECT * FROM utenti WHERE username='$usn' AND password='$pas'"); 
	 if(mysql_num_rows($q) > 0){
        $_SESSION['nome']=$usn;
		$riga=mysql_fetch_array($q);//aggiungi questa e
		$_SESSION['nome_utente']=$riga['nome'];//questa
        header("location: paginaris.php");
    }else{
    //.........
?>

Ciao,

Mi rispondo da solo. Sono un gran pirla. Ovviamente non avevo modificato la seguente riga:

PHP:
$_SESSION['nome_utente']=$riga['nome'];//questa

Che invece andava messa così:

PHP:
$_SESSION['nome']=$riga['nome'];//questa

Quando uno è pirla è pirla non c'è niente da fare. Sei stato un grande dico davvero, e ti ho rotto abbastanza i gambasisi. Ora, ti volevo chiedere un consiglio da esperto. Come posso andare avanti ??? Nel senso, tutto questo è bello funziona tutto grazie molto del tuo merito e di altri dello staff, però cosa ci metto in questa pagina vagante nel vuoto ???? Non so se mi sono spiegato cosa intendo. Aspetto come al solito vostri suggerimenti.
 

Discussioni simili