Avatar billede nickyc Nybegynder
06. april 2004 - 14:18 Der er 12 kommentarer og
1 løsning

Gemme brugernavn i session?

Hejsa...

Jeg har prøvet at gøre sådan ens brugernavn bliver gemt i en Session, men det vil nu ikke helt virke, og ved ikke helt hvad der er galt... Håber på der er nogen der kan hjælpe!

Koden for gem_validerbruger.php
_________________________________

<?
if (isset($_GET['brugernavn'])) {
  session_start(); // Lad os begynde!
  $_SESSION['brugernavn'] = $_GET['brugernavn']; // Gem 
}
?>
<?
  require("config.php");
  mysql_select_db($database, $db);
  $brugernavn = $_REQUEST['brugernavn'];
  $kodeord = $_REQUEST['kodeord'];
 
  if (isset($_GET['brugernavn'])) {

  $hente = mysql_query("SELECT brugernavn, kodeord FROM bruger WHERE (brugernavn='$brugernavn') AND (kodeord='$kodeord')") or die(mysql_error());
        while ($row = mysql_fetch_array($hente)) {
            if($hente){
              "<script>location.href='gem_tegning.php';</script>"; 
            } else {
              echo "Der er desværre allerede oprettet en bruger med dette navn! Prøv venligst igen!";
            }
        }
}
?>

Også er der en form hvor der er 2 textfields hvori man skal skrive brugernavn & pass!

Formen er sat til at gør action PHP_SELF
----------------------------------------

Så har jeg gem_tegning.php hvor den er bygget op således!

brugerId
skabId (textfield)
tegningNavn (textfield)
farveKode (textfield)
Gem (knap)

Det jeg så skal have denne fil til at displaye er brugerId'et! Det som man har skrevet i gem_validerbruger.php

Koden til dennne fil er:

<?
session_start();
?> 
<?
  require("config.php");
  mysql_select_db($database, $db);
  $brugerId = $_REQUEST['$brugerId'];
  $skabId = $_REQUEST['skabId'];
  $tegningNavn = $_REQUEST['tegningNavn'];
  $farveKoder = $_REQUEST['farveKoder'];

 
  mysql_query("INSERT INTO tegninger (brugerId, skabId, tegningNavn, farveKoder) VALUES ('$brugerId', '$skabId','$tegningNavn', '$farveKoder',)") or die(mysql_error());;
  ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  <table width="300" border="0" cellpadding="0" cellspacing="10">
    <tr>
      <td>brugerId</td>
      <td><? echo ".$_SESSION[brugernavn]." ?></(fra gem_validerbruger.php)</td>
    </tr>
    <tr>
      <td>skabId</td>
      <td><input name="skabId" type="text" id="skabId"></td>
    </tr>
    <tr>
      <td>tegningNavn</td>
      <td><input name="tegningNavn" type="text" id="tegningNavn"></td>
    </tr>
    <tr>
      <td>farveKoder </td>
      <td><input name="farveKoder" type="text" id="farveKoder"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Send"></td>
    </tr>
  </table>

  <p>Gem tekstfelternes v&aelig;rdi i  kolonnerne &quot;brugerId&quot;, &quot;skabId&quot;, &quot;tegningNavn&quot;, &quot;farveKoder&quot; i tabellen &quot;tegninger&quot; </p>
</form>
</body>
</html>
__________________________-

Hvordan kan det være den ikke viser brugerId'et???
Avatar billede puddelundercover Nybegynder
06. april 2004 - 14:24 #1
Ved hurtig gennemgang;

Din method i formen er post, men du bruger $_GET['brugernavn']... Har måske læst forkert, men prøv $_POST['brugernavn'] istedet...
Avatar billede nickyc Nybegynder
06. april 2004 - 14:26 #2
får fejlmeddelsen

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

på gem_tegning.php????
Avatar billede Slettet bruger
06. april 2004 - 14:30 #3
Prøv at fjerne paranteserne i din QUERY
Avatar billede puddelundercover Nybegynder
06. april 2004 - 14:33 #4
'$farveKoder',)")

fjern det sidste ,
Avatar billede nickyc Nybegynder
06. april 2004 - 14:42 #5
det rettede det, men det viser stadig ikke brugerId'et?
Avatar billede -cls- Nybegynder
06. april 2004 - 14:43 #6
Husk at starte session for alle php-sider du laver. Hver side skal indledes med
[code]session_start();[/code]
Der er vel ingen grund til først at starte session, når der sendes brugernavn.

Endvidere; en session SKAL startes før der sendes output til brugeren. Derfor; indled dit php dokument som følger:
[code]
<?php
session_start();
?>
[/code]
Avatar billede nickyc Nybegynder
06. april 2004 - 14:49 #7
Ok, det virker delvist nu! Nu viser den brugernavnet, men skal have det ændret til den viser selve ID'et...

Inde i databasen har hver bruger et id, så det jeg skal displayet er id'et...
Avatar billede nickyc Nybegynder
06. april 2004 - 15:21 #8
????
Avatar billede -cls- Nybegynder
06. april 2004 - 15:26 #9
Ja - det må du nok sige ;) Jeg tror ikke det er helt klart, hvad du spørger om. Kan du ikke formulere dig lidt mere præcist?

Umiddelbart er det vel linjen:
<td><? echo ".$_SESSION[brugernavn]." ?></(fra gem_validerbruger.php)</td>
Der er årsagen til at brugernavnet vises i stedet for id - jeg ville dog umiddelbart tro, at linjen også vil generere en fejl, da sessionsvariablen skal læses med $_SESSION["brugernavn"]? Hvis du har lagret brugerid i en sessionsvariabel, så kan du vel bare kalde den her i stedet for med $_SESSION["brugerid"] - eller hvad du nu har kaldt id-variablen.
Avatar billede nickyc Nybegynder
06. april 2004 - 22:10 #10
nej, for jeg har ikke noget i gem_brugervalidering.php der bruger "brugerid" - der bliver der kun lagt brugernavn og kodeord - ID'et skal jo hentes ud af der hvor ens brugernavn er i databasen.... Hvis du forstår havd jeg mener?
Avatar billede -cls- Nybegynder
06. april 2004 - 22:23 #11
Ok. Hvad så med at hente id fra brugertabellen:
$hente = mysql_query("SELECT brugerid FROM bruger WHERE (brugernavn='$brugernavn') AND (kodeord='$kodeord')") or die(mysql_error());
if($row = mysql_fetch_assoc($hente))$_SESSION["brugerid"]=$row[0];
Avatar billede nickyc Nybegynder
07. april 2004 - 09:53 #12
ok, hvis jeg nu ændrer koden til dette du har skrevet, hvad vil der så ske helt præcis? - skal jeg så ikke også ændrer resten af sessions til  $_SESSION['brugerid']; ??
Avatar billede nickyc Nybegynder
07. april 2004 - 10:04 #13
hmm, lukker
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