Avatar billede danielss Nybegynder
19. oktober 2004 - 13:12 Der er 18 kommentarer og
1 løsning

brugerscript på lojmann.dk

Hej jeg har hentet brugersystemet med coockies på lojmann .dk..

memn når man skal oprette en ny bruger skriver den at man skal udfylde alle 3 felter selvom de er udfyldt.. hvad er der galt??

ny.php:

  Her kan du oprette din personlige profil. Det er 100% GRATIS at have en profil på siden. Du kan læse mere om personlige profiler <a href="index.php">her</a>.<br>
  Hvis du allerede har bestemt dig for at oprette en profil, skal du blot udfylde den nedenstående formular, og trykke send, så er din profil oprettet på få sekunder.<br>
  Held og lykke, med din profil.<p>

  <form action="add_profil.php" method="get">

    Ønsket brugernavn:<br>
    <input type="text" size="30" name="username" maxlength="15" class="input"><p>

    Ønsket password:<br>
    <input type="password" size="30" name="password" maxlength="15" class="input"><p>

    Din e-mail:<br>
    <input type="text" size="30" name="email" maxlength="50" class="input"><p>

    <input type="submit" name="submit" value="Opret min profil" class="button">

  </form>

_________________________________________________________________

add_profile.php:

<?
  $new_password = md5($password);
  setcookie("coo_username","$username",time()+86400);
  setcookie("coo_password","$new_password",time()+86400);
  setcookie("coo_passworda","$password",time()+86400);
  setcookie("coo_email","$email",time()+86400);
?>

<!-- her skal <HTML> starte! -->

<?
  if (!$username || !$new_password || !$email)
    {
      echo "<font color=\"red\">Du skal udfylde alle tre felter inden du kan fortsætte!</font>";
      exit();
    }
  else
    {
      include("db_ind.inc");
      $tjek = mysql_query("SELECT * FROM profiler WHERE username = '$username'");
      if (mysql_num_rows($tjek))
        {
          echo "<font color=\"red\">Det ønskede brugernavn findes allerede!</font>";
          exit();
        }
      else
        {
          addslashes($username);
          addslashes($new_password);
          addslashes($email);
          include("db_ind.inc");
          $add_profil = mysql_query("INSERT INTO profiler (username, password, email)" . "VALUES ('$username', '$new_password', '$email')");
        }
    }
?>

<!-- Gå til step2.php -->

-----------------------------------------------------------------

nogle der kan se hvad der er galt??
Avatar billede askhoej Praktikant
19. oktober 2004 - 13:20 #1
if (!$username || !$new_password || !$email) her tjekkes på et form element du ikke har i din form, skriv i stedet:

if (!$username || !$password || !$email)
Avatar billede sostack Nybegynder
19. oktober 2004 - 13:22 #2
prøv med:
<?
  $password = $_GET["password"];
  $username = $_GET["username"];
  $email = $_GET["email"];
  $new_password = md5($password);
  setcookie("coo_username","$username",time()+86400);
  setcookie("coo_password","$new_password",time()+86400);
  setcookie("coo_passworda","$password",time()+86400);
  setcookie("coo_email","$email",time()+86400);
?>
+ alt resten...

//sostack
Avatar billede sostack Nybegynder
19. oktober 2004 - 13:23 #3
Det er sikekrt noget med register_globals på serveren!

//sostack
Avatar billede danielss Nybegynder
19. oktober 2004 - 13:33 #4
Det vrikede ikke askhoej.. men når gør som SOSTACK siger... når man så opretter sig så kommer der bare en tom side... og når man så logger ind med det brugernavn og pass som man har valgt siger den ugyldigt login.. MEN når man så prøver at oprette sig igen siger den at brugernavnet findes allerede.. mmm3.dk/bs/login.php...
Avatar billede qub- Novice
19. oktober 2004 - 13:34 #5
Det script du har hentet er nok en kodet til en gammel version af php, og derfor virker det selvfølgelig ikke hvis der fx er installeret php4 eller lign. på din server...
Avatar billede sostack Nybegynder
19. oktober 2004 - 13:36 #6
Husker du at md5 dit password, når du logger ind?

//sostack
Avatar billede danielss Nybegynder
19. oktober 2004 - 13:37 #7
er der nogen der kan hjælpe med et nyt system så??
Avatar billede danielss Nybegynder
19. oktober 2004 - 13:45 #8
nogle der kan hjælpe med et nyt system??
Avatar billede sostack Nybegynder
19. oktober 2004 - 14:17 #9
Hvordan ser din login.php og din loginform ud?

//sostack
Avatar billede danielss Nybegynder
19. oktober 2004 - 14:51 #10
Login.php:

Hvis du allerede har en profil her på ???.dk, skal du blodt skrive dit brugernavn og password og trykke på <b>Login</b>.<br>
  Hvis du stadig ikke har oprettet dig som bruger, kan du gøre det <a href="ny.php">her</a>.<br>
  Glemt dit password eller brugernavn? Tryk <a href="glemt.php">her</a>.<p>

  <form action="tjek_user.php" method="get">

    Brugernavn:<br>
    <input type="text" size="30" name="username" maxlength="15" class="input"><p>

    Password:<br>
    <input type="password" size="30" name="passcode" maxlength="15" class="input"><p>

    <input type="submit" name="submit" value="Login" class="button">

  </form>

_____________________________________________________________________________________

tjek_user.php:

<?
  addslashes($username);
  addslashes($passcode);
  $new_password = md5($passcode);
  require("db_ind.inc");
  $passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username'");
  if (!mysql_num_rows($passquery))
  {
    echo "Ugyldigt brugernavn!<p>";
    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 "Forkert brugernavn eller password!!!<br>";
    echo "Hvis du ikke kan huske dit password, står det i den mail du fik tilsendt ved oprettelsen. Skulle du også have mistet den mail, så kan du få den tilsendt, ved at trykker <a href=\"glemtkode.php\">her</a>.<br>";
    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 profiler set lastlogin = '$today' WHERE username = '$coo_username'");
  header("Location: muligheder.php");
  }
?>

_____________________________________________________________________________________

sådan ser de ud...
Avatar billede danielss Nybegynder
19. oktober 2004 - 14:53 #11
og databasen i mysql ser sådan her ud:

CREATE TABLE profiler (
  username varchar(12) NOT NULL,
  password varchar(50) NOT NULL,
  fornavn varchar(50) NOT NULL,
  efternavn varchar(50) NOT NULL,
  adresse varchar(50) NOT NULL,
  postnr varchar(4) NOT NULL,
  bynavn varchar(50) NOT NULL,
  tlf int(8) DEFAULT '0' NOT NULL,
  mobil int(8) DEFAULT '0' NOT NULL,
  lastlogin varchar(10) NOT NULL,
  email varchar(80) NOT NULL,
  id int(11) DEFAULT '0' NOT NULL,
  UNIQUE username (username),
  UNIQUE email (email)
);
Avatar billede sostack Nybegynder
20. oktober 2004 - 07:19 #12
Prøv med:
tjek_user.php:

<?
  $username = $_REQUEST["username"];
  $passcode = $_REQUEST["passcode"];
  addslashes($username);
  addslashes($passcode);
  ..........
  ..........
  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 profiler set lastlogin = '$today' WHERE username = '$username'");
  header("Location: muligheder.php");
  }
?>

//sostack
Avatar billede danielss Nybegynder
20. oktober 2004 - 12:28 #13
det virker stadig ikke... den er stadig bare hvid når man opretter bruger og der er fejl på linie 6 hvis man bare prøver at logge ind
Avatar billede sostack Nybegynder
20. oktober 2004 - 12:32 #14
Grunden til at siden er blank, når du opretter en bruger er, at du ikke genererer noget output efter $add_profil = mysql_query("INSERT INTO profiler (username, password, email)" . "VALUES ('$username', '$new_password', '$email')");.
Her kunne du skrive echo $username . " er nu oprettet som bruger";
Så ville der jo komme et output herfra.

Hvilken fejl kommer der på linie 6 ved forsøg på login??

//sostack
Avatar billede danielss Nybegynder
20. oktober 2004 - 13:23 #15
passwordet når jeg logger ind har da ikke noget med det der md5 at gøre vel??
Avatar billede sostack Nybegynder
20. oktober 2004 - 13:29 #16
Jo, da du har gemt det krypteret med md5 i databasen, skal du også md5 passwordet fra formen, inden du sammenligner med det fra databasen. Men det gør du jo også.

fejlen i linie 6 kan være  if (!mysql_num_rows($passquery))
der evt. skal ændres til if(0 == mysql_num_rows($passquery))

//sostack
Avatar billede danielss Nybegynder
20. oktober 2004 - 13:31 #17
så når jeg logger ind skal der ikke stå md5 forand passwordet??
Avatar billede danielss Nybegynder
20. oktober 2004 - 13:36 #18
Når jeg giver op.. det er squ for besværligt....

Sostack kender du ikke et nemt et... man behøver ikke selv at kunne oprette sig som bruger der skal nemlig kun være 14... det skal være sikkert.. der behøver heller ikke at være oplysninger om brugeren eller noget bare kun så man kan logge ind´.. der er mange dokumenter der skal beskyttes... det er kun den første side med frames man må kunne se.. dvs 4 sider
Avatar billede danielss Nybegynder
15. november 2006 - 13:20 #19
lukket
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