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äyttäjä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); ?>
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."; ?>
Öö, missä kohtaa otetaan yhteys tietokantaan mysql_connect(); funktiolla ja missä kohtaa otetaan käyttöön joku esim. "Tunnukset" tietue mysql_select_db(); funktiolla?
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ä.
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')";
Toimii myös:
"INSERT INTO kayttajat (tunnus, salasana) VALUES ('".$ktunnus."', '".md5($ssana)."')";
"SELECT * FROM kayttajat WHERE tunnus ='".$ktunnus."' AND salasana = '".md5($ssana)."'";
Hmm, salasanan tarkistus voi hoitua myös näin
Aihe on jo aika vanha, joten et voi enää vastata siihen.