Avatar billede myarto Nybegynder
05. oktober 2005 - 21:40 Der er 10 kommentarer

Session - Link til profil ?

Hej eksperter. :-)

Her har jeg kode, med session på kunne godt tænke mig at vide hvad der er fejlen med koden?

<?
session_start();
?>
<? include "http://www.myarto.frac.dk/head.php"; ?>
<?
// Tjekker om brugeren er logget ind
if ($s_brugernavn && $s_password) {
?>
<?
mysql_connect("****", "****", "****") or die(mysql_error());
mysql_select_db("****") or die(mysql_error());

$query = mysql_query("SELECT * FROM brugersystem") or die(mysql_error());
$_SESSION['brugernavn'] = $brugernavn;
$_SESSION['fornavn'] = $fornavn;
$_SESSION['efternavn'] = $efternavn;
$_SESSION['email'] = $email;
$_SESSION['hjemmeside'] = $hjemmeside;
$_SESSION['alder'] = $alder;
$_SESSION['month'] = $month;
$_SESSION['year'] = $year;
$_SESSION['kon'] = $kon;
$_SESSION['id'] = $id;
?>
    <center><h3><?=$brugernavn?>s profil</h3></center>
    <table width=80%>
    <tr>
    <td width=40%><b>Brugernavn:</b></td>
    <td width=40%><?=$brugernavn?></td>
    </tr>
    <tr>
    <td width=40%><b>Navn:</b></td>
    <td width=40%><?=$fornavn?> <?=$efternavn?></td>
    </tr>
    <tr>
    <td width=40%><b>Email:</b></td>
    <td width=40%><?=$email?></td>
    </tr>
    <tr>
    <td width=40%><b>Hjemmeside:</b></td>
    <td width=40%><?=$hjemmeside?></td>
    </tr>
    <tr>
    <td width=40%><b>Født:</b></td>
    <td width=40%><?=$alder?>-<?=$month?>-<?=$year?></td>
    </tr>
    <tr>
    <td width=40%><b>Køn:</b></td>
    <td width=40%><?=$kon?></td>
    </tr>
    <tr>
    <td width=40%><b>Bruger nr.:</b></td>
    <td width=40%><?=$id?></td>
    </tr>
    </table><br><br><iframe src="profiltekst.php?id=<?=$id?>" width="100%" height="450" style="BORDER-TOP: 1px #666666 solid; BORDER-BOTTOM: 1px #666666 solid" frameborder="0"></iframe>
<? } else { ?>
<font color="red"><b>Fejl! Du var ikke logget ind. - Opret helere en bruger :-)
<?
}
?>
</body>
</html>

Men koden ville jeg gerne linke til min profil og f.eks. redigére min profil men denne kode er kun til at linke til ens profil :-)
Avatar billede jakobdo Ekspert
05. oktober 2005 - 21:51 #1
Ønsker du at kunne redigere din profil?
Avatar billede myarto Nybegynder
05. oktober 2005 - 21:53 #2
Nej bare linke til den når man er logget ind :-)
Avatar billede jakobdo Ekspert
05. oktober 2005 - 21:58 #3
Hvad mener du med et link?
Først skal du have rettet din kode, så den viser den korrekte profil.
Hvordan ønsker du løsningen?
Skal det være VIS MIN PROFIL eller VIS NAVNS PROFIL?
Altså så man kan se andres profiler også?
Avatar billede myarto Nybegynder
05. oktober 2005 - 22:02 #4
Det er kun den der er logget ind der kan se profilen sådan der, de har kan se den på en anden måde..

Jeg ønsker at linke til mine til uden at skrive ?id=1 f.eks. så bare profil.php også skal den komme ind i ens egen profil (altså den der er logget ind) :-)
Avatar billede jakobdo Ekspert
05. oktober 2005 - 22:09 #5
Så skal du lave en sql ala:
SELECT * FROM brugersystem WHERE brugerid = $_SESSION['id']

Men det kræver så igen du har gemt brugerid når personen logger ind.
Avatar billede myarto Nybegynder
05. oktober 2005 - 22:13 #6
Kan du skrive koden til det ?
Avatar billede myarto Nybegynder
05. oktober 2005 - 22:16 #7
Min login system ser sådan ud :-)

<?
mysql_connect("****", "****", "****");
mysql_select_db("****");
$query = mysql_query("SELECT brugernavn, password, email, id FROM brugersystem WHERE brugernavn='$brugernavn' AND password='$password'");
if (mysql_num_rows($query) == "0"){
?>
<center>
header ("locaton: tjek.php");
</center>
<?
} else {
while($r = mysql_fetch_array($query)) {
$s_brugernavn = $r["brugernavn"];
$s_password = $r["password"];
$s_email = $r["email"];
$s_id = $r["dato"];
}
session_start();
session_register ("s_brugernavn");
session_register ("s_password");
session_register ("s_email");
session_register ("s_id");
header ("location: side.php");
}
?>
Avatar billede 17196 Nybegynder
06. oktober 2005 - 06:56 #8
<?
$sql = "SELECT * FROM brugersystem WHERE brugernavn='$_SESSION['brugernavn']'";
$result = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_array($result)) {
$id = $row['id'];
$brugernavn= $row['brugernavn'];
?>           
<b><a href="profil.php?id=<?php echo "$id"; ?>"><?php echo "$brugernavn"; ?></a></b>
<?
}
?>
Avatar billede jakobdo Ekspert
06. oktober 2005 - 07:53 #9
Jeg ville rette dit login script til dette:

<?
mysql_connect("****", "****", "****");
mysql_select_db("****");
$query = mysql_query("SELECT brugernavn, password, email, id FROM brugersystem WHERE brugernavn='$brugernavn' AND password='$password'");
if (mysql_num_rows($query) == "0"){
?>
<center>
header ("locaton: tjek.php");
</center>
<?
} else {
while($r = mysql_fetch_array($query)) {
$s_brugernavn = $r["brugernavn"];
$s_password = $r["password"];
$s_email = $r["email"];
$s_id = $r["dato"];
}
session_start();
session_register ("s_brugernavn");
session_register ("s_password");
session_register ("s_email");
session_register ("s_id");
header ("location: side.php");
}
?>

Og en profil side kunne så se sådan her ud:

<?
mysql_connect("****", "****", "****");
mysql_select_db("****");
$query = mysql_query("SELECT brugernavn, password, email, id FROM brugersystem WHERE brugernavn='$brugernavn' AND password='$password'");
if (mysql_num_rows($query) == "0"){
?>
<center>
header ("locaton: tjek.php");
</center>
<?
} else {
while($r = mysql_fetch_array($query)) {
$s_brugernavn = $r["brugernavn"];
$s_password = $r["password"];
$s_email = $r["email"];
$s_id = $r["dato"];
}
session_start();
session_register ("s_brugernavn");
session_register ("s_password");
session_register ("s_email");
session_register ("s_id");
header ("location: side.php");
}
?>
Avatar billede jakobdo Ekspert
06. oktober 2005 - 07:56 #10
Pis, min copy/paste driller... Prøver lige igen!

Dit login script! (det er bedre at bruge: $_SESSION[] og ikke som du gør med session_register(), læs evt mere på www.php.net/session_start

<?php
session_start();
mysql_connect("****", "****", "****");
mysql_select_db("****");
$query = mysql_query("SELECT brugernavn, password, email, id FROM brugersystem WHERE brugernavn='" . $brugernavn . "' AND password='" . $password . "' LIMIT 1");
if (mysql_num_rows($query) == "0")
{
    header ("locaton: tjek.php");
}
else
{
    $r = mysql_fetch_array($query);
    $_SESSION['s_brugernavn'] = $r['brugernavn'];
    $_SESSION['s_password']  = $r['password'];
    $_SESSION['s_email']      = $r['email'];
    $_SESSION['s_id']        = $r['id']
    $s_id = $r["dato"];
    header ("location: side.php");
}
?>

Og så din profil side...

<?php
session_start();
mysql_connect("****", "****", "****");
mysql_select_db("****");
$query = mysql_query("SELECT * FROM brugersystem WHERE id=" . $_SESSION['s_id'] . " LIMIT 1");
if (mysql_num_rows($query) == "0")
{
    header ("locaton: tjek.php");
}
else
{
    $r = mysql_fetch_array($query);
    //Her skriver du så alle info ud...
    echo "Brugernavn: " . $r['brugernavn'] . "<br>";
    echo "Email: " . $r['email'] . "<br>";
    //osv....
}
?>
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