Avatar billede tobrukDk Novice
27. marts 2012 - 22:42 Der er 7 kommentarer og
2 løsninger

kun profil egen blog med ID indhold

Hej


Det er sådan lige pt arbejder jeg med en blog hvor bruger skal kun skrive noget ind i og det er sådan at jeg har lave en include fil op i toppe..

om sagt hvis en anden bruger logge ind (bruger1)og så ser han kun hans egen id-blog indhold og ikke den andre brugers id.. så det er kun hans indhold og infomation osv.. :)


    <div id="topright">
    <ul>
    <?php
    $id = $_GET["id"];
    $result = mysql_query("SELECT * FROM `brugere` WHERE id = $id");
    while($row = mysql_fetch_array($result))
    {
    ?>
    <li><a href="blog_indleag.php?id=<?php echo $row["id"];?>">Blog indlæg</a></li>
    <?php
    }
    ?>
    <li><a href="logout_helt.php">Log ud</a></li>
    </ul>
    </div>


sådan her ser min kode ud


og der komme de her fejl frem :)

Notice: Undefined index: id in C:\xampp\htdocs\ny\include\logud.php on line 4

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\ny\include\logud.php on line 6



Tror nok det her er bedste at gå videre med eller tag videre her fra ;


men hvis jeg valg at gøre sådan her

    <?php
    $result = mysql_query("SELECT * FROM `brugere`");
    while($row = mysql_fetch_array($result))
    {
    ?>
    <li><a href="blog_indleag.php?id=<?php echo $row["id"];?>">Blog indlæg</a></li>
    <?php
    }
    ?>

men stadig har log ud function med bare ikke tag den med i den her om gange .:)

kommer der ingen fejl men der i mode kommer der 2 frem af "blog indlæg" og jeg har kigge på link adr og de er ikke ens
ligesom sådan her;

http://localhostr.com/files/Y0jY2KY/capture.png

jeg vil bare gerne have at det kun er bruges egen ID som vise frem og kun en link som bliver vist frem på siden:


    while($row = mysql_fetch_array($result))
    {


Den skal jeg nok gør et eller andet ved sådan at den ikke køre igen og igen osv... :)



Håber du kan hjælp mig frem til at den ikke køre igen og igen.... :)

Det vil være super hvis du kun klare det på en god måde så jeg også lærte noget godt ved det her :)

Glæder mig til at høre fra dig og se om du kan hjælp mig frem til det rigtigt svar for mig :D
Avatar billede Slettet bruger
28. marts 2012 - 01:43 #1
"Undefined index" betyder normalt at du refererer til et ikke-eksisterende index i et array.

Her, sandsynligvis, fordi du kalder siden uden en GET-parameter ved navn "id".
- F.eks.: dinSide.php?id=4711

Advarslen fra mysql_fetch_array() - er en følgefejl: $result indeholder ikke noget (pga. første fejl).


Men derudover er din kode et gabende hacker-hul !!!
- det er lige til at tilføje skadelig SQL-kode til id-parameteren: ("?id=4711%3Bdelete from brugere")

Du skal, som minimum "vaske" id-parameteren. F.eks. med $id = (int) $_GET[id'];

Men endnu bedre: Læs oleboles guide: http://www.eksperten.dk/guide/1480
Avatar billede tobrukDk Novice
28. marts 2012 - 12:45 #2
Undskyld jeg spørger lidt dumt men hvad skal jeg sådan kig efter ?

Skal jeg kig efter der hvor der stå ; Eksempel på en SELECT forespørgsel, hvor id er større en værdi, hentet fra dokumentets URL:
Avatar billede Slettet bruger
28. marts 2012 - 14:27 #3
Du skal læse det hele - Det er ikke et quick-fix.

Det handler om at bruge mysqli_xxx() funktioner i stedet for de gamle mysql_xxx() funktioner.

Det er betydeligt mere kompliceret - kræver flere steps, for at udføre det samme.
- men er meget sikrere mod SQL-injection angreb - og også mod hovsa-fejl i ens egen kode : )

Og SÅ svært er det heller ikke - når først man har fanget ideen : )
Avatar billede tobrukDk Novice
28. marts 2012 - 19:20 #4
som jeg har forstår så skal jeg bygge mysql i hver gang :D
Avatar billede tobrukDk Novice
28. marts 2012 - 19:59 #5

$res = mysqli_query("SELECT * FROM `brugere`");
                    while ($row = mysqli_fetch_array($res, MYSQL_ASSOC)) {


er det sådan her du ville have det eller hvad man siger ?
Avatar billede tobrukDk Novice
28. marts 2012 - 20:34 #6

<?php
                    $id = $_GET["id"]
                    $res = mysqli_query("SELECT * FROM `brugere` WHERE id = $id");
                    while ($row = mysqli_fetch_array($res, MYSQL_ASSOC)) {
                ?>


det her har jeg også prøve xD
Avatar billede tobrukDk Novice
28. marts 2012 - 22:55 #7
Jeg forstår ikke den måde som det er bygge op på .. overhovedet :(
Avatar billede tobrukDk Novice
28. marts 2012 - 23:08 #8

<?php
                $s = "SELECT * FROM brugere WHERE id = 41";
                $q = mysql_query($s);
                if(mysql_num_rows($q)==1)
                    {
                        $rows = mysql_fetch_assoc($q);
            ?>
                <li><a href="blog_indleag.php?id=<?php echo $rows["id"];?>">Blog indlæg</a></li>
            <?php
                    }
            ?>


fik gøre det sådan her ;

men ja jeg prøve at for tag mig sammen til at for kigge på mysqli så min hjemmeside ikke bliver hacket eller lign :) da jeg ikke ønsker det :D men der i mode lukker jeg selv den her da jeg har klart den men dog i mode kigger jeg også på at jeg vil lærer mysqli på en god måde så vi del point sammen :)
Avatar billede Slettet bruger
28. marts 2012 - 23:50 #9
Læs oleboles guide - 5 gange : )
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