Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Sql salasanan haku + tarkistus

jussikok [17.11.2003 16:32:05]

#

Olen aikast aloittelija ja kyselisinkin seuraavaa:
Olen tehnyt sivun kirjaudu.htm, joka lähettää tarkista.php:lle käyttäjätunnuksen ja salasanan jotka löytyvät tietokannasta. Miten saan tarkistettua, että annettu tunnus & salasana on oikein ja sen jälkeen uudelleenohjaa esim kirjauduttu.php sivulle? Tämän verran olen saanut valmiiksi.
***kirjaudu.htm***

<html>
<head>
</head>
<body>
<form action="tarkista.php" method="post">
<table width="242" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="98">K&auml;ytt&auml;j&auml;tunnus</td>
    <td width="144"><input type="text" name="ktunnus"  size="5"></td>
  </tr>
  <tr>
    <td>Salasana</td>
    <td><input name="ssana" type="text" size="15"></td>
  </tr>
</table>
<br>
<input type="submit" name="Submit" value="Kirjaudu">
</form>
</body>
</html>

***tarkista.php***

<?php
// Otetaan muuttujat edelliseltä lomakkeelta
$ktunnus = $_POST['ktunnus'];
$ssana = $_POST['ssana'];

echo "<html><body>";

//haetaan kaikki tavarat
$kysely = "SELECT * FROM kayttajat WHERE tunnus = '$ktunnus' AND salasana = '$ssana'";
//suoritetaan kysely
$haku = mysql_query($kysely, $yhteys) or die("Virhe kyselyssä!");

echo "<table border>";
echo "<tr><td><b>tunnus</b></td><td><b>salasana</b></td></tr>";
//käydään kaikki kayttajat läpi, jotka täyttävät kriteerin
for ($i = 0; $i < mysql_num_rows($haku); $i++) {
   //haetaan tunnus ja salasana muuttujiin
   $ktunnus = mysql_result($haku, $i, "tunnus");
   $ssana = mysql_result($haku, $i, "salasana");
   //tulostetaan taulukon rivi
   echo "<tr><td>$ktunnus</td><td>$ssana</td></tr>";
   echo "</table>";
   echo "</body></html>";
   }
mysql_close($yhteys);
?>

enska [18.11.2003 01:42:09]

#

lainaus:

<?
$ktunnus = $_POST['ktunnus'];
$ssana = $_POST['ssana'];
$kysely = "SELECT * FROM kayttajat WHERE tunnus = '$ktunnus' AND salasana = '$ssana'";
$haku = mysql_query($kysely, $yhteys) or die("Virhe kyselyssä!");

mysql_close($yhteys);

if ( mysql_num_rows( $haku ) ) header("Location: kirjauduttu.php" );

echo "Eipä matchannu.";

?>

Teme [19.11.2003 10:52:03]

#

Öö, missä kohtaa otetaan yhteys tietokantaan mysql_connect(); funktiolla ja missä kohtaa otetaan käyttöön joku esim. "Tunnukset" tietue mysql_select_db(); funktiolla?

enska [19.11.2003 12:22:28]

#

lainaus:

Öö, missä kohtaa otetaan yhteys tietokantaan mysql_connect(); funktiolla ja missä kohtaa otetaan käyttöön joku esim. "Tunnukset" tietue mysql_select_db(); funktiolla?

Varmaan ennen kyselyitä? :) Jossei alkuperäinen kysyjä noita osaa tunkea tuonne niin mars mars php.net:iin lukemaan helppejä.

ajv [19.11.2003 17:35:15]

#

Ja jos reilu haluat olla, niin muistaakseni MySql:ssä on PASSWORD-komento, joka kryptaa salasanan, niin ettei sitä pysty muut lukemaan.

INSERT INTO kayttajat (tunnus, salasana) VALUES ('$ktunnus', PASSWORD('$ssana')

Ja haku samanlailla

SELECT * FROM kayttajat WHERE tunnus = '$ktunnus' AND salasana = PASSWORD('$ssana')";

Puistokemisti [26.11.2003 16:45:06]

#

Toimii myös:

"INSERT INTO kayttajat (tunnus, salasana) VALUES ('".$ktunnus."', '".md5($ssana)."')";
"SELECT * FROM kayttajat WHERE tunnus ='".$ktunnus."' AND salasana = '".md5($ssana)."'";

k-mikko [26.11.2003 22:12:04]

#

Hmm, salasanan tarkistus voi hoitua myös näin

<?php
$query = mysql_query("SELECT COUNT(*) FROM kayttajat WHERE tunnus = '$ktunnus' AND salasana = '$ssana'");

$result = mysql_fetch_array($query);

If($result[0] == 1)
{
	print "Se on oikeeeiiinn!!!!";

}
else
{
	print "Kirjautumisessa tapahtui virhe";

}
?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta