Avatar billede freakazoid18 Nybegynder
29. august 2003 - 08:03 Der er 26 kommentarer og
1 løsning

Session :D

Ohøj... har lidt problemer med mine sessions...

Mit problem ligger i jeg skal ha lavet en edit side... og derfor skal have id´et med over... men efter som det ikk skrives i en formular er den lidt svær :D for en newb... pls help :P

:::::KODE:::::

<?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("localhost", "gg", "fu :P") or die ("Desværre ingen forbindelse til databasen");

mysql_select_db("gg", $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");

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

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

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

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

}else{

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

?>

:::::KODE SLUT:::::
Avatar billede jara06 Nybegynder
29. august 2003 - 08:33 #1
en simpel løsning: lav et hidden felt i din form hvori du lægger værdien .. :)
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 08:36 #2
hoho nej den går sq ikk :D det er jo et forskelligt id for hver user :P
Avatar billede avminarm Juniormester
29. august 2003 - 08:47 #3
$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) {

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

$_SESSION['id'] = mysql_result($id,0);
$_SESSION['sessionnr'] = session_id();
$_SESSION['Name'] = $_POST['navn'];

så ligger session i id
Avatar billede avminarm Juniormester
29. august 2003 - 08:57 #4
hov der skal lige rettes:

email='$_POST[email]'  -  skal være navn='$_POST[navn]'
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 09:14 #5
yes yes den fandt jeg så selv ud af men ellers tak :D nu sakl jeg så bare ha lavet mig en edit side... har du nogen idér om hvordan man kunne smide sådan en op :D:?
Avatar billede avminarm Juniormester
29. august 2003 - 09:16 #6
Takker for points ;o)

hvad mener du med en edit side? - hvad skal du editere?
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 09:26 #7
som du ved er det et login system... :) og når en bruger er logget ind skal han kunne ændre sit pass og username og andre små ting... hverken mindre eller mere :D
Avatar billede avminarm Juniormester
29. august 2003 - 09:47 #8
har du styr på at hente og skrive til en DB?

Hvis ikke så kig lige på www.mbn.dk - der er en god begynder guide

Men ellers ville jeg når en beuger er logget ind hente hans data in i en almindelig formular vi det id vi har registreret i en session og herefter lave en update af dette id.
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 09:54 #9
yes... jeg har haft styr på det men det kommer lige så langsomt tilbage til min hukomelse det ikk sådan at ha været ude og rejse :D... men asso... du siger som en normal formular og hente oplysninger fra en db kan du evt komme med et eksempel for lidt point ? i et andet spørgsmål naturligvis :D
Avatar billede avminarm Juniormester
29. august 2003 - 10:23 #10
et hurtigt eksempel:

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<?php
$hent = mysql_query("SELECT * FROM brugere WHERE id='$_session[id]' AND navn='$_SESSION[Name]'") or die ("Kunne ikke vælge felter i database-tabellen");
while($row = mysql_result($hent)){
echo 'Ændre navn: <input type="text" name="navn" value="'.$row['navn'].'"><br>';
echo 'Ændre pass ..... osv';

}

<input type="hidden" name="op" value="ds">
<input type="submit" name="submit" value="Opdater">

</form>

<?php

if($_POST['op'] == 'ds'){

// forbind til DB her

mysql_query("UPDATE brugere SET navn='$_POST[navn]'") or die ("Af en eller anden årsag blev der ikke opdateret");

echo 'oplysningerne blev opdaterede';

}
?>
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 10:32 #11
Parse error: parse error, unexpected '<' in /customers/eterno.dk/eterno.dk/httpd.www/mysql-login/edit.php on line 10
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 10:32 #12
og den kører med dette link... <a href="edit.php?id=<?php echo $_SESSION['id']; ?>">edit...</a>
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 10:37 #13
ok har selv fundet fejlen... :D
manglede lige en ?>

men der er stadig fejl :(

::::KODE::::

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<?php

$conn = mysql_connect("localhost", "eterno_dk", "gg");
mysql_select_db("eterno_dk");

$hent = mysql_query("SELECT * FROM brugere WHERE id='$_session[id]' AND navn='$_SESSION[Name]'") or die ("Kunne ikke vælge felter i database-tabellen");
while($row = mysql_result($hent)){
echo 'Ændre navn: <input type="text" name="navn" value="'.$row['navn'].'"><br>';
echo 'Ændre pass ..... osv';

}
?>
<input type="hidden" name="op" value="ds">
<input type="submit" name="submit" value="Opdater">

</form>

<?php

if($_POST['op'] == 'ds'){


mysql_query("UPDATE brugere SET navn='$_POST[navn]'") or die ("Af en eller anden årsag blev der ikke opdateret");

echo 'oplysningerne blev opdaterede';

}
?>

:::KODE SLUT ::::
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 10:37 #14
Warning: Wrong parameter count for mysql_result() in /customers/eterno.dk/eterno.dk/httpd.www/mysql-login/edit.php on line 8
Avatar billede avminarm Juniormester
29. august 2003 - 10:48 #15
prøv at rette id='$_session[id]'  til id='$_SESSION[id]' - en smutter ;o)
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 11:09 #16
ok det virker ikk :( lige nu ser min edit sådan her ud... :D

:::KODE:::
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<?php

$conn = mysql_connect("localhost", "eterno_dk", "gg");
mysql_select_db("eterno_dk");

$hent = mysql_query("SELECT * FROM brugere WHERE id='$_SESSION[id]' AND navn='$_SESSION[Name]'") or die ("Kunne ikke vælge felter i database-tabellen");
while($row = mysql_result($hent)){
echo 'Ændre navn: <input type="text" name="navn" value="'.$row['navn'].'"><br>';
echo 'Ændre pass ..... osv';

}
?>
<input type="hidden" name="op" value="ds">
<input type="submit" name="submit" value="Opdater">

</form>

<?php

if($_POST['op'] == 'ds'){


mysql_query("UPDATE brugere SET navn='$_POST[navn]'") or die ("Af en eller anden årsag blev der ikke opdateret");

echo 'oplysningerne blev opdaterede';

}
?>

:::KODE SLUT:::

og får denne fejl når jeg går ind med deette link...

Warning: Wrong parameter count for mysql_result() in /customers/eterno.dk/eterno.dk/httpd.www/mysql-login/edit.php on line 8


<a href="edit.php?id=<?php echo $_SESSION['id']; ?>">edit...</a>

:D
Avatar billede avminarm Juniormester
29. august 2003 - 11:33 #17
arrrgh - su skal self skrive:

session_start();  -  øverst oppe i din fil
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 11:37 #18
Warning: Cannot send session cache limiter - headers already sent (output started at /customers/eterno.dk/eterno.dk/httpd.www/mysql-login/edit.php:1) in /customers/eterno.dk/eterno.dk/httpd.www/mysql-login/edit.php on line 3

Warning: Wrong parameter count for mysql_result() in /customers/eterno.dk/eterno.dk/httpd.www/mysql-login/edit.php on line 9
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 11:37 #19
:/
Avatar billede avminarm Juniormester
29. august 2003 - 12:02 #20
det er pga du har noget stående før der står session_start(); - det skal stå øverst i dit script - der må intet stå før - bortset fra <?php
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 12:05 #21
ok ja det klart... :) men asso kommer stadig med denne...

Warning: Wrong parameter count for mysql_result() in /customers/eterno.dk/eterno.dk/httpd.www/mysql-login/edit.php on line 10
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 12:05 #22
<?php session_start(); ?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<?php
session_start();

$conn = mysql_connect("localhost", "eterno_dk", "gg");
mysql_select_db("eterno_dk");

$hent = mysql_query("SELECT * FROM brugere WHERE id='$_SESSION[id]' AND navn='$_SESSION[Name]'") or die ("Kunne ikke vælge felter i database-tabellen");
while($row = mysql_result($hent)){
echo 'Ændre navn: <input type="text" name="navn" value="'.$row['navn'].'"><br>';
echo 'Ændre pass ..... osv';

}
?>
<input type="hidden" name="op" value="ds">
<input type="submit" name="submit" value="Opdater">

</form>

<?php

if($_POST['op'] == 'ds'){


mysql_query("UPDATE brugere SET navn='$_POST[navn]'") or die ("Af en eller anden årsag blev der ikke opdateret");

echo 'oplysningerne blev opdaterede';

}
?>
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 12:05 #23
har så lig fjernet session_start 2 gang :D
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 12:07 #24
Warning: Wrong parameter count for mysql_result() in /customers/eterno.dk/eterno.dk/httpd.www/mysql-login/edit.php on line 9 <-- nu efter jeg ahr fjernet det knald...

det er linjen while($row = mysql_result($hent)){ igueesss ?
Avatar billede avminarm Juniormester
29. august 2003 - 14:02 #25
hold da kæft dumflad til mig :o) - der skal self ikke stå

mysql_result($hent)){

men

mysql_fetch_array($hent)){

sorry - jeg ved ikke hvad der lige skete - jeg har vist haft ferie for længe ;o)
Avatar billede freakazoid18 Nybegynder
29. august 2003 - 15:17 #26
wee najzse det virker th for help... har du evt et icq# eller msn ?
Avatar billede avminarm Juniormester
01. september 2003 - 10:10 #27
Nej jeg har ikke icq eller msn - hvorfor?
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