Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
redenergy
HV veteran

liitunud: 22.03.2004
|
14.04.2009 15:59:29
Log in kasutaja kontroll |
|
|
Tervist jälle. Aretan väikest login scripti aga vajaks abi kasutaja nime ja parooli kontrollimisega andmebaasist.
Üleval kontrollib kas on andmed sisestatud, see töötab kuni üritasin lisada kontrolli kas kasutaja ja parool klapivad andmebaasis olevatega.
Hetkel tuleb kohe lehele ette, et parool/nimi sisestamata etc.
www.redenergy.org/test/sisene2.php
php:
|
<?php include 'sql.php'; $tulemus=true; $msg=''; if(! isset($_POST['nimi']) || strlen($_POST['nimi']) < 2){ $msg.="<B>Nimi</B> sisestamata.<BR>"; $tulemus=false; } if(! isset($_POST['parool']) || strlen($_POST['parool']) < 4){ $msg.="<B>Parool</B> sisestamata.<BR>"; $tulemus=false; } if(isset($_POST['submit'])) { $nimi=$_POST['nimi']; $parool=$_POST['parool']; //MySQL injection $result = mysql_query("SELECT * FROM kasutajad WHERE nimi = '$nimi' AND parool = '$parool'"); if($nimi==$row['nimi']) { $msg.="<B>Nimi</B> ei klapi andmebaasiga.<BR>"; $tulemus=false; } if($row['parool']==$parool) { $msg.="<B>Parool</B> ei klapi andmebaasiga.<BR>"; $tulemus=false; } if($tulemus){ } else { } ?>
|
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
Valdars
HV veteran

liitunud: 22.02.2003
|
14.04.2009 16:09:42
|
|
|
Areta mingi korralik kontroll vaatamaks, kas kasutaja on üldse proovinud sisse logida.
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
44 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
14.04.2009 16:27:21
|
|
|
Just, see on plaanis teha ka kindlasti. Aga enne kui hakkan teisi asju sinna lisama tahaks errori kuvamise valmis teha.
Kui oskaksin seda kontrolli teha siis ei pöörduks WWW teemasse
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
Valdars
HV veteran

liitunud: 22.02.2003
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
44 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
14.04.2009 16:39:49
|
|
|
HTTP Auth miinuseks on võimetus seda ümber kujundada ja andmebaasiga kontrollimise poolest ei erine see mitte millegi poolest tavalisega.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
14.04.2009 17:20:23
|
|
|
Ehkist peaks ülemise kontrolli ära jätma üldse ja ainult sql tabelist kontrollima?
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
14.04.2009 17:33:33
|
|
|
tsitaat: |
Hetkel tuleb kohe lehele ette, et parool/nimi sisestamata etc |
if(isset($_POST['nimi']) AND strlen($_POST['nimi']) < 2){ |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
14.04.2009 18:09:03
|
|
|
See ei funkand.
Ma ei saa aru miks ta nende:
php:
|
$nimi=$_POST['nimi']; $parool=$_POST['parool'];
|
kohta hakkab loopima:
Notice: Undefined index: nimi in /home/redenerg/public_html/test/sisene2.php on line 27
Notice: Undefined index: parool in /home/redenerg/public_html/test/sisene2.php on line 28
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
DoS
HV veteran

liitunud: 19.08.2002
|
|
Kommentaarid: 50 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
47 |
|
tagasi üles |
|
 |
e-Thug
HV Guru

liitunud: 26.02.2005
|
14.04.2009 18:55:06
|
|
|
if(isset($_POST['submit'])) { |
Nihuta see reale nr 8 ja vaata siis edasi.
|
|
Kommentaarid: 230 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
205 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
14.04.2009 19:55:22
|
|
|
Kuidas ei tööta? Täiesti toimiv. Kui ei ole saadetud midagi siis ei tee midagi, kui saadad andmed, siis läheb edasi.
<?php
include 'sql.php';
ini_set('display_errors', '1');
error_reporting(E_ALL);
$tulemus=true;
$msg='';
if(isset($_POST['nimi']) AND strlen($_POST['nimi']) < 2){
$msg.="<B>Nimi</B> sisestamata.<BR>";
$tulemus=false;
}
if(isset($_POST['parool']) AND strlen($_POST['parool']) < 4){
$msg.="<B>Parool</B> sisestamata.<BR>";
$tulemus=false;
}
if(isset($_POST['submit'])) {
$nimi=$_POST['nimi'];
$parool=$_POST['parool'];
//MySQL injection
$nimi = stripslashes($nimi);
$parool = stripslashes($parool);
$nimi = mysql_real_escape_string($nimi);
$parool = mysql_real_escape_string($parool);
$result = mysql_query("SELECT * FROM kasutajad WHERE nimi = '$nimi' AND parool = '$parool'");
$row = mysql_fetch_array($result);
if($nimi==$row['nimi']) {
$msg.="<B>Nimi</B> ei klapi andmebaasiga.<BR>";
$tulemus=false;
}
if($row['parool']==$parool) {
$msg.="<B>Parool</B> ei klapi andmebaasiga.<BR>";
$tulemus=false;
}
if($tulemus){
echo 'Sisse logitud!'; }
} else {
echo $msg;
}
?> |
************************************************************
siin on sul veidi vales kohas see if lõpetatud. Hetkel on ju nii, et kui submit on, siis võrdleb neid MySL veateateid ja else käib selle submit if kohta, kui ei ole submit, siis kuvab vea. Peaksid selle viimase punase sulu viima päris lõppu. Või sa soovidki sedasi?
if(isset($_POST['submit'])) {
// siin su MySQL
if($nimi==$row['nimi']) {
$msg.="<B>Nimi</B> ei klapi andmebaasiga.<BR>";
$tulemus=false;
}
if($row['parool']==$parool) {
$msg.="<B>Parool</B> ei klapi andmebaasiga.<BR>";
$tulemus=false;
}
if($tulemus){
echo 'Sisse logitud!'; }
}
else {
echo $msg;
}
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
e-Thug
HV Guru

liitunud: 26.02.2005
|
14.04.2009 19:56:41
|
|
|
andrusny
AND strlen($_POST['nimi']) < 2) |
miks sa arvad, et ta ühetähelist logini proovis. See peaks pigem > 2 siis olema. Redenergy kontekstis sobiks < 2, sinu omas aga mitte.
|
|
Kommentaarid: 230 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
205 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
14.04.2009 20:03:05
|
|
|
Vahet pole, see juba muu teema. Ta ei saanud ju seda if lauset käima, kuna oli ennem !isset($_POST['nimi']) mis tähendab, et kui pole postitust, tee seda. Seda, kuidas ta oma nime pikkust kontrollib on juba tema otsustada. Hetkel on, et nimi ei tohi olla lühem kui 2 tähemärki.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
e-Thug
HV Guru

liitunud: 26.02.2005
|
14.04.2009 20:09:54
|
|
|
andrusny kirjutas: |
Vahet pole, see juba muu teema. Ta ei saanud ju seda if lauset käima, kuna oli ennem !isset($_POST['nimi']) mis tähendab, et kui pole postitust, tee seda. Seda, kuidas ta oma nime pikkust kontrollib on juba tema otsustada. Hetkel on, et nimi ei tohi olla lühem kui 2 tähemärki. |
Sinu koodist loen mina välja, et kui on postitus ja nimi on lühem kui 2..
Kuna redenergy üsna tõenäoliselt kasutas pikemat, siis if ei matchi.
Kirjutad üht, mõtled teist
EDIT: ah kurat, ma peaks välja magama.
|
|
Kommentaarid: 230 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
205 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
14.04.2009 20:12:43
|
|
|
Aga ta ei peagi ju toimima, kui on pikem, see on ju veateate if
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
e-Thug
HV Guru

liitunud: 26.02.2005
|
14.04.2009 20:15:35
|
|
|
andrusny kirjutas: |
Aga ta ei peagi ju toimima, kui on pikem, see on ju veateate if |
Jep, sellest mu eelmise posti edit. Tööpäev seljataga, kuul on kergelt koos juba.
|
|
Kommentaarid: 230 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
205 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
14.04.2009 21:39:19
|
|
|
Väga sheff, hetkel töötab errori süsteem nagu plaanisin.
Aga järgmine probleem on see, et isegi kui sisestan suvalised andmed näitab ta sisse logitud.
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
14.04.2009 22:11:38
|
|
|
Kas andmebaasi sisse oled loginud? Selles koodis küll ei ole sisse logimist (kui mitte sql.php failis)
Pane oma andmed sisse ja töötab, kui sul andmebaas ja tabel olemas on.
<?php
//include 'sql.php';
$mysql_host = "localhost";
$mysql_database = "dumcoff";
$mysql_user = "root";
$mysql_password = "";
ini_set('display_errors', '1');
error_reporting(E_ALL);
$tulemus=true;
$msg='';
if(isset($_POST['nimi']) AND strlen($_POST['nimi']) < 2){
$msg.="<B>Nimi</B> sisestamata.<BR>";
$tulemus=false;
}
if(isset($_POST['parool']) AND strlen($_POST['parool']) < 4){
$msg.="<B>Parool</B> sisestamata.<BR>";
$tulemus=false;
}
if(isset($_POST['submit'])) {
$nimi=$_POST['nimi'];
$parool=$_POST['parool'];
//MySQL injection
$nimi = stripslashes($nimi);
$parool = stripslashes($parool);
$connect=mysql_connect($mysql_host, $mysql_user, $mysql_password);
mysql_select_db ($mysql_database , $connect);
$nimi = mysql_real_escape_string($nimi);
$parool = mysql_real_escape_string($parool);
//$nimi="Andrus"; $parool="Kroku";
$result = mysql_query("SELECT * FROM kasutajad WHERE nimi='$nimi' AND parool='$parool'");
// AND parool = '$parool'
$row = mysql_fetch_array($result);
//mysql_fetch_assoc
echo "Saabusid nimi $nimi ja parool $parool <br> veateade on $msg<br><br> $row[nimi]";
if($nimi==$row['nimi']) {
$msg.="<B>Nimi</B> ei klapi andmebaasiga.<BR>";
$tulemus=false;
}
if($row['parool']==$parool) {
$msg.="<B>Parool</B> ei klapi andmebaasiga.<BR>";
$tulemus=false;
}
if($tulemus){
echo 'Sisse logitud!'; }
else {
echo $msg;
}}
?> |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
14.04.2009 22:20:22
|
|
|
Oma jõududega sain nii:
php:
|
<?php include 'sql.php'; $tulemus=true; $msg=''; if(isset($_POST['submit'])) { $nimi=$_POST['nimi']; $parool= md5($_POST['parool']); if(isset($_POST['nimi']) AND strlen($_POST['nimi']) < 2){ $msg.="<B>Nimi</B> sisestamata.<BR>"; $tulemus=false; } if(isset($_POST['parool']) AND strlen($_POST['parool']) < 4){ $msg.="<B>Parool</B> sisestamata.<BR>"; $tulemus=false; } //MySQL injection $sql = ("SELECT * FROM kasutajad WHERE nimi='$nimi' AND parool='$parool'"); $msg.="<B>Nimi ja parool</B> ei klapi andmebaasiga.<BR>"; $tulemus=false; } if($tulemus){ else { } } ?>
|
See töötas hästi kuni lisasin md5 kodeeringu paroolile. Liitu.php fail kodeerib ka md5'ks parooli.
Niisiis ei tea mis võib valesti olla.
sql.php juba ühendab andmebaasiga ära
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
14.04.2009 22:31:11
|
|
|
Kui tahad,et kontrollitaks, kas nimi on sama mis andmebaasis, siis oleks vaja ju selliselt. Vähemasti su uues koodis kontrollitakse seda.
Siiani arvasin, et tahad vaadata, et baasis sarnast nime poleks.
if($nimi!=$row['nimi']) {
// ütled et nimi ei sobi andmebaasi omaga
} |
Sul peab parool baasis ka md5 kodeeringuga olema salvestatud. Kui pole pole asjal ju mõtet. Katsetamiseks võid võtta parooli baasist ja lasta läbi md5 e
(see esimene peaks juba baasist tulema md5 na)
if(md5($row['parool'])==md5($parool)) { |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
14.04.2009 22:59:00
|
|
|
Serveris on testiks mölemad.
nimi: loll parool: koll
nimi: loll parool: 2da5e8e81e4081571c85
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
14.04.2009 23:04:02
|
|
|
Päringus peab ka md5 sees olema, kui baasis on md5 parool.
$parool = md5($parool);
$result = mysql_query("SELECT * FROM kasutajad WHERE nimi='$nimi' AND parool='$parool'"); |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
16.04.2009 01:45:40
|
|
|
kummaline on see, et liitu.php genereerib paroolist "test"
test 098f6bcd4621d373cade
aga sisene.php
test 098f6bcd4621d373cade4e832627b4f6
Sain veale jälile. Parooli varchar oli 20 pandud
Tundub, et script töötab, vaja veel kuidagi sessioonid teha.
--------------------------------------------------
Nii nüüd on uus probleem millele lehendust ei leia
Kõik muidu suht töötab aga annab
Notice: Undefined index: nimi in /home/redenerg/public_html/test/login.php on line 33
Notice: Undefined index: nimi in /home/redenerg/public_html/test/login.php on line 35
errori kui registreerimis form lahti on. Ma ei saa aru kuidas saab nimi olla undefined.
http://www.redenergy.org/test/
ja kui sisse logida (nimi:test psw: test) annab lehe alla teate:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
refresh muljudes on jälle köik korras.
login.php
php:
|
<?php include 'sql.php'; $tulemus=true; $msg=''; if(isset($_POST['submit'])) { if(isset($_POST['nimi']) AND strlen($_POST['nimi']) < 2){ $msg.="<p2><B>Nimi</B> sisestamata.<BR></p2>"; $tulemus=false; } if(isset($_POST['parool']) AND strlen($_POST['parool']) < 4){ $msg.="<p2><B>Parool</B> sisestamata.<BR></p2>"; $tulemus=false; } $nimi=$_POST['nimi']; $parool= md5($_POST['parool']); $sql = ("SELECT * FROM kasutajad WHERE nimi='$nimi' AND parool='$parool'"); $msg.="<p2><B>Nimi ja parool</B> ei klapi.<BR></p2>"; $tulemus=false; } if($tulemus){ echo "<p3>Olete edukalt sisse logitud</br></p3>"; } else { } } if ( $_SESSION['nimi'] ): echo "Tere ". $_SESSION['nimi']; echo "</br>See koht siin on kasutajatele"; endif; if ( ! $_SESSION['nimi'] ): ?> <form method='post' action=''> <table align='center'> <tr> <td class='pais' colspan='2' align='center'><p>Logi sisse</p></td> </tr> <tr> <td class='kast'><p>Nimi: </p></td> <td class='kast'><input type='text' name='nimi' class='input' /></td> </tr> <tr> <td class='kast'><p>Parool: </p></td> <td class='kast'><input type='password' name='parool' class='input' /></td> </tr> <td colspan='2' align='center' class='kast'> <input type='submit' name='submit' value='Sisene' class='input' /></td> </tr> </table> </form> <?php endif; ?>
|
--------------------------------------
nii tuleb kolmas edit
Aeg on öösse jõudnud aga sain löpuks valmis selle mida tahtsin.
Enam erroreid ei loobi ja süsteem töötab.
Veaks oli arvatavasti see, et sessiooni ei tohtinud teha olemasoleva nimega.
Panen üles siis töötava koodi, et teistele näha oleks kuidas õige oleks kui peaks sama probleem olema.
Tekstiosa on testimiseks.
php:
|
<?php include 'sql.php'; $tulemus=true; $msg=''; if(isset($_POST['submit'])) { if(isset($_POST['nimi']) AND strlen($_POST['nimi']) < 2){ $msg.="<p2><B>Nimi</B> sisestamata.<BR></p2>"; $tulemus=false; } if(isset($_POST['parool']) AND strlen($_POST['parool']) < 4){ $msg.="<p2><B>Parool</B> sisestamata.<BR></p2>"; $tulemus=false; } $nimi=$_POST['nimi']; $parool= md5($_POST['parool']); $sql = ("SELECT * FROM kasutajad WHERE nimi='$nimi' AND parool='$parool'"); $msg.="<p2><B>Nimi ja parool</B> ei klapi.<BR></p2>"; $tulemus=false; } if($tulemus){ $query = ("SELECT * FROM kasutajad WHERE nimi='$_POST[nimi]'"); $_SESSION['sees']['id'] = $row['id']; $_SESSION['sees']['nimi'] = $_POST['nimi']; echo "<p3>Olete edukalt sisse logitud</br></p3>"; echo "Tere : ". $_SESSION["sees"]['nimi']; echo "</br>See koht siin on ainult kasutajatele"; } else { } } ?> <?php if(isset($_SESSION['sees']['id'])) { echo "Hei, ". $_SESSION['sees']['nimi']; } else { ?> <form method='post' action=''> <table align='center'> <tr> <td class='pais' colspan='2' align='center'><p>Logi sisse</p></td> </tr> <tr> <td class='kast'><p>Nimi: </p></td> <td class='kast'><input type='text' name='nimi' class='input' /></td> </tr> <tr> <td class='kast'><p>Parool: </p></td> <td class='kast'><input type='password' name='parool' class='input' /></td> </tr> <td colspan='2' align='center' class='kast'> <input type='submit' name='submit' value='Sisene' class='input' /></td> </tr> </table> </form> <?php } ?>
|
Suured tänud muidugi aitajatele eelmiste vigade suhtes
See asi hakkab juba selgemaks saama
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
sosssepp
HV veteran

liitunud: 12.05.2003
|
16.04.2009 09:09:48
|
|
|
redenergy kirjutas: |
nii tuleb kolmas edit
Aeg on öösse jõudnud aga sain löpuks valmis selle mida tahtsin.
Enam erroreid ei loobi ja süsteem töötab.
Veaks oli arvatavasti see, et sessiooni ei tohtinud teha olemasoleva nimega.
Panen üles siis töötava koodi, et teistele näha oleks kuidas õige oleks kui peaks sama probleem olema.
Tekstiosa on testimiseks.
php:
|
<?php include 'sql.php'; $tulemus=true; $msg=''; if(isset($_POST['submit'])) { if(isset($_POST['nimi']) AND strlen($_POST['nimi']) < 2){ $msg.="<p2><B>Nimi</B> sisestamata.<BR></p2>"; $tulemus=false; } if(isset($_POST['parool']) AND strlen($_POST['parool']) < 4){ $msg.="<p2><B>Parool</B> sisestamata.<BR></p2>"; $tulemus=false; } $nimi=$_POST['nimi']; $parool= md5($_POST['parool']); $sql = ("SELECT * FROM kasutajad WHERE nimi='$nimi' AND parool='$parool'"); $msg.="<p2><B>Nimi ja parool</B> ei klapi.<BR></p2>"; $tulemus=false; } if($tulemus){ $query = ("SELECT * FROM kasutajad WHERE nimi='$_POST[nimi]'"); $_SESSION['sees']['id'] = $row['id']; $_SESSION['sees']['nimi'] = $_POST['nimi']; echo "<p3>Olete edukalt sisse logitud</br></p3>"; echo "Tere : ". $_SESSION["sees"]['nimi']; echo "</br>See koht siin on ainult kasutajatele"; } else { } } ?> <?php if(isset($_SESSION['sees']['id'])) { echo "Hei, ". $_SESSION['sees']['nimi']; } else { ?> <form method='post' action=''> <table align='center'> <tr> <td class='pais' colspan='2' align='center'><p>Logi sisse</p></td> </tr> <tr> <td class='kast'><p>Nimi: </p></td> <td class='kast'><input type='text' name='nimi' class='input' /></td> </tr> <tr> <td class='kast'><p>Parool: </p></td> <td class='kast'><input type='password' name='parool' class='input' /></td> </tr> <td colspan='2' align='center' class='kast'> <input type='submit' name='submit' value='Sisene' class='input' /></td> </tr> </table> </form> <?php } ?>
|
Suured tänud muidugi aitajatele eelmiste vigade suhtes
See asi hakkab juba selgemaks saama |
Teises baasipäringus paned otse POSTiga saadud muutujad päringusse?
Üldse miks pärid sa baasist sama asja kaks korda?
Päriks ühe korra ning ainult seda, mida sul vaja.
Tegin omapoolse kiire paranduse, tulemus oleks selline:
php:
|
<?php include 'sql.php'; $tulemus=true; $msg=''; if(isset($_POST['submit'])){ if(isset($_POST['nimi']) AND strlen($_POST['nimi']) < 2){ $msg.="<p2><B>Nimi</B> sisestamata.<BR></p2>"; $tulemus=false; } if(isset($_POST['parool']) AND strlen($_POST['parool']) < 4){ $msg.="<p2><B>Parool</B> sisestamata.<BR></p2>"; $tulemus=false; } if($tulemus){ $nimi=$_POST['nimi']; $parool= md5($_POST['parool']); $sql = ("SELECT id FROM kasutajad WHERE nimi='$nimi' AND parool='$parool'"); $msg.="<p2><B>Nimi ja parool</B> ei klapi.<BR></p2>"; $tulemus=false; }else{ $_SESSION['sees']['id'] = $row['id']; $_SESSION['sees']['nimi'] = $_POST['nimi']; echo "<p3>Olete edukalt sisse logitud</br></p3>"; echo "Tere : ". $_SESSION["sees"]['nimi']; echo "</br>See koht siin on ainult kasutajatele"; } }else{ } } ?> <?php if(isset($_SESSION['sees']['id'])) { echo "Hei, ". $_SESSION['sees']['nimi']; } else { ?> <form method='post' action=''> <table align='center'> <tr> <td class='pais' colspan='2' align='center'><p>Logi sisse</p></td> </tr> <tr> <td class='kast'><p>Nimi: </p></td> <td class='kast'><input type='text' name='nimi' class='input' /></td> </tr> <tr> <td class='kast'><p>Parool: </p></td> <td class='kast'><input type='password' name='parool' class='input' /></td> </tr> <td colspan='2' align='center' class='kast'> <input type='submit' name='submit' value='Sisene' class='input' /></td> </tr> </table> </form> <?php } ?>
|
|
|
Kommentaarid: 87 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
75 |
|
tagasi üles |
|
 |
|