login pdo [RISOLTO]
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
login pdo [RISOLTO]
Salve, è corretto usare questo login scritto cosi:
non mi interessa la criptazione della password essendo che ho solo 100 mb e poi questo login lo uso solo io..
ecco il codice:
idee? e vulnerabile ??
[code2=php]<?php
include_once("../config.php");
include_once("inc.php");
?>
<?php
if (isset($_POST['submit']))
{
if(empty($_POST["username"]))
{
$message = "Non inserito utente";
}elseif(empty($_POST["password"]))
{
$message= "Non inserito la password";
}else
{
$username = $_POST["username"];
$password = $_POST["password"];
$sql = "select COUNT(*) from users where username=:username and password=:password LIMIT 1";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
'username' => $username,
'password' => $password));
if($stmt->fetchColumn() == 0)
{
$message = "No records found";
}
else{
$sql = "select * from users where username=:username and password=:password LIMIT 1";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
'username' => $username,
'password' => $password));
session_start();
$rows = $stmt->fetchAll();
foreach($rows as $row)
{
$_SESSION['name']=$row["username"];
$_SESSION['login']=true;
$_SESSION['ruolo'] = $row["ruolo"];
}
header("location: index.php");
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
</head>
<style>
.tableheader {
background-color: #95BEE6;
color:white;
font-weight:bold;
}
.tablerow {
background-color: #A7D6F1;
color:white;
}
.message {
color: #FF0000;
font-weight: bold;
text-align: center;
width: 100%;
}</style>
<body>
<form name="frmUser" method="post" action="login.php">
<div class="message"><?php if(isset($message)) { echo $message; } ?></div>
<table border="0" cellpadding="10" cellspacing="1" width="500" align="center">
<tr class="tableheader">
<td align="center" colspan="2">Login</td>
</tr>
<tr class="tablerow">
<td align="right">Username</td>
<td><input type="text" name="username"></td>
</tr>
<tr class="tablerow">
<td align="right">Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr class="tableheader">
<td align="center" colspan="2">
<input type="submit" name="submit" value="Submit"></td>
</tr>
</table>
</form>[/code2]
non mi interessa la criptazione della password essendo che ho solo 100 mb e poi questo login lo uso solo io..
ecco il codice:
idee? e vulnerabile ??
[code2=php]<?php
include_once("../config.php");
include_once("inc.php");
?>
<?php
if (isset($_POST['submit']))
{
if(empty($_POST["username"]))
{
$message = "Non inserito utente";
}elseif(empty($_POST["password"]))
{
$message= "Non inserito la password";
}else
{
$username = $_POST["username"];
$password = $_POST["password"];
$sql = "select COUNT(*) from users where username=:username and password=:password LIMIT 1";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
'username' => $username,
'password' => $password));
if($stmt->fetchColumn() == 0)
{
$message = "No records found";
}
else{
$sql = "select * from users where username=:username and password=:password LIMIT 1";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
'username' => $username,
'password' => $password));
session_start();
$rows = $stmt->fetchAll();
foreach($rows as $row)
{
$_SESSION['name']=$row["username"];
$_SESSION['login']=true;
$_SESSION['ruolo'] = $row["ruolo"];
}
header("location: index.php");
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
</head>
<style>
.tableheader {
background-color: #95BEE6;
color:white;
font-weight:bold;
}
.tablerow {
background-color: #A7D6F1;
color:white;
}
.message {
color: #FF0000;
font-weight: bold;
text-align: center;
width: 100%;
}</style>
<body>
<form name="frmUser" method="post" action="login.php">
<div class="message"><?php if(isset($message)) { echo $message; } ?></div>
<table border="0" cellpadding="10" cellspacing="1" width="500" align="center">
<tr class="tableheader">
<td align="center" colspan="2">Login</td>
</tr>
<tr class="tablerow">
<td align="right">Username</td>
<td><input type="text" name="username"></td>
</tr>
<tr class="tablerow">
<td align="right">Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr class="tableheader">
<td align="center" colspan="2">
<input type="submit" name="submit" value="Submit"></td>
</tr>
</table>
</form>[/code2]
Ultima modifica di treled il lunedì 23 giugno 2014, 22:15, modificato 1 volta in totale.
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: login pdo
ciao ho ricorretto la parte del for ed e diventato:
Codice: Seleziona tutto
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$_SESSION['name']=$row["username"];
$_SESSION['login']=true;
$_SESSION['ruolo'] = $row["ruolo"];Re: login pdo
Perché fai due volte la query?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: login pdo
perché se no non recupero i dati dal db in questa parte:Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4603191#p4603191][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Perché fai due volte la query?
Codice: Seleziona tutto
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$_SESSION['name']=$row["username"];
$_SESSION['login']=true;
$_SESSION['ruolo'] = $row["ruolo"];
Re: login pdo
Scusa ma non fai la stessa query cambiando solo le colonne lette?
Puoi recuperare i dati con la prima
Puoi recuperare i dati con la prima
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: login pdo
no perché la prima ha:
$sql = "select COUNT(*)
e che mi serve per vedere se c'è o non c'è il dato..
tu come faresti perché e delle ore , giorni, mesi , che cerco una cosa funzionante da prendere spunto.. anche se ho visto i manuali su internet e poi tutti scrivono codice errato.
tu come fai?
grazie mille e buona serata.
$sql = "select COUNT(*)
e che mi serve per vedere se c'è o non c'è il dato..
tu come faresti perché e delle ore , giorni, mesi , che cerco una cosa funzionante da prendere spunto.. anche se ho visto i manuali su internet e poi tutti scrivono codice errato.
tu come fai?
grazie mille e buona serata.
Re: login pdo
Perché il login non puoi farlo senza count?
Se tu fai solo la seconda query e il fetch ti dà un array non vuoto, non sei già certo che il login sia valido?
Se tu fai solo la seconda query e il fetch ti dà un array non vuoto, non sei già certo che il login sia valido?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: login pdo
dimmi che era cosi:
il il rowCount();
perché facendo le prove funziona..
mi dici se ora e giusto?.
grazie mille per il supporto..
Codice: Seleziona tutto
<?php
if(isset($_POST['submit']))
{
if(empty($_POST["username"]))
{
$message = "Non inserito utente";
}elseif(empty($_POST["password"]))
{
$message= "Non inserito la password";
}else
{
$username = $_POST["username"];
$password = $_POST["password"];
$sql = "select * from users where username=:username and password=:password LIMIT 1";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
'username' => $username,
'password' => $password));
$num = $stmt->rowCount();
if($num>0){
session_start();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$_SESSION['name']=$row["username"];
$_SESSION['login']=true;
$_SESSION['ruolo'] = $row["ruolo"];
header("location: index.php");
}
else
{
$message = "No records found";
}
}
}
?>perché facendo le prove funziona..
mi dici se ora e giusto?.
grazie mille per il supporto..
Re: login pdo
In linea di massima potrebbe esserlo ma il funzionamento di rowCount non è garantito per le query SELECT.
Con MySQL funziona, per cui potresti anche lasciarlo così.
Diversamente fai il fetch indistintamente e poi controlli il suo risultato.
Con MySQL funziona, per cui potresti anche lasciarlo così.
Diversamente fai il fetch indistintamente e poi controlli il suo risultato.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: login pdo
ok, si uso mysql perché ho deciso di usare il dominio dove ho 2gb di mysql e lascio perdere gli host economici...
che voi dire qui:
Diversamente fai il fetch indistintamente e poi controlli il suo risultato.
non riesco a capire cosa vuol dire : indistintamente .
Scusa, ma ho problemi di linguaggio perché ho cominciato tardi a parlare (11 anni)..
se voi mi poi spiegarmi con un esempio.?
grazie mille e buona giornata.
che voi dire qui:
Diversamente fai il fetch indistintamente e poi controlli il suo risultato.
non riesco a capire cosa vuol dire : indistintamente .
Scusa, ma ho problemi di linguaggio perché ho cominciato tardi a parlare (11 anni)..
se voi mi poi spiegarmi con un esempio.?
grazie mille e buona giornata.
Re: login pdo
Indisitintamente, nel senso di "senza fare controlli", cioé eviti e fai direttamente
Codice: Seleziona tutto
if($num>0)Codice: Seleziona tutto
$row = $stmt->fetch(PDO::FETCH_ASSOC);Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: login pdo
ok., ma mi serviva per far stampare per l'informazione all'utente :"non ci sono dati".
quindi ora va bene?..
grazie mille.
quindi ora va bene?..
grazie mille.
Re: login pdo
Perché non lo puoi fare comunque controllato il risultato della fetch()?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: login pdo
dicevi cosi?
ho cancellato tutto il sito e ora sto imparando pdo con la progettazione di una'applicazione più facile e utile.
vedi e dimmi se va bene..
grazie mille.
Codice: Seleziona tutto
<?php
session_start();
if(isset($_POST['username'], $_POST['password'])){
require 'core/connect.php';
$query = dbConnect()->prepare("SELECT username, password FROM users WHERE username=:username AND password=:password");
$query->bindParam(':username', $_POST['username']);
$query->bindParam(':password', $_POST['password']);
$query->execute();
if($row = $query->fetch()){
$_SESSION['username'] = $row['username'];
header("Location: index.php");
}else
{
echo '404';
}
}
?><h1>Login</h1>
<form method="POST">
<input type="text" name="username"><br />
<input type="password" name="password"><br />
<input type="submit">
</form>vedi e dimmi se va bene..
grazie mille.
Re: login pdo
Sorvolando sulla mancanza di gran parte dell'html indispensabile per generare una pagina corretta sì.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: login pdo
scusa, ma non capisco ...la frase..Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4604828#p4604828][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Sorvolando sulla mancanza di gran parte dell'html indispensabile per generare una pagina corretta sì.
dicevo il fetch va bene cosi o no ?
poi l'html lo sistemo appena faccio un login a modo.
grazie mille.
Re: login pdo
Si va bene
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
-
treled
- Entusiasta Emergente

- Messaggi: 1331
- Iscrizione: lunedì 26 aprile 2010, 17:36
- Desktop: gnome
- Distribuzione: ubuntu 23.04/22.04
- Sesso: Maschile
- Località: Massa(MS)
Re: login pdo
grazie mille.
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti
