Avatar billede mulles.tk Nybegynder
04. juli 2003 - 15:07 Der er 36 kommentarer og
1 løsning

ekstra data i login system

Jeg bruger dette login system:
http://sukos.dk/php/login/mysql/mysql-login.zip
http://sukos.dk/php/login/mysql/

Men jeg kunne godt tænke mig at få tilføjet ekstra data, som email og fulde navn, og som jeg kan få frem ved hjælp af:
<?php echo $_SESSION['email']; ?>

Jeg har selv prøvet at rode lidt med det, men har ikke fået det til at virke!

Der skal rettes i dologin.php, MYsql tabellen og så ved jeg ik' om der også skal rettes i tjeklogin.php?
Avatar billede exp Juniormester
04. juli 2003 - 15:22 #1
Du trækker bare emailen ud af databasen, og så gør du sådan:
$_SESSION['email'] = $email;
Avatar billede exp Juniormester
04. juli 2003 - 15:23 #2
hvis du vil checke om emailen eksisterer, er det korrekt at det skal tilføjes i tjeklogin.php
Avatar billede mulles.tk Nybegynder
04. juli 2003 - 15:26 #3
Skal der slet ikke tilføjes noget i dologin.php?
Avatar billede danisher Nybegynder
04. juli 2003 - 15:37 #4
Jo, du skal også tilføje noget til dologin.php:

Men som exp skriver, så skal du trække emailen ud fra databasen, efter du selvfølgelig har godkendt login'en, og så sætte:
$_SESSION["email"] = $email;

Så kan du på alle siderne tilgå personens email ved hjælp af f.eks.:
print $_SESSION["email"];
/mig
Avatar billede mulles.tk Nybegynder
04. juli 2003 - 15:52 #5
Heh he... kan stadig ikke få det til at virke!

dologin.php:
$tjek = mysql_query("SELECT navn, password FROM brugere WHERE navn='$_POST[navn]' AND password='$dopass'") or die ("Kunne ikke vælge felter i database-tabellen");

if(mysql_num_rows($tjek) != 0) {

$_SESSION['sessionnr'] = session_id();
$_SESSION['Name'] = $_POST['navn'];
$_SESSION['fuldenavn'] = $fuldenavn;
$_SESSION['email'] = $email;
__________
Hvordan skal det skrives ind i mysql_query ?
Avatar billede danisher Nybegynder
04. juli 2003 - 15:56 #6
dologin.php:
$tjek = mysql_query("SELECT navn, password, email, fuldenavn FROM brugere WHERE navn='$_POST[navn]' AND password='$dopass'") or die ("Kunne ikke vælge felter i database-tabellen");
$row = mysql_fetch_array($tjek);

if(mysql_num_rows($tjek) != 0) {

$_SESSION['sessionnr'] = session_id();
$_SESSION['name'] = $_POST['navn'];
$_SESSION['fuldenavn'] = $row["fuldenavn"];
$_SESSION['email'] = $row["email"];

/mig
Avatar billede danisher Nybegynder
04. juli 2003 - 15:56 #7
Svar <-
Avatar billede mulles.tk Nybegynder
04. juli 2003 - 16:02 #8
Nu kan jeg slet ikke logge ind? :(
Avatar billede danisher Nybegynder
04. juli 2003 - 16:10 #9
jeg gik lige ind på din side?

Der virkede det fint?

Hvad siger den ellers af fejl da?
Avatar billede mulles.tk Nybegynder
04. juli 2003 - 16:19 #10
Det er denne side:
http://test.wildness.dk --> Crew --> admin
Hvis jeg skriver brugernavn og kodeord bliver jeg bare returneret til samme side, og uden at der står noget med forkert password, bruger mm.?
Avatar billede danisher Nybegynder
04. juli 2003 - 16:39 #11
hmm, må jeg se hele din dologin.php?
Avatar billede mulles.tk Nybegynder
04. juli 2003 - 16:45 #12
<?php

session_start();

//hvis form er submittet
if (isset($_POST['logind'])) {

//password i databasen er krypteret, så det gøres også med indtastet password
$dopass = md5($_POST['password']);


//skift selv bruger og pass til databasen.
$db = mysql_connect("", "", "") or die ("Desværre ingen forbindelse til databasen");

mysql_select_db("", $db) or die ("Kunne ikke vælge databasetabel");

$tjek = mysql_query("SELECT navn, password, email, fuldenavn FROM brugere WHERE navn='$_POST[navn]' AND password='$dopass'") or die ("Kunne ikke vælge felter i database-tabellen");

$row = mysql_fetch_array($tjek);

if(mysql_num_rows($tjek) != 0) {

$_SESSION['sessionnr'] = session_id();
$_SESSION['name'] = $_POST['navn'];
$_SESSION['fuldenavn'] = $row['fuldenavn'];
$_SESSION['email'] = $row['email'];

header("Location:admin.php");
exit;
}else{

header("Location:logind.php?error=fejl");
exit;
}

}else{

header("Location:logind.php");
exit;
}

?>
Avatar billede mulles.tk Nybegynder
04. juli 2003 - 19:04 #13
er du der stadig?
Avatar billede avminarm Juniormester
04. juli 2003 - 21:16 #14
du kan også bare gøre sådan:

$sql = mysql_query("SELECT feltnavn FROM brugere WHERE navn='$_POST[navn]' AND password='$dopass'") or die (mysql_error());

$_SESSION['feltnavn'] = mysql_result($sql,0);
Avatar billede avminarm Juniormester
18. juli 2003 - 11:08 #15
LUKKETID?
Avatar billede mulles.tk Nybegynder
19. juli 2003 - 20:14 #16
Nej ikke endnu!!!! Kan du ikke lige prøve at udfylde dologin.php på din måde? For jeg kan ikke helt gennemskue det?
Avatar billede mulles.tk Nybegynder
19. juli 2003 - 20:14 #17
Jeg sætter 50 point mere til!
Avatar billede avminarm Juniormester
20. juli 2003 - 23:03 #18
ok - prøv sådan her:

<?php

session_start();

//hvis form er submittet
if (isset($_POST['logind'])) {

//password i databasen er krypteret, så det gøres også med indtastet password
$dopass = md5($_POST['password']);


//skift selv bruger og pass til databasen.
$db = mysql_connect("", "", "") or die ("Desværre ingen forbindelse til databasen");

mysql_select_db("", $db) or die ("Kunne ikke vælge databasetabel");

$tjek = mysql_query("SELECT navn, password FROM brugere WHERE navn='$_POST[navn]' AND password='$dopass'") or die ("Kunne ikke vælge felter i database-tabellen");

$row = mysql_fetch_array($tjek);

if(mysql_num_rows($tjek) != 0) {

$_SESSION['sessionnr'] = session_id();
$_SESSION['name'] = $_POST['navn'];

$fn = mysql_query("SELECT fuldenavn FROM brugere WHERE navn='$_POST[navn]' AND password='$dopass'") or die (mysql_error());

$_SESSION['email'] = mysql_result($fn,0);


$sql = mysql_query("SELECT email FROM brugere WHERE navn='$_POST[navn]' AND password='$dopass'") or die (mysql_error());

$_SESSION['email'] = mysql_result($sql,0);

header("Location:admin.php");
exit;
}else{

header("Location:logind.php?error=fejl");
exit;
}

}else{

header("Location:logind.php");
exit;
}

?>
Avatar billede avminarm Juniormester
20. juli 2003 - 23:04 #19
hov $_SESSION['email'] = mysql_result($fn,0); skal hedde:

$_SESSION['fundenavn'] = mysql_result($fn,0);
Avatar billede mulles.tk Nybegynder
22. juli 2003 - 21:47 #20
Hmm... kan ikke få lov at logge ind nu! Og den returnerer ikke med en fejl besked?

Skal der ikke ændres noget ved tjeklogin.php ?
Avatar billede avminarm Juniormester
23. juli 2003 - 09:22 #21
har du tjekket om du bruger det rigtige navn og pass - prøv at udskrive dine sessions variabler for at se om de bliver sat
Avatar billede mulles.tk Nybegynder
23. juli 2003 - 17:09 #22
Det er det rigtigt navn og pass, for ellers vil den returnere med en fejl besked, og det gør den ik'! Den loader bare login siden igen!
Avatar billede avminarm Juniormester
24. juli 2003 - 07:52 #23
lad mig se strukturen over din databasetabel "brugere" (dump)
Avatar billede mulles.tk Nybegynder
24. juli 2003 - 16:52 #24
Her er den:

CREATE TABLE brugere (
  id tinyint(4) NOT NULL auto_increment,
  navn varchar(12) NOT NULL default '',
  password tinytext NOT NULL,
  fuldenavn varchar(50) NOT NULL default '',
  email varchar(50) NOT NULL default '',
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede avminarm Juniormester
24. juli 2003 - 21:33 #25
der må være noget galt med de oplysninger der er i Db i forhold til dem du indtaster - er der et sted jeg kan teste dette login - hvis du ikke vil have det skrevet her - så send en mail til exp@avminmusearm.dk
Avatar billede mulles.tk Nybegynder
24. juli 2003 - 21:53 #26
Nu har jeg indsat flg.:
INSERT INTO brugere VALUES (5, 'test', md5('test'), 'Test', 'test@wildness.dk');

Du kan teste det her:
http://test.wildness.dk/admin_/logind.php

Men det virker altså ik'?
Avatar billede avminarm Juniormester
25. juli 2003 - 08:54 #27
der må være noget galt på dit websted eller i en af de filer du bruger det virker perfekt hos mig - se selv: http://wagners.users.whitehat.dk/zapp_login/login.php
Avatar billede mulles.tk Nybegynder
25. juli 2003 - 09:33 #28
hmm... jeg forstår ik'? Hvad gør jeg lige galt?
Avatar billede avminarm Juniormester
25. juli 2003 - 11:40 #29
jeg ved det! ikke vis lige en nøjagtig kopi ar din dologin.php her
Avatar billede mulles.tk Nybegynder
25. juli 2003 - 12:25 #30
Du får dem alle....

### logind.php
Avatar billede mulles.tk Nybegynder
25. juli 2003 - 12:28 #31
hov... :)

### logind.php

<br><br><center><form action="dologin.php" method="post">
<input type="hidden" name="logind" value="logind">
Brugernavn:<br>
<input type="text" name="navn"><br><br>
Password:<br>
<input type="password" name="password"><br><br>
<input type="submit" name="submit" value="Log ind">
</form></center>
<?php
if (isset($_GET['error']) && $_GET['error'] == "fejl") {
echo"<b>Fejl i brugernavn eller password!</b>";
}
?>

### dologin.php

<?php

session_start();

//hvis form er submittet
if (isset($_POST['logind'])) {

//password i databasen er krypteret, så det gøres også med indtastet password
$dopass = md5($_POST['password']);


//skift selv bruger og pass til databasen.
$db = mysql_connect("", "", "") or die ("Desværre ingen forbindelse til databasen");

mysql_select_db("", $db) or die ("Kunne ikke vælge databasetabel");

$tjek = mysql_query("SELECT navn, password FROM brugere WHERE navn='$_POST[navn]' AND password='$dopass'") or die ("Kunne ikke vælge felter i database-tabellen");

$row = mysql_fetch_array($tjek);

if(mysql_num_rows($tjek) != 0) {

$_SESSION['sessionnr'] = session_id();
$_SESSION['name'] = $_POST['navn'];

$fn = mysql_query("SELECT fuldenavn FROM brugere WHERE navn='$_POST[navn]' AND password='$dopass'") or die (mysql_error());

$_SESSION['email'] = mysql_result($fn,0);


$sql = mysql_query("SELECT email FROM brugere WHERE navn='$_POST[navn]' AND password='$dopass'") or die (mysql_error());

$_SESSION['email'] = mysql_result($sql,0);

header("Location:admin.php");
exit;
}else{

header("Location:logind.php?error=fejl");
exit;
}

}else{

header("Location:logind.php");
exit;
}

?>

### tjeklogin.php

<?php
session_start();
if (!isset($_SESSION['Name'], $_SESSION['sessionnr']) || $_SESSION['sessionnr'] != session_id()) {
header("Location:logind.php");
}
?>
Avatar billede avminarm Juniormester
25. juli 2003 - 13:39 #32
prøv at fjerne:

else{

header("Location:logind.php");
exit;
}

til sidst i dologin.php

og se hvad der sker, ellers tag evt. og kopier koden fra den kode jeg har vist dig et link på
Avatar billede mulles.tk Nybegynder
26. juli 2003 - 00:01 #33
Virkede ik'! Har også prøvet at bruge koden fra dit eksempel, men også uden succes!

Men jeg har altså på fornemmelsen at det er noget med tjeklogin.php ...

For når man logger ind på min side, bliver man jo ført videre til admin.php, som så først tjekker om man har tilladelse til at se siden ved hjælp af:
<?php require("tjeklogin.php"); ?>
Avatar billede mulles.tk Nybegynder
26. juli 2003 - 00:03 #34
hmm...  kommer tit til at trykke udfør for tidligt :/

Nå men hvis noget så ikke passer i overensstemmelse med tjeklogin.php, bliver man jo smidt tilbage til logind.php! Kan det ikke være det der sker?
Avatar billede mulles.tk Nybegynder
26. juli 2003 - 00:06 #35
I dit eksempel bliver man jo ført direkte til dologin.php og der er ikke nogen forbindelse til tjeklogin.php!
Avatar billede mulles.tk Nybegynder
26. juli 2003 - 19:53 #36
DOH!!!! Har fundet fejlen... Det var i tjeklogin.php

I stedet for:
if (!isset($_SESSION['Name'],
Skal det være:
if (!isset($_SESSION['name'],

Lille ting, men STORT problem!

Du får alle pointene!
Avatar billede avminarm Juniormester
26. juli 2003 - 22:11 #37
var så lidt - ja små ting kan give probs somme tider ;o)
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