Avatar billede xob Nybegynder
18. november 2004 - 00:49 Der er 20 kommentarer

PHP/SQL - Oplysninger ud fra ID

Jeg vil gerne have det sådan at den finder id nummeret på brugeren der lige er logget ind. id nummeret ligger i samme tabel som bruger navnet og passwordet. sådan at jeg kan skrive brugerens navn og andet info ud ved at skrive den skal vælge ud fra id'et.

Den skal kunne skrive:

Navn: (hentes fra databasen)
Alder: (hentes fra databasen)
Email: (hentes fra databasen)
Point: (hentes fra databasen)

Sådan at "erik" for sine oplysninger frem på skærmen i oplysninger.php. Men går "Anders" ind på oplysninger.php skal han have sit info frem.
Avatar billede jaw Nybegynder
18. november 2004 - 01:01 #1
Og du har et login-system eller hvad? Så kan du jo sætte en session f.eks. der indeholder hans id.

På den side der så skal vise de ovenstående infos, kan du:

<?PHP

session_start()
//connect til db

$cmd = "SELECT navn, alder, email, point FROM tabel WHERE id = ".$_SESSION['id'];
$q = mysql_query($cmd);

$row = mysql_fetch_array($q);

echo "Dit navn er: " . $row['navn'] . " og du er " . $row['alder'] . "&aring;r gammel";

mysql_close()
?>

Eller noget i den stil :)
Avatar billede xob Nybegynder
18. november 2004 - 01:15 #2
Hva skal jeg skrive på loginsiden for at gemme det i session..
Avatar billede jaw Nybegynder
18. november 2004 - 01:16 #3
Der hvor du checker for om brugeren er logget ind, skal du sætte din session:

session_start();

//connect
//kontroller bruger

if(brugeren_er_logget_ind) {
  $_SESSION['id'] = $row['id'];
} else {
  //han er så ikke logget ind
}

Igen ved jeg jo ikke helt hvordan dit login-script ser ud, men håber du kan forstå det alligevel...
Avatar billede xob Nybegynder
18. november 2004 - 01:18 #4
Skær det hele ud i pap
Avatar billede jaw Nybegynder
18. november 2004 - 01:19 #5
Jeg gør det så godt jeg kan :) Hvis der skal mere til, så må du lige paste hvordan du kontrollerer om brugeren skal logges ind (accepteres på dit site) eller ej...
Avatar billede xob Nybegynder
18. november 2004 - 01:23 #6
altså mit login script?
Avatar billede jaw Nybegynder
18. november 2004 - 01:23 #7
Præcis
Avatar billede xob Nybegynder
18. november 2004 - 01:48 #8
<?php
session_start();
require("./CustomSql.inc.php");
$db = new CustomSQL($DBName);
$showtable = true;
$errortag = false;
if (!empty($userlogin)) {

if (empty($username)){
    $errortag = true;
    $errormsg = $error_usernameempty;
}

if (empty($password)){
    $errortag = true;
    $errormsg = $error_passwordempty;
}

$customerid = $db->logincheck($username,$password);
if ($customerid==0) {
    $errortag = true;
    $errormsg = $error_wrongpassword;
}

if (!$errortag){
    session_register("CID");
    $CID = $customerid;
    $showtable = false;
}

}

if (session_is_registered("CID")){
$showtable = false;
}

?>

<html>
<head>
<title><?php print "$front_login"; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=<?php print "$front_charset"; ?>">
<link rel="stylesheet" href="./style/style.css" type="text/css">
<script language="JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>

<body background="C:\XoB\XoB-Net Client\gfx\logon_ClientBG.png" text="#000000" leftmargin="0" topmargin="0">
<br><br><br>
<table width="500" border="0">
  <tr>
    <td><IMG SRC="C:\XoB\XoB-Net Client\gfx\login_ques.png" BORDER="0">
      </td>
      <td bgcolor="#FFFFFF" width="500">
    <table border="0" cellspacing="0" cellpadding="4" width="500">
        <tr>
          <td></td>
        </tr>
        <?php
        if ($errortag){
        ?>
        <tr>
          <td><font color="#FF0000"><?php print "$errormsg"; ?></font></td>
        </tr>
        <?php
        }
        ?>
        <tr>
          <td align="left">
            <?php
            if ($showtable){
            ?>         
<form action="<?php print "$PHP_SELF"; ?>" method="POST">
<table border=0 cellpadding=2 cellspacing=2>
<tr><td width="120"><b><?php print "$front_username"; ?> : </b></td><td><input type="text" name="username" value="<?php print "$username"; ?>" class="fields"></td></tr>
<tr><td><b><?php print "$front_password"; ?> : </b></td><td><input type="password" name="password" value=""  class="fields"></td></tr>
<tr><td><b>[<a href="register.php"><?php print "$front_registration"; ?></a>]</b>&nbsp;&nbsp;&nbsp;<b>[<a href="forgetpass.php"><?php print "$front_forgetpass"; ?></a>]</b></td><td><input Class="button" type="submit" name="userlogin" value="<?php print "$front_login"; ?>"></td></tr>
</table>
</form>
    <?php
    }
    else{
    ?>
        <b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                <a href="http://www.xob.frac.dk/client/ver 1/index.php">Continue</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <a href="modiinfo.php"><?php print "$front_modiinfo"; ?></a>&nbsp;|&nbsp;<a href="modipass.php"><?php print "$front_modipass"; ?></a><br>
    <?php

    }
    ?>
          </b></td>
        </tr>
        <tr>
          <td align="right">&nbsp;</td>
        </tr>
      </table>
      </td>
  </tr>
</table>

</body>
</html>
Avatar billede jaw Nybegynder
18. november 2004 - 01:55 #9
Okey... Der er problemet så, at jeg ikke kan se om dit script returnerer brugerens id, hvilket det sikkert ikke gør...

Og din CustomSql.inc.php includer garanteret også flere filer endnu?
Avatar billede jaw Nybegynder
18. november 2004 - 01:57 #10
Ohh, det er vel allerede i $CID?

Derfor vil jeg tro, at du på en anden side kan :

<?PHP
//connect
$q = mysql_query("SELECT navn, alder, email FROM table WHERE customerid = ".$_SESSION['CID']."");

$row = mysql_fetch_array($q);

echo "Dit navn er : " .$row['navn'];

mysql_close();
?>

Og så fremdeles. Men kig lige i din database og se hvad feltet der indeholder brugeres ID hedder...
Avatar billede xob Nybegynder
18. november 2004 - 04:01 #11
prøver lige at kikke på det senere..
Avatar billede xob Nybegynder
18. november 2004 - 17:31 #12
Jeg har skriftet over til et næmmere login script.. Så nu behøver jeg et script der kalder id frem og putter den i $id.
Avatar billede jaw Nybegynder
18. november 2004 - 17:41 #13
Så henter login-scriptet det vel ud et eller andet sted?

Der hvor du henter det fra databasen, skal du så bare:

$_SESSION['brugerid'] = $row['id']; //skal jo tilpasses din query etc.

Alle de steder hvor du så vil bruge din session - også der hvor du opretter den - skal du huske session_start(); i toppen af filen.
Avatar billede xob Nybegynder
18. november 2004 - 18:16 #14
<?

include('config.php');

mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$_SESSION['brugerid'] = $row['id'];

?>

Er det rigtigt?
Avatar billede xob Nybegynder
18. november 2004 - 18:17 #15
['brugerid'] er vel tabellen's navn i min database??
Avatar billede jaw Nybegynder
18. november 2004 - 22:39 #16
Nah, ikke helt rigtigt...

<?

include('config.php');

mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$brugernavn = $_POST['brugernavn'];  //felter brugeren skal udfylde for at logge ind
$adgangskode = $_POST['adgangskode'];

$q = mysql_query("SELECT id FROM tabellens_navn WHERE brugernavn = '$brugernavn' AND adgangskode = '$adgangskode'");

if(mysql_num_rows($q) > 0) {
  $_SESSION['brugerid'] = $row['id'];
}

?>

Det er en måde at gøre det på... Men igen, så kommer det jo an på hvordan det login-script du bruger nu er bygget op...
Avatar billede xob Nybegynder
18. november 2004 - 23:36 #17
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
Avatar billede jaw Nybegynder
18. november 2004 - 23:39 #18
Har du tilpasset denne til din database: $q = mysql_query("SELECT id FROM tabellens_navn WHERE brugernavn = '$brugernavn' AND adgangskode = '$adgangskode'"); ?

Og har du lavet de 2 forms med brugernavn og adgangskode?
Avatar billede xob Nybegynder
19. november 2004 - 01:09 #19
Jeg har flere file..

Login.php:

<html><head><link rel="stylesheet" type="text/css" href="http://www.xob.frac.dk/client/ver 1/style/style.css"></head><body>
<form action="login-ok.php" method="post">
Name: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="brugernavn" class="fields"><br>
Password: <input type="password" name="password" class="fields"><br>
<input type="submit" name="login" value="Login" class="button">
</form></body></html>
================================
Login-ok.php;

<?php
require("config.php");
$login = &$HTTP_POST_VARS['login'];

if(empty($login)) {
    echo 'Denne side kræver login adgang'; }
    else {

$brugernavn = &$HTTP_POST_VARS['brugernavn'];
$password = &$HTTP_POST_VARS['password'];


if(empty($brugernavn) OR empty($password)) {     echo 'Et af felterne er tomme'; }   
    else {

mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);


$result_user = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'")
or die (mysql_error());

$result_pw = mysql_query("select password from users where password = '$password'")
or die (mysql_error());
 
$array_user = mysql_fetch_array($result_user);
$array_pw = mysql_fetch_array($result_pw);
if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password) {
include('login-main.php');
}

else {
echo 'forkert password';
}

}
}
?>

Hva skal jeg gøre for at udskrive et navn på logon-ok.php
Avatar billede jaw Nybegynder
19. november 2004 - 01:10 #20
Er der et felt der hedder "id" i din database-tabel?
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