Avatar billede freakazoid18 Nybegynder
29. april 2003 - 16:26 Der er 19 kommentarer og
1 løsning

Login med LEVELS

Heya out there JEg ska bruge et komplet login script hvor du i sql databasen har en tabel der hedder users også inde i der har noget med user pass level, det skal så være sådan at når man er inde skal den liste ens navn altså noget med hello USER.... også alt efter hvilke user rights man har skal man så kunne se forskeliige ting i en admin.php.... hber det er nok forklaring skal laves med sql sætningen til phpmyadmin... :)
Avatar billede exp-ralle Nybegynder
29. april 2003 - 16:39 #1
Følger lige med da jeg selv mangler/gerne vil lave sådan et system
Avatar billede Slettet bruger
29. april 2003 - 16:44 #2
CREATE TABLE users (
  id int(10) unsigned NOT NULL auto_increment,
  brugernavn varchar(16) default NULL,
  password varchar(16) default NULL,
  email varchar(35) default NULL,
  rettighed char(1) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede Slettet bruger
29. april 2003 - 16:45 #3
Så har du din database. Så skal du bare have kodet selve systemet :)

Du kan gøre som jeg har været ved med kollonnen rettighed. Hvis den f.eks. er sat til 1 har brugerne adgang til at skrive nyheder

er den sat til 2 har de adgang til at slette andre brugere.

Og er den 3 kan man begge dele osv osv
Avatar billede Slettet bruger
29. april 2003 - 16:48 #4
Ups skulle ikke have været et svar.
Jeg har vist noget liggende du måske kunne bruge.
Avatar billede Slettet bruger
29. april 2003 - 16:55 #5
Først skal du have en form til at oprette brugere i databasen:

<form action="oprettelse.php" method="post">
<table border="0" CELLPADDING="0" CELLSPACING="0">
  <tr>
  <td width="100px" class="td-tekst">Brugernavn:</td>
  <td> <input type="text" name="brugernavn" maxlength="16" class="formular-tast"> </td>
  </tr>
  <tr>
  <td class="td-tekst">Password:</td>
  <td> <input type="password" name="password" maxlength="16"> </td>
  </tr>
  <tr>
  <td class="td-tekst">Email:</td>
  <td> <input type="text" name="email" maxlength="35"> </td>
  </tr>
  <tr>
  <td> <input TYPE="hidden" name="rettighed" value="0"> </td>
  <td> <input type="submit" name="opret" value="Opret"> </td>
  </tr>
</table> 
</form>

Så skal du have filen oprettelse.php som ligger brugeren i databasen:

<?
mysql_connect("localhost","***","***");
mysql_select_db("databasen");

$check = mysql_query("SELECT brugernavn,id FROM users where brugernavn='$_POST[brugernavn]'") or die (mysql_error());

if(mysql_num_rows($check) != 0) {
  echo "
    Desværre, der findes allerede en bruger med navnet $_POST[brugernavn]
  ";
  exit;
}

else {
  mysql_query("insert into users (brugernavn,password,email,rettighed) values ('$brugernavn','$password','$email','$rettighed')");

  echo "
  Du er nu oprettet med brugernavnet $_POST[brugernavn]
  ";
  include("bottom.txt");
  exit;
}
?>
Avatar billede Slettet bruger
29. april 2003 - 17:08 #6
Så er brugeren oprettede. Og rettigheden er sat til 0.
Den kan du jo så så selv ændre, eller lave en side hvor du kan dele rettigheder ud til brugerne.

Du skal så have en login funktion. Den kunne se sådan ud:

<form action="login.php" method="post">
<span><b>Brugernavn:</b></span><BR>
<input type="text" name="brugernavn" maxlength="17"><BR>
<span><B>Password:</B></span><BR>
<input type="password" name="password" maxlength="17"><BR>
<input type="submit" name="login" value="Login">
</form>

For at logge brugeren ind skal vi så have en fil ved navn login.php:

<?PHP session_start();

mysql_connect("localhost","***","***");
mysql_select_db("login");

$check = mysql_query("SELECT brugernavn, password, rettighed FROM users WHERE brugernavn ='$_POST[brugernavn]' AND password ='$_POST[password]'") or die (mysql_error());
if(mysql_num_rows($check) != 1) {
  echo "
    Der er sket en fejl. Du har muligvis tastet brugernavnet eller passwordet forkert.
  ";
  }
else {
   
        $_SESSION['brugernavn'] = $row['brugernavn'];
        $_SESSION['password'] = $_POST['password'];
   
        header("Location: hemlig.php");
             
}
}

?>

Når brugeren er logget ind sendes vedkommende til filen hemlig.php
Denne side kunne så se sådan ud:

<?
session_start();
if(isset($_SESSION['brugernavn'])) {

  mysql_connect("localhost","***","***");
  mysql_select_db("login");
  $query = mysql_query("SELECT rettighed from users WHERE brugernavn = '$_SESSION['brugernavn']'") or die (mysql_error());
  $row = mysql_fetch_array($query);
     
  if ( $row['rettighed'] == 0) {

  echo "
    Du har rettigheder der svare til 0
     
  ";
  }
 
  else {

    echo "
    Du har adgang til admin funktioner.
    ";
 
  }

}

else {
 
  echo "
  Du er overhovedet ikke logget ind
  ";
}

?>
Avatar billede Slettet bruger
29. april 2003 - 17:10 #7
Så har du dit brugersystem. Bare husk på alle dine sider, FØR ALT andet skal du starte med session_start();

Håber du kan bruge det til noget.
Avatar billede tipsen Nybegynder
29. april 2003 - 17:33 #8
Der er en god kombination af en tutorial og et færdigt script her:

http://www.devshed.com/Server_Side/PHP/TimeIsMoney/TimeIsMoney1/TimeIsMoney1.pdf

Så kan man enten nøjes med det færdige script eller måske endda lære noget, hvis man skulle have lyst til det!
Avatar billede freakazoid18 Nybegynder
29. april 2003 - 17:50 #9
Parse error: parse error, unexpected '}' in /customers/eterno.dk/eterno.dk/httpd.www/error9/login.php on line 20 ?!?
Avatar billede Slettet bruger
29. april 2003 - 18:00 #10
aha bare fjern } på linje 20 :) gik lidt for hurtig
Avatar billede freakazoid18 Nybegynder
29. april 2003 - 18:04 #11
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/eterno.dk/eterno.dk/httpd.www/error9/hemlig.php on line 7
Næste prob... :) håber ikk jeg er for meget ivejen :D men svar på det her og de 200 point er der når det funker :P
Avatar billede Slettet bruger
29. april 2003 - 18:08 #12
$query = mysql_query("SELECT rettighed from users WHERE brugernavn = '$_SESSION[brugernavn]'") or die (mysql_error());

prøv dette :)
Avatar billede freakazoid18 Nybegynder
29. april 2003 - 18:12 #13
Du er overhovedet ikke logget ind, skriver den nu... :)
Avatar billede freakazoid18 Nybegynder
29. april 2003 - 18:12 #14
Og rettighed er sat til 1
Avatar billede Slettet bruger
29. april 2003 - 18:17 #15
Hmm.. i login.php prøv at finde linjen
$_SESSION['brugernavn'] = $row['brugernavn'];

Og ændre den til
$_SESSION['brugernavn'] = $_POST['brugernavn'];
Avatar billede freakazoid18 Nybegynder
29. april 2003 - 18:18 #16
du er gal nok =)
Avatar billede Slettet bruger
29. april 2003 - 18:25 #17
heh hvilket udtryg :)
Tak for points, og held og lykke med dit brugersystem.
Avatar billede freakazoid18 Nybegynder
29. april 2003 - 18:35 #18
ehh en ting mere...
  if ( $row['rettighed'] == 0) {

  echo "
    Velkommen. $_POST[brugernavn]
     
  ";
  } 
Burde den ikk sige Velkommen til brugernavn ?eller hvordan får jeg den til det ?
Avatar billede Slettet bruger
29. april 2003 - 18:59 #19
der kan du bare sige
echo "
Velkommen $_session['brugernavn'] ";

der er lidt fejl i det. Men havde kun stumperne af det liggende, så det sidste gik en smugle stærkt.
Avatar billede freakazoid18 Nybegynder
29. april 2003 - 19:06 #20
Mjaaa det ville jeg nemmelig også mene... men får denne fejl...
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/eterno.dk/eterno.dk/httpd.www/error9/hemlig.php on line 13
?
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