Avatar billede olsson15 Nybegynder
22. september 2004 - 23:14 Der er 16 kommentarer og
1 løsning

Login system

Hej
Jge er ved og lave et login ind system til en ny hjemmeside, jeg er ikke så god til php/mysql men prøver dog alligevel..

Jeg har lavet login systemmet, og det virker også bare ikke efter planen, hvis man indstaster et forkert brugernavn eller adgangskode, laver den ny side hvor der står forkert brugernavn eller adgangskode..

Jeg ønsker at den bliver på samme side og bare skriver fejlen med rødt, over det formfelt som er indtastet forkert..

Er det ikke muligt ?

min kode ser sådan her ud

Login.php :
<?
require "includes.php";

?>


<html>
<head>
<title><?php echo BROWSER_NAVN; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../Style/Style.css" rel="stylesheet" type="text/css">

</head>

<body>

<table width="751" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td colspan="2">
      <?php include "includes/header.php"; ?>
    </td>
  </tr>
  <tr>
    <td height="10" colspan="2"><img src="hp_billeder/mellemrum.gif" width="1" height="1"></td>
  </tr>
  <tr>
    <td width="159" height="383" valign="top">
      <?php include "includes/menu.php"; ?>
      <?php include "includes/nyheder.php"; ?>
    </td>
    <td width="592" align="right" valign="top"> <table class="body" width="572" border="0" cellpadding="0" cellspacing="0" background="hp_billeder/graymidbottom.gif">
        <tr>
          <td width="3%"><img src="hp_billeder/mid_corner_left.gif" width="21" height="19"></td>
          <td width="94%" class="menuoverskrift" background="hp_billeder/mid_streng.gif">
            <div align="center" >Medlems login !</div></td>
          <td width="3%"><div align="right"><img src="hp_billeder/mid_corner_right.gif" width="21" height="19"></div></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><div align="center"><br>
              Log ind p&aring;: <br>
              <img src="hp_billeder/mitsu_logo_graa.gif" width="58" height="49"><font class="overskrift">&nbsp;<?php echo NAVN; ?>&nbsp;</font><img src="hp_billeder/mitsu_logo_graa.gif" width="58" height="49"></div></td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td height="210">&nbsp;</td>
          <td align="left" valign="top"> <table class="body" width="86%" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr>
                <td>&nbsp;</td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td height="76" colspan="2">Hvis du allerede har oprettet en profil,
                  skal du blot indtaste dit brugernavn samt adgangskode og trykke
                  p&aring; login. <br> <br>
                  Hvis du endnu ikke har oprettet dig som bruger, kan du gøre
                  det <a href="ny.php">her</a>.</td>
              </tr>
            </table>
            <form action="tjek_user.php" method="get">
              <table class="body" width="53%" border="0" align="center" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="34%" height="28">Brugernavn:</td>
                  <td width="66%" height="25"> <input type="text" size="20" name="username" maxlength="20" class="input">
                  </td>
                </tr>
                <tr>
                  <td>Adgangskode:</td>
                  <td height="25"> <input type="password" size="20" name="passcode" maxlength="15" class="input">
                  </td>
                </tr>
                <tr>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                </tr>
                <tr align="center">
                  <td colspan="2"> <input type="submit" name="submit" value="Login" class="button">
                  </td>
                </tr>
              </table>
            </form></td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td height="21">&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td height="21">&nbsp;</td>
          <td><div align="center">Har du glemt din adgangskode eller brugernavn?
              Tryk <a href="glemt.php">her</a>.</div></td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td height="21"><img src="hp_billeder/grayleftbottom.gif" width="21" height="21"></td>
          <td>&nbsp;</td>
          <td><div align="right"><img src="hp_billeder/grayrightbottom.gif" width="20" height="21"></div></td>
        </tr>
      </table>
      <div align="center"></div></td>
  </tr>
  <tr>
    <td height="15" colspan="2">&nbsp;</td>
  </tr>
  <tr>
    <td height="15" colspan="2"><div align="center">
        <?php include "includes/footer.php"; ?>
      </div></td>
  </tr>
</table>
</body>
</html>

Tjek_user.php
<? 
  addslashes($username);
  addslashes($passcode);
  $new_password = md5($passcode);
  require("db_ind.inc");
  $passquery = mysql_query("SELECT password, id FROM brugere WHERE username = '$username'");
  if (!mysql_num_rows($passquery))
  {
    echo "<font color=\"red\">Ugyldigt brugernavn!<p></font>";
    echo "<br><br><a href=\"java script: history.back();\">Tryk her for at komme tilbage og forsøge igen!</a>";
    exit();
  }
  else
  {
  if($row = mysql_fetch_array($passquery))
    {
      $dbpassword = $row["password"];
      $profilid = $row["id"];
    }
  if($dbpassword == $new_password)
  {
    $login = (true);
  }
  if ($dbpassword != $new_password)
  {
    echo "<font color=\"red\">Forkert brugernavn eller adgangskode!!!<br><br></font>";
    echo "Hvis du ikke kan huske din adgangskode<br>kan du få den tilsendt, ved at trykke <a href=\"glemt.php\">her</a>.<br>";
    echo "<br><br><a href=\"java script: history.back();\">Tryk her for at komme tilbage og forsøge igen!</a>";
    exit();
  }
  setcookie("coo_username","$username",time()+3600);
  setcookie("coo_password","$new_password",time()+3600);
  setcookie("coo_profilid","$profilid",time()+3600);
  $today = date("d-m-Y");
  require("db_ind.inc");
  mysql_query("UPDATE brugere set lastlogin = '$today' WHERE username = '$coo_username'");
  header("Location: muligheder.php");
  }
?>
Avatar billede blackscorpion Nybegynder
22. september 2004 - 23:19 #1
Så vidt jeg kan se så fejler Tjek_user.php intet.

hvad er det den gør som du ikke vil??
Avatar billede olsson15 Nybegynder
22. september 2004 - 23:22 #2
Den fejler ikke nogen, det er måden den skriver fejl på..
Hvis du indtaster et forkert brugernavn eller kode, skriver den i et helt tomt vindue "Forkert brugernavn eller adgangskode!!!"

Kan man ikke på eller anden måde få den til og blive på login siden, og skrive fejlen over det felt der er indtastet med forkert, så man bare kan prøve igen uden og skulle trykke tilbage
Avatar billede olsson15 Nybegynder
22. september 2004 - 23:23 #3
Nogen andet er det ikke en fejl at database forbindelsen ikke bliver lukket på noget tidspunkt ?
Avatar billede olsson15 Nybegynder
22. september 2004 - 23:24 #4
det jeg ønsker er at det blive på samme måde som denne side, prøv og indtast et forkert brugernavn eller pass
http://www.vwaudi-club.no/?s=loginPage&PHPSESSID=dd8c7bbad5039ddad1415c58bf1b1b4e
Avatar billede blackscorpion Nybegynder
22. september 2004 - 23:26 #5
mig der sidder og sover, sorry.

Hvis du vil have den til at finde ud af præcist, hvad det er for et felt, der er fejl på, så skal du smide det igennem en if/else løkke, som så tjekker det.

noget ala.

$fejl = "";
if(!$brugernavn) {
$fejl .= "Du skal indtaste et brugernavn, for at kunne logge ind!<br>\n";
}
elseif(!$password) {
$fejl .= "Du skal indtaste et password, for at kunne logge ind!<br>\n";
}
elseif($password != $dbpassword) {
$fejl .= "Det indtastede password er forkert, prøv igen!<br>\n";
}
elseif{
$fejl .= "Det indtastede brugernavn er forkert, prøv igen!<br>\n";
}
else {
header("Location: logged_ind.php");
}

echo<<<EOD
<center>
<font face="Arial" style="font-size: 12px, color: red">
  $fejl
</font>
</center>
EOD;

Håber det kan bruges. :)
Avatar billede olsson15 Nybegynder
22. september 2004 - 23:27 #6
hvor skal dette skriver henne ?
Avatar billede blackscorpion Nybegynder
22. september 2004 - 23:30 #7
ahh på den måde.

okey så skal du tage det jeg har skrevet før, og så fjerne:

echo<<<EOD
<center>
<font face="Arial" style="font-size: 12px, color: red">
  $fejl
</font>
</center>
EOD;

istedet skal du så lave en:

header("Location: login_side.php?fejl=$fejl");

og på din login_side.php

skal du så smide dette ind, hvor du vil have fejlen til at stå:

<? if($fejl) { echo $fejl; } ?>

så skal den anden if/elseif/else løkke selffølgelig tilpasses ind i dit script, dvs. alle de steder hvor du har noget ala:

  if (!mysql_num_rows($passquery))
  {
    echo "<font color=\"red\">Ugyldigt brugernavn!<p></font>";
    echo "<br><br><a href=\"java script: history.back();\">Tryk her for at komme tilbage og forsøge igen!</a>";
    exit();
  }

skal du så lave den med $fejl, eller hvad du vil kalde den. :)
Avatar billede olsson15 Nybegynder
22. september 2004 - 23:32 #8
prøver lige, er ikke helt med hvor det skal være, men prøver lige :D
Avatar billede blackscorpion Nybegynder
22. september 2004 - 23:34 #9
okey jeg retter lige scriptet til for dig, så kan du se mit bud på det. :)
Avatar billede olsson15 Nybegynder
22. september 2004 - 23:35 #10
kanon
Avatar billede olsson15 Nybegynder
22. september 2004 - 23:37 #11
kan sku ikke finde ud af det :(
Avatar billede blackscorpion Nybegynder
22. september 2004 - 23:39 #12
hehe, man lærer ved at prøve. :)

Tjek_user.php:

<? 
$fejl = "";
addslashes($username);
addslashes($passcode);

$new_password = md5($passcode);

require("db_ind.inc");

$passquery = mysql_query("SELECT password, id FROM brugere WHERE username = '$username'");

if (!mysql_num_rows($passquery)) {
$fejl .= "Ugyldigt brugernavn!<br>\n";
header("Location: login.php?fejl=$fejl");
exit();
}
else {
if($row = mysql_fetch_array($passquery)) {
  $dbpassword = $row["password"];
  $profilid = $row["id"];
}
if($dbpassword == $new_password) {
  $login = (true);
}
if ($dbpassword != $new_password) {
  $fejl .= "Det angivende kodeord er forkert.<br\n";
  $fejl .= "Hvis du ikke kan huske din adgangskode<br>kan du få den tilsendt, <a href=\"glemt.php\">ved at trykke her</a>.<br>";     
  header("Location: login.php?fejl=$fejl");
  exit();
}

setcookie("coo_username","$username",time()+3600);
setcookie("coo_password","$new_password",time()+3600);
setcookie("coo_profilid","$profilid",time()+3600);
$today = date("d-m-Y");
require("db_ind.inc");
mysql_query("UPDATE brugere set lastlogin = '$today' WHERE username = '$coo_username'");
header("Location: muligheder.php");
}
?>

på login siden, hvor du vil have fejl koden til at stå, skal du sætte dette ind:
<? if($fejl) { echo $fejl; } ?>
Avatar billede blackscorpion Nybegynder
22. september 2004 - 23:42 #13
damn kan også se jeg har lavet en fejl i mit svar. lol

elseif{
$fejl .= "Det indtastede brugernavn er forkert, prøv igen!<br>\n";
}


skulle have været

elseif ($brugernavn != $dbbrugernavn){
$fejl .= "Det indtastede brugernavn er forkert, prøv igen!<br>\n";
}

men det er lige meget nu. :)
Avatar billede blackscorpion Nybegynder
22. september 2004 - 23:43 #14
hvis fejlen skal være rød på login siden, så skal det se sådan her ud:

<? if($fejl) { echo "<font color='red'>" . $fejl . "</font>"; } ?>
Avatar billede olsson15 Nybegynder
22. september 2004 - 23:44 #15
det virker helt efter bogen :D
Du har lige gjordt en mand rigtigt glad...
TAK TAK

Det er sku iriterene at jeg ikke kender nogen der er rigtig god til php som dig, kunne godt bruge dig en gang imellem på msn ... HIHI
Avatar billede blackscorpion Nybegynder
22. september 2004 - 23:45 #16
jamen du kan da bare tilføje mig. :P

kbj1980@hotmail.com
Avatar billede olsson15 Nybegynder
22. september 2004 - 23:47 #17
det er fandme kanon.. tak tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester