- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Script] Login
-
[Script] Login
Ciao a tutti, visto che molti fanno richiesta di un Login ho creato uno script
ci sono 5 files dentro, il codice è tutto commentato quindi spiego passo a passo quello che faccio.dovete solo creare un database con 2 campi, username e password(la password criptata in MD5 per criptarla basta che mentre si inserisce nel database si faccia un md5($pass)
il secondo passo è impostare il file config.php con i vostri dati
e il terzo passo è
provare lo script.non l'ho testato ma penso che vada, buona giornata
-
ti inserisco tra gli script utili grazie
-
Non c'è di che spero che sia utile a qualcuno
-
grazie...ho seguito la guida ma mi da un errore quando eseguo il logout...
[PHP]<?php
//distruggo le sessioni per fare il logout
session_destroy();
echo "Logout effettuato";
/echo "<script>
window.location = "index.php"
</script>";/
?>[/PHP]
Questo il msg di errore:**Warning**: session_destroy() [[function.session-destroy](http://localhost/tapsos/admin/function.session-destroy)]: Trying to destroy uninitialized session in **C:\Programmi\EasyPHP 2.0b1\www\tapsos\admin\logout.php** on line **3**
che faccio?
Grazie
Ciao
-
All'inizio del file aggiungi include "config.php";
così deve diventare
<?php
include "config.php";
//distruggo le sessioni per fare il logout
session_destroy();
echo "Logout effettuato";
/echo "<script>
window.location = "index.php"
</script>";/
?>fammi sapere
-
grazie!tutto sistemato!
-
Ragazzi sono nuovo...Allora ho provato ad utilizzare il codice però ho qualche problema..Ecco cosa mi esce fuori:
Warning: session_start() [function.session-start]: open(C:/php/sessionfiles\sess_r6ka3fr1sp189nt9ni9dfbnrv6, O_RDWR) failed: No such file or directory (2) in C:\www\login\Login\config.php on line 2
Non hai fatto il login correttamente, mi spiace riprova o iscriviti
Warning: Unknown: open(C:/php/sessionfiles\sess_r6ka3fr1sp189nt9ni9dfbnrv6, O_RDWR) failed: No such file or directory (2) in Unknown on line 0Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:/php/sessionfiles) in Unknown on line 0Mi potreste aiutare?
EDIT: Ho risolto il problema precedente creando una cartella "sessionfiles" nella root di php....Adesso il problema è che lo script non mi funziona...mi da sempre username e password errate...ho anche provato a togliere la md5 ma non funziona lo stesso...:x
EDIT 2: Ok tutto risolto...ho dovuto modificare un po il codice ma adesso funziona...se serve ve lo posto...
-
ciao Darkito e benvenuto nel forum.
Posta pure il codice si ti và, potrebbe essere utile ad altri.
-
Ho dovuto modificare lo script login.php
Ecco il codice:File login.php
[php]<?php//includo il file di Configurazione con session_start()) dentro
include "config.php";$userid=trim($_POST['username']);
$pass=trim($_POST['password']);//Eseguo una query nella tabella utenti verificando se esiste l'username con quella password.
// codice vulnerabile...converebbe introdurre codice anti inject codes..
$query = mysql_query("SELECT username FROM utenti WHERE username = '".$_POST['username']."' AND password = '".md5($_POST['password'])."'");
$var=mysql_num_rows($query);
//se esiste l'account registra la sessione
if($var==1)
{
//metto l'username nella variabile di sessione "username"
$_SESSION['username'] = $_POST['username'];
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "enter.php"
</script>";
}
else
{
//Faccio il redirect nella pagine enter.php
//Questa sezione può contenere l'implementazione della parte di codice relativa al login errato.
echo "<script>
window.location = "enter.php"
</script>";
}
?>
[/php]
-
Grazie darkito sarà un utile feedback per altri utenti
-
scusami DARKITO ma a cosa ti servono
$userid=trim($_POST['username']);
$pass=trim($_POST['password']);e poi io ho un problema, ti scrivo i miei passi:
1)uso easyphp in locale e quindi ho scaricato il codice, unzippato nella cartella
WWW/Login/
2)ho creato il db con phpmyadmin creando un utente con tutti i privilegi
username= 'log'
password= 'log'
ed ho creato il db nominato 'logdb'
3)ho creato la tabella 'utenti' con campi 'username' e 'password'
4)inserito allinterno della tabella i valori 'renato','renato'
5)ho settato config.php cosi:<?php
session_start();$database_name = "logdb";
$nomeutente = "log";
$password = "log";$connection = mysql_connect( 'localhost', $nomeutente, $password) or die('Could not connect to server.' );
mysql_select_db($database_name, $connection) or die('Could not select database.');
?>6)ora quando vado a fare il login ed inserisco renato renato mi esce la pagina con
Non hai fatto il login correttamente, mi spiace riprova o iscriviti
Ora mi sai spiegare il perchè?
p.s. ho fatto tutte le modifiche sopra descritte
-
Ciao pizzet e benvenuto nel forumGT
Per quanto riguarda **trim **serve a togliere gli spazi all'interno della stringa.
Per quanto riguarda il secondo punto dovrebbe essere un problema di configurazione del server.
Potrebbero essere le sessioni non abilitate.
-
grazie per la tua velocità
cmq se non l'avessi capito non sono un veterano del php ma solo un dilettante.
Mi potresti spiegare come configurare le sessioni????
-
visto che non lo hai scritto... hai fatto l'iscrizione prima?
-
no ho inserito direttamente i campi nel database quindi dovrebbe trovare l'utente renato quando va a fare la query per il login
Sbaglio???
-
@pizzet said:
no ho inserito direttamente i campi nel database quindi dovrebbe trovare l'utente renato quando va a fare la query per il login
Sbaglio???Forse ho capito quale è il tuo errore...Nell'inserimento molto probabilmente hai inserito la passwordo senza la crittazione MD5 per questo quando cerchi renato renato non ti fa il log-in. Puoi risolvere in due modi:
1- Modificando la query originale togliendo la crittazione MD5[php]$query = mysql_query("SELECT username FROM utenti WHERE username = '".$_POST['username']."' AND password = '"$_POST['password']."'");[/php]2- Inserendo i dati in questo modo..riporto pure la tabella a cui fa riferimento l'inserimento
CREATE TABLE utenti ( id INT(4) NOT NULL AUTO_INCREMENT, username VARCHAR(65) NOT NULL DEFAULT '', password VARCHAR(65) NOT NULL DEFAULT '', PRIMARY KEY (id,username) ) ; INSERT INTO `utenti` VALUES (1, 'admin', md5('admin')); ```Spero di essere stato utile
-
Mi inchino a te!!!!!
Grazie sei stato grande
ora invece provo a vedere se riesco a fare la registrazione oppure esiste già lo script inoltre io volevo inserire la funzione in cui l'user volesse modificare dei suoi campi(es.email) hai qualche idea.
-
@pizzet said:
Mi inchino a te!!!!!
Grazie sei stato grande
ora invece provo a vedere se riesco a fare la registrazione oppure esiste già lo script inoltre io volevo inserire la funzione in cui l'user volesse modificare dei suoi campi(es.email) hai qualche idea.
Per la registrazione io uso questo script
[PHP]<?php
require 'config.ini.php';
require 'connection.php';$nome=trim($_POST['nome']); $cognome=trim($_POST['cognome']); $codice_fiscale=trim($_POST['codice_fiscale']); $via=trim($_POST['via']); $civico=intval($_POST['civico']); $telefono=trim($_POST['telefono']); $citta=trim($_POST['citta']); $regione=trim($_POST['regione']); $userid=trim($_POST['userid']); $pwd=trim($_POST['pwd']); $query = "INSERT INTO membro (nome,cognome,codice_fiscale,via,civico,telefono,citta,regione) VALUES ('$nome','$cognome','$codice_fiscale','$via',$civico,'$telefono','$citta','$regione')"; $result=mysql_query($query); if (!$result) { die("Impossibile inserire i dati" . mysql_error()); } $query= "INSERT INTO account (codice_fiscale,userid,pwd,,tipoacc,valido) VALUES ('$codice_fiscale','$userid','$pwd','user',0)"; $result=mysql_query($query); if (!$result) { die("Impossibile creare l'account" . mysql_error()); } echo "Dati Inseriti"; mysql_close();
?>[/PHP]
Nel tuo caso dovresti inserire un campo mail. Per quanto riguarda la modifica dei campi non saprei....potresti adottare varie strategie..Quella che mi viene in mente adesso è di cancellare il vecchio record ed inserire quello con i campi aggiornati..Ma per questo punto passo la palla a chi ne sa più di me visto che anche io sono alle prime armi con php e non lo conosco nel dettaglio..magari esiste qualche funzione che ti permette di modificare i valori di un record...
-
lo scrpt così com'era non mi girava.. ho apportato qualche piccola modifica: come faccio a postarlo?? se lo copio e incollo non me lo mostra...
-
ciao Gigi la Trottol e benvenuto nel forumGT.
riprova un CTRL-C CTRL-V dovrebbe funzionare ..poi racchiudi il codice cliccando sul tag php accanto a quello di youtube.
Se vuoi specifica anche casa era che non ti funzionava...
Grazie