Avatar billede Slettet bruger
18. maj 2010 - 14:35 Der er 25 kommentarer og
1 løsning

Vedr, bruger konto i login system...

Hej...
Jeg har lavt mig et login system, og er igang med at når en bruger går ind under din konto, så skal alle hans oplysninger komme frem, men det har jeg også lavet, men den henter alle brugernes oplysninger, istedet for kun den valgte som er logget ind.

I kan se din konto kode her:

<?php $update_dinkonto = mysql_query("SELECT * FROM icmsbruger") or die("Der skete en fejl med mysql_query'en, update_dinkonto. " . mysql_error());
while ($row = mysql_fetch_array($update_dinkonto)){
echo "<table width=\"200\" border=\"0\">";
echo "<tr>";
echo " <td width=\"80\">Bruger nr:</td>";
echo "<td width=\"104\"><input type=\"text\" name=\"username\"  DISABLED  id=\"username\" value=\"$row[customerid_unique]\" /></td>";
echo "</tr>";
echo "<tr>";
echo " <td width=\"80\">Brugernavn:</td>";
echo "<td width=\"104\"><input type=\"text\" name=\"username\" id=\"username\" value=\"$row[username]\" /></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Email:</td>";
echo "<td><input type=\"text\" name=\"email\" id=\"email\" value=\"$row[email]\" /></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Navn:</td>";
echo " <td><input type=\"text\" name=\"name\" id=\"name\" value=\"$row[name]\" /></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Efternavn:</td>";
echo "<td><input type=\"text\" name=\"lastname\" id=\"lastname\" value=\"$row[lastname]\"/></td>";
echo " </tr>";
echo "<tr>";
echo "<td>Firma:</td>";
echo "<td><input type=\"text\" name=\"lastname\" id=\"lastname\" value=\"$row[firma]\"/></td>";
echo " </tr>";
echo "<tr>";
echo "<td>Adresse:</td>";
echo "<td><input type=\"text\" name=\"adress\" id=\"adress\" value=\"$row[adress]\"/></td>";
echo "<tr>";
echo "<td>Postnr:</td>";
echo "<td><input type=\"text\" name=\"zipcode\" id=\"zipcode\" value=\"$row[zipcode]\"/></td>";
echo "</tr>";
echo "<tr>";
echo "<td>By:</td>";
echo "<td><input type=\"text\" name=\"city\" id=\"city\" value=\"$row[city]\"/></td>";
echo "</tr>";
echo "<tr>";
echo "<td>&nbsp;</td>";
echo "<td><input type=\"submit\" value=\"Opdater din konto\" class=\"blue button\" name=\"update_dinkonto\" /></td>";
echo "</tr>";
echo " </table>";
echo "<p>&nbsp;</p>";
}
                if(mysql_num_rows($update_dinkonto) == "0") {
echo "Der blev ikke fundet noget indhold til denne konto, kontakt webmaster.";
}       
?>

Håber i kan bruge det til noget, og har lyst til at hjælpe mig..
Avatar billede ksoren Nybegynder
18. maj 2010 - 14:43 #1
SELECT * FROM icmsbruger

henter alle poster

SELECT * FROM icmsbruger WHERE username='xxx'

henter kun udvalgte poster
Avatar billede Slettet bruger
18. maj 2010 - 14:44 #2
ja men bliver bruger xxx ikke bare hentet så istedet for.
Avatar billede Slettet bruger
18. maj 2010 - 14:46 #3
hvis det er en database med 100 bruger ca, så kan jeg jo ikke bare angive hvad brugernavn der kan benytte sig af din konto, det må kunne køre over id eller noget, så den finder ud af når det er fx brugernavn: test.
Avatar billede showsource Seniormester
18. maj 2010 - 15:02 #4
Hvordan ved du at en bruger er logget ind ?
Avatar billede olebole Juniormester
18. maj 2010 - 15:06 #5
<ole>

Du er nødt til at angive et eller andet unikt ved den pågældende bruger, der skal se sine oplysninger. Det kan f.eks. være hendes brugernavn eller id. Det kommer an på, hvordan resten af applikationen hænger sammen - og det ved kun du  =)

/mvh
</bole>
Avatar billede Slettet bruger
18. maj 2010 - 15:27 #6
olebole:
kan man ikke taget det ud fra brugerens id, men ved ikke helt hvordan man gør det, har prøvet med fx.
SELECT * FROM icmsbruger WHERE id="$id" men det virker heller ikke.

showsource:
Hvad mener du med "Hvordan ved du at en bruger er logget ind ?"
Avatar billede Slettet bruger
18. maj 2010 - 15:30 #7
har også prøvet sådan her:

$id=$_GET['id'];

$update_dinkonto = mysql_query("SELECT * FROM icmsbruger WHERE id='$id'") or die("Der skete en fejl med mysql_query'en, update_dinkonto. " . mysql_error());

Men så bliver der ikke vist noget...
Avatar billede dkfire Nybegynder
18. maj 2010 - 15:46 #8
Har du et felt i din tabel som hedder id ?

Hvordan holder du styr på hvilken bruger som er logget ind ?
Avatar billede Slettet bruger
18. maj 2010 - 16:19 #9
min tabel:

$db_select = 'CREATE TABLE `icmsbruger` (
`id` INT (11) AUTO_INCREMENT,
`customerid_unique` varchar(150),
`username` varchar(150),
`password` varchar(150),
`email` varchar(250) ,
`name` varchar(250) ,
`lastname` varchar(250) ,
`firma` varchar(250),
`adress` varchar(250),
`city` varchar(250),
`zipcode` varchar(250),
`ip` varchar(250),
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)';

Det tror jeg ikke jeg har lavet det sådan at jeg kan holde styr på hvilke bruger som er logget ind, jeg har kun et login og register som jeg har lavet eller fostår ikke helt hvad du mener, login:

<?php
                   
$action = array();
$action['result'] = null;
                   
$text = array();
                   
if(isset($_POST['login'])){
                       
$username = trim(mysql_prep($_POST['username']));
$password = trim(mysql_prep(sha1($_POST['password'])));
                           
if(empty($username)){$action['result'] = 'error'; array_push($text,'Udfyld venligst brugernavn !.'); }
if(empty($password)){$action['result'] = 'error'; array_push($text,'Udfyld venligst password !.'); }
                   
if($action['result'] != 'error'){
$query = mysql_query("SELECT * FROM `icmsbruger` WHERE username = '$username' AND password = '$password'");
$number = mysql_num_rows($query);//Tæller antaller af resultater
if($number == 1) { //Hvis der kun er et resultat, bliver brugeren logget in
$_SESSION['loget_in'] = 1;
$_SESSION['username'] = $username;
$_SESSION['password'] = sha1($password); //Sætter session variablerne
$action['result'] = 'success';
array_push($text,'Du er nu logget ind, vent venligst ...!');
redirect_to("index_user.php");
}
if($number == 0){
$action['result'] = 'error';
array_push($text,'De intastede oplysninger var forkerte. !');
}
}
}
if (isset($_GET['logout']) && $_GET['logout'] == 1) {
$action['result'] = 'error';
                                array_push($text,'Du er nu logget ud.');
                            }
$action['text'] = $text;

?>
                   
<?php echo show_errors($action); ?>
                   
<form method="post" action="">
<table width="220" border="0">
<tr>
<td>Brugernavn</td>
<td>:</td>
<td><input type="text" name="username" /></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type="password" name="password" /></td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" value="Login" class="blue button" name="login" /></td>
</tr>
</table>
<p>&nbsp;</p>
</form>   

Tjek om de er logget ind, ellers send dem til login siden..

<?php
session_start();
if(!$_SESSION['loget_in'] == 1) {//Hvis brugeren ikke er logget in
header("Location: logind.php");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
} ?>       

håber i kan hjælpe mig...
Avatar billede olebole Juniormester
18. maj 2010 - 16:20 #10
dkfire >> Ja, ellers ville vi have hørt om en SQL-fejl  =)

prowdesign >> Hvad har du i variablen $id? Hvad sker der her:

$id=$_GET['id'];

print "ID: ".$id."<br>\r\n";

$update_dinkonto = mysql_query("SELECT * FROM icmsbruger WHERE id='$id'") or die("Der skete en fejl med mysql_query'en, update_dinkonto. " . mysql_error());

print "Antal fundne: ".mysql_num_rows($update_dinkonto)."<br>\r\n";
Avatar billede olebole Juniormester
18. maj 2010 - 16:21 #11
- og så bør du nok udføre et lidt mere effektivt kald:

$update_dinkonto = mysql_query("SELECT * FROM icmsbruger WHERE id='$id' LIMIT 1") or die("Der skete en fejl med mysql_query'en, update_dinkonto. " . mysql_error());
Avatar billede Slettet bruger
18. maj 2010 - 16:33 #12
jeg bruger ikke $id=$_GET['id']; til noget, det var bare noget jeg ville prøve, men hvordan får jeg den til at hente fx, id 1 når bruger med id 1 er logget ind..
Avatar billede dkfire Nybegynder
18. maj 2010 - 16:34 #13
olebole: burde spørge ikke bruge en værdi fra hans/hendes session i stedet for fra URL'en ?

prowdesign: Eftersom du gemmer brugernavnet i din session variabel kan du bruge denne til at slå op i databasen:

SELECT email, name, lastname, firma, adress, city, zipcode FROM `icmsbruger` WHERE username = $_SESSION['username']
Avatar billede Slettet bruger
18. maj 2010 - 16:42 #14
Hvis jeg bruger:

$update_dinkonto = mysql_query("SELECT * FROM `icmsbruger` WHERE username = $_SESSION['username']") or die("Der skete en fejl med mysql_query'en, update_dinkonto. " . mysql_error());

Får jeg fejlen..

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\projekt\dinkonto.php  on line 59
Avatar billede dkfire Nybegynder
18. maj 2010 - 16:49 #15
Det er fordi du ikke har bruge arrays i strenge på den måde:

$update_dinkonto = mysql_query("SELECT * FROM `icmsbruger` WHERE username = '".$_SESSION['username']."'") or die("Der skete en fejl med mysql_query'en, update_dinkonto. " . mysql_error());
Avatar billede Slettet bruger
18. maj 2010 - 16:54 #16
Det virkede mange mange tak, smid et svar hvis du vil have points...
Avatar billede Slettet bruger
18. maj 2010 - 21:14 #17
Hej tror i, i kan hjælpe mig med en sidste ting, jeg har lavt formen til at kunne opdatere brugerns indhold, men jeg opdaterer alle bruger på en gang, kan i hjælpe mig med det måske...

if(isset($_POST['update_dinkonto'])){
$username = $_POST['username'];
$email = $_POST['email'];
$name = $_POST['name'];
$lastname = $_POST['lastname'];
$firma = $_POST['firma'];
$adress = $_POST['adress'];
$city = $_POST['city'];
$zipcode = $_POST['zipcode'];
$result = mysql_query("UPDATE `icmsbruger` SET `username`='$username', `email`='$email', `name`='$name', `lastname`='$lastname', `firma`='$firma', `adress`='$adress', `city`='$city', `zipcode`='$zipcode' WHERE `id`='$id'");
if($result == true){
header("location: dinkonto.php?message_dinkonto=1");
}

}
Avatar billede Slettet bruger
18. maj 2010 - 21:25 #18
har også prøvet sådan her:

<?php
session_start();
if(!$_SESSION['loget_in'] == 1) {//Hvis brugeren ikke er logget in
header("Location: logind.php");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}

require ("masterconnect.php");
function secure($string){
$string = addslashes($string);
$string = htmlspecialchars($string);
   
return $string;
}


// If user pressed "update_dinkonto" button
if(isset($_POST['update_dinkonto'])){
$username=$_POST['username'];
$email=$_POST['email'];
$name=$_POST['name'];
$lastname=$_POST['lastname'];
$firma=$_POST['firma'];
$adress=$_POST['adress'];
$zipcode=$_POST['zipcode'];
$city=$_POST['city'];

$query = "UPDATE icmsbruger SET username = '$username', email = '$email', name = '$name', lastname = '$lastname', firma = '$firma', adress = '$adress', zipcode = '$zipcode', city = '$city' WHERE username = '".$_SESSION['username']."'";
mysql_query($query);
echo "Record Updated";
mysql_close();
}
?>

Men den opdatere indholdet på alle brugere..
Avatar billede dkfire Nybegynder
18. maj 2010 - 21:40 #19
eftersom du har opdateret hele din tabel, har alle rækker så ikke samme brugernavn ?

Og hvad sker der når du kører den sidste kode ?
Avatar billede Slettet bruger
19. maj 2010 - 07:54 #20
jov det har de, den opdaterer det samme som jeg self skrev i formen, men den ændre alle felter i alle brugere.. det skal den jo ikke, den skal kun ændre for den pågældene bruger..
Avatar billede Slettet bruger
19. maj 2010 - 12:47 #21
jeg har selv fundet ud af det, men tak alligvel.. LUKKES...
Avatar billede dkfire Nybegynder
19. maj 2010 - 13:12 #22
Hvis du forventer fremover at modtage hjælp af andre, så skal du blive MEGET bedre til at sætte pris på den hjælp du får.
At lukke et spørgsmål og tage point selv, når du nu har fået en hel del kvalificeret hjælp, fremmer ikke min lyst til at hjælpe dig fremover.
Avatar billede olebole Juniormester
19. maj 2010 - 14:52 #23
Velkommen til Eksperten  =)
    http://expfaq.dk/behandling_af_svar#behandling_af_svar
Avatar billede Slettet bruger
19. maj 2010 - 16:45 #24
Hov. undskyld det var der bare en i en tidligere tråd der sagde jeg skulle, men det vil jeg selvfølgelig aldrig gøre mere..
Avatar billede Slettet bruger
19. maj 2010 - 16:48 #25
Undskyld .. Undskyld.. :((
Avatar billede Slettet bruger
19. maj 2010 - 17:00 #26
Men hvis der er nogen der vil have point, må vi jo finde ud af hvordan...
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