Avatar billede jkn83 Praktikant
12. juli 2010 - 23:13 Der er 7 kommentarer og
1 løsning

individuelt billed ved login, via mysql

Har lavet et lille login script som skal fungere med individuelt billed der gemmes i mysql... Har lavet en tabel i mysql som hedder tusers, der under er der felterne username, password, billed.

Billed bruger jeg til at gemme billed navnet i... eks.: test.jpg

Når brugeren logger ind skal de jo selvfølgelig se billedet som hører til deres login.

Min løsning til dette som tilsyneladende ikke virker, er denne:
----------------

<?php
include("conf.inc.php");
session_start();

if ($_SESSION['logged'] != 1) {
    header("Location: login.php");
    exit();
}

    $q = mysql_query("SELECT * FROM `tusers` WHERE username = '$username' AND password = '$password'") or die (mysql_error());
    $r = mysql_num_rows($q);
    $n = mysql_fetch_assoc($q);
   
    echo '<center><img src="top.png" border="0" /></center>';
    echo '<center>Welcome treaure hunter!<br />Your clue...</center><br />';
    ?>
    <center><img src=\"<?php '.$n["billed"].' ?>\"><img /></center><br />
    <?php

echo "<center><a href=\"logout.php\">Logout?</a></center>"
?>

---------------

Så mit spørgsmål er så, hvad gør jeg forkert?
Nogen der lige har en hurtig ting de kan forklare der er galt eller måske rette koden til det rigtige og vise det ?

Anyways, håber en kan hjælpe :)

takker på forhånd.
Avatar billede majbom Novice
13. juli 2010 - 07:22 #1
prøv med:

<img src="<?php echo $n["billed"];?>"><img />


og som en lille note kan jeg lige fortælle at <center> er deprecated, og bør ikke bruges. du kan i stedet smide teksten i en div eller span...
Avatar billede jkn83 Praktikant
13. juli 2010 - 17:05 #2
Den ser nu sådan ud, og viser stadig ikke billedet :(

<?php
include("conf.inc.php");
session_start();

if ($_SESSION['logged'] != 1) {
    header("Location: login.php");
    exit();
}

    $q = mysql_query("SELECT * FROM `tusers` WHERE username = '$username' AND password = '$password'") or die (mysql_error());
    $r = mysql_num_rows($q);
    $n = mysql_fetch_assoc($q);
   
    echo '<center><img src="top.png" border="0" /></center>';
    echo '<center>Welcome treaure hunter!<br />Your clue...</center><br />';
    ?>
    <div align="center"><img src="<?php echo $n["billed"]; ?>"><img /><br />
    <?php

echo '<a href=\"logout.php\">Logout?</a>';
?>
<br /><br />
</div>
Avatar billede majbom Novice
13. juli 2010 - 20:24 #3
det er nok ikke det der er galt, men du skal nok rette det til:

<div align="center"><img src="<?php echo $n["billed"]; ?>" /><br />


hvad skriver den i kilden? mht billedet...
Avatar billede jkn83 Praktikant
13. juli 2010 - 21:55 #4
nej det er ikke det der er galt... Hvis jeg viser kilden via google chrome er img tagget der godt nok, men der er ingen "input" i tagget..

Så tænker at det måske kan være noget med hvordan den henter der fra mysql ? eller om den overhovedet får det hentet...
Avatar billede majbom Novice
13. juli 2010 - 22:11 #5
hvad for et input-tag? mener du src-attributen?
Avatar billede jkn83 Praktikant
13. juli 2010 - 22:57 #6
jeg mener  $n["billed"] ser blank ud i kilden da den ikke har hentet noget fra mysql... Og har gemt en linie under billed der der hedder test.jpg og lagt billed op på server der hedder test.jpg

Så hvis den ikke kan vise inholdet af "billed" i mysql, henter den det vel heller ikke ?
Avatar billede majbom Novice
14. juli 2010 - 06:21 #7
nej det gør den nok ikke..

når du nu alligevel har:

$r = mysql_num_rows($q);

kunne du jo passende udskrive den, eller bruge den til at tjekke om der rent faktisk hentes noget...
Avatar billede jkn83 Praktikant
20. juli 2010 - 13:52 #8
Fik løst problemmet, men fandt ikke fejlet i det tidligere kode, så endte med at skrive den om.

Hvis nogen kan bruge koden i den sammenhæng, smider jeg den lige nedenunder... Siden skulle bruges af en kammi, der skulle køre noget treasure hunt... Når de kom hen til det sted som første hint refererer til, får de et nyt "hint" i form af tal og bogstaver som de logger ind med, og på den måde får de det nye... osv...

Koden som nu virker:

<?php
session_start();
include "conf.inc.php";

if($_GET["doLogin"])
{
    $uName = mysql_real_escape_string($_POST["username"]);
    $pWord = md5(mysql_real_escape_string($_POST["password"]));

    $q = mysql_query("SELECT * FROM tusers WHERE username='$uName'")or die(mysql_error());
    $n = mysql_num_rows($q);

    if($n > 0)
    {
        $r = mysql_fetch_assoc($q);
        if($r["password"] == $pWord){
            $_SESSION["userid"] = $r["user_id"];
            Header("Location: index.php");
        }else
        {
            echo '';
        }
    }else
    {
        echo '
        <div align="center"><object width="550" height="400">
            <param name="movie" value="thxyoucome.SWF" spry:repeat="0">
            <embed src="thxyoucome.SWF" width="467" height="350">
            </embed>
            </object></div>
            ';           
    }
}
if($_SESSION["userid"])
{
    ?>
        <html>
        <head>
        <title>Treasure Hunter</title>
        </head>
        <body bgcolor="#4d4a37" text="#ffb400"><div align="center">
    <?php
   
    //til at hente tabel input -> '.$res["username"].'
   
    $getUser = mysql_query("SELECT * FROM tusers WHERE user_id='$_SESSION[userid]'")or die(mysql_error());
    $res = mysql_fetch_assoc($getUser);
    echo '<img src="top.png" border="0" />';
    echo '<br />Welcome Treasure Hunter!<br />This is your clue...<br /><br /><img src="'.$res["billed"].'"</img>';
    echo '<br /><br /><a href="logout.php" style="text-decoration:none">Logout?</a>';
    ?>
        </div>
        </body>
        </html>
    <?php
}else
{
        $count = file("hits.txt");
        $count_gl = $count[0];
        $ny_count = ++$count_gl;
        $data = fopen("hits.txt","w");
        $skriv = fwrite($data,$ny_count);
        fclose($data);
       
        echo '<div align="center"><img src="top.png" border="0" /></div>';
        echo '<div align="center"><img src="mainside.png" border="0" /></div>';
        echo '
        <html>
        <head>
        <title>Treasure Hunter</title>
        </head>
        <body bgcolor="#4d4a37" text="#ffb400"><font color="#ffb400">
        <form method="POST" action="index.php?doLogin=do">
        <table align="center">
        <tr><td colspan="3" align="center">Login for clues...</td></tr>
        <tr><td width="80">Letters:</td>
        <td width="8"></td>
        <td width="200"><input name="username" size="18" type="text" border="1"></td></tr>
        <tr><td width="80">Numbers:</td>
        <td width="8"></td>
        <td width="200"><input name="password" size="18" type="text" border="1"></td></tr>
        <tr><td></td>
        <td></td>
        <td><input type="submit" name="login" value="Login"></td></tr>
        </table>
        </font>
        </form>
        ';
        echo "<table  align=\"center\" style=\"border: 1px solid #000000; border-collapse: collapse;\"><tr><td style=\"text-align: center; background-color: #4d4a37; border-bottom: 1px solid #000000;\"><b><font color=\"#ffb400\"> Hits total <br />$ny_count</font></b></td></tr></table>";
}
?>
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