Gegevens van bepaalde user ophalen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

John breedveld

john breedveld

06/05/2015 15:18:30
Quote Anchor link
graag zou ik wat meer info willen over

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="profiel.php"><?=$row['username'];?></a>


om de pagina profiel opte maken
om de gegevens die bij die username horen

database users tables username,first_nam,last_name enz

nu weet ik niet meer hoe of wat

pagina is ook nog eens beveiligt met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?PHP
require_once('../lib/connections/db.php');
include('../lib/functions/functions.php');
include('../lib/functions/ps_pagination.php');

checkLogin('2');

$message="";
if(isset($_GET['message'])){
    $message = strip_tags($_GET['message']);
    }

    
$error="";
if(isset($_GET['error'])){
    $error = strip_tags($_GET['error']);
    }

    
$getuser = getUserRecords($_SESSION['user_id']);
?>

is er iemand die mijn kan helpen
- Aar -:
Ik heb de titel aangepast naar iets wat duidelijker is, en je vraag aangeeft.
Gewijzigd op 06/05/2015 15:44:32 door - Ariën -
 
PHP hulp

PHP hulp

23/12/2024 03:04:17
 
- SanThe -

- SanThe -

06/05/2015 15:36:11
Quote Anchor link
Zet het id uit de database er bij.

<a href="profiel.php?id=123">.............
 
- Ariën  -
Beheerder

- Ariën -

06/05/2015 15:42:29
Quote Anchor link
$row['username'] is niet meer dan een array die de waarde van het element 'username' ophaalt.
maar nu is de vraag: Waar komt die array dan vandaan?

Als we er van uit gaan dat het uit de database komt, dan sturen we eerst een query naar de database waarin we de nodige gegevens opvragen vanuit een bepaalde MySQLi-connectie ($con) van een bepaald ingelogde userID.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$result
= mysqli_query($con, "SELECT id username,first_name,last_name FROM users WHERE id='".$_SESSION['user_id']."'");
?>


Okee, hier kunnen we weinig mee, dus moeten we eerst de boel 'fetchen' zodat we deze in een array kunnen plaatsen. Dit doen we in $row:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$result
= mysqli_query($con, "SELECT id username,first_name,last_name FROM users WHERE id='".$_SESSION['user_id']."'");
$row = mysqli_fetch_assoc($result);
?>


Vanaf dan hebben we alle data uit de database is een array, die we dan in $row kunnen opvragen. En dus ook in een link:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="profiel.php?id=<?=$row['id'];?>"><?=$row['username'];?></a>



Verder is dit geen voorbeeld die je direct moet overnemen, omdat foutafhandeling ontbreekt. Ik raad je aan om dit artikel eens door te lezen: http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling--query--sql/735/

Let op dat dit over de MySQL-functies gaat, terwijl ik de vernieuwde MySQLi-functies aanbeveel. Er zullen uiteraard enkele verschillen zijn, met enkele paramaters in de functies, maar dat valt via php.net zelf wel te ontdekken.
Gewijzigd op 06/05/2015 15:46:19 door - Ariën -
 
John breedveld

john breedveld

06/05/2015 18:50:25
Quote Anchor link
ik krijg het voor elkaar dat hij de pagina aan roept met id
nu wil ik infor matie krijgen alleen lukt mijn dit niet


Toevoeging op 06/05/2015 18:51:08:

ik heb zoon idee dat als eerst moet staaan if set id get nog wat
 
- Ariën  -
Beheerder

- Ariën -

06/05/2015 18:58:17
Quote Anchor link
Tja, dan zijn we toch benieuwd naar je relevante code die je nu hebt...
Gewijzigd op 06/05/2015 19:06:05 door - Ariën -
 
John breedveld

john breedveld

06/05/2015 20:44:00
Quote Anchor link
de lijst die algeemen geshowd word ziet als volgt uit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  
      <!--close gedeelte4-->
      
      <!-- home1-->
      
        <div class="content_item">
<link rel="stylesheet" type="text/css" href="../css/style.css" media="screen" />

    <div align="right"><a href="index.php">Home</a> | <a href="change_pass.php">change password</a> | <a href="edit_profile.php">Edit Profile</a> | <a href="manage_users.php">Manage Users</a> | <a href="site_settings.php">Manage Site Settings</a> | <a href="log_off.php?action=logoff">sign out</a></div>
    <p><?php if(empty($getuser[0]['first_name']) || empty($getuser[0]['last_name'])){echo $getuser[0]['username'];} else {echo $getuser[0]['first_name']." ".$getuser[0]['last_name'];} ?>, manage users.</p>
    <?
      //Select all users and display paginated results
        $sql = "SELECT * FROM users WHERE level_access != 1";
        $res = mysql_query($sql) or die(mysql_error());
        $numRows = mysql_num_rows($res);
        if ((mysql_num_rows($res)) > 0){
        $pager = new PS_Pagination($conn, $sql, 10, 5, "");
      ?>

        <p>There are <?=$numRows;?> users on this site.</p>
        <? if (!empty($message)){echo "<div class='message'>".$message."</div>";} ?>
        <? if (!empty($error)){echo "<div id='error'>".$error."</div>";} ?>
        <table width="100%" border="1" cellspacing="1" cellpadding="1">
            <tr>
                <td>Foto</td><td>Gebruikersnaam</td><td>Naam</td><td>City</td><td>Lid sinds</td>
            </tr>
            <?
               $countLoop
= 0;
               $rs = $pager->paginate();
                if(!$rs) die(mysql_error());
                    while($row = mysql_fetch_array($rs)){
                     if($row['active'] == 1){$active = "<span style='color:#008040;'>Active</span>";}
                     if($row['active'] == 2){$active = "<span style='color:#f40000;'>Suspended</span>";}
            ?>
    
            <tr>
                <td><?="<img src='".$row['thumb_path']."' width='150' height='100' border='0' alt='' hspace='2' />"?></a></td><td><a href="gebruiker.php?id=<?=$row['id'];?>"><?=$row['username'];?></a></td><td><?=$row['first_name']." ".$row['last_name'];?></td><td><?=$row['city'];?></td><td><?=$row['reg_date'];?></td>
            </tr>
            <? $countLoop++; } ?>
        </table>
        <table>
            <tr>
                <td><?= $pager->renderFullNav();?></td>
            <tr>
        </table>
            <? } else {    echo "<fieldset><p>There are currently no registered users!</p></fieldset>";} ?>
          
        </div><!--close content_item-->


hier van daan als ik op de naam klik
ziet de link er als volgt uit http://whatsappgroep.moffia.nl/users/gebruiker.php?id=5

tot zo ver gaat het goed alleen wat exact aan code werk moet er komen te staan
om profiel te voor zien van data die ik wil zien
ik heb de code gebruikt va u maar krijg geen results

Toevoeging op 06/05/2015 20:46:49:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    
        <th>Id</th>
        <th>Username</th>
        <th>Email</th>
    </tr>
<?php
$result
= mysqli_query($con, "SELECT id username,first_name,last_name FROM users WHERE id='".$_SESSION['user_id']."'");
$row = mysqli_fetch_assoc($result);
?>

    <tr>
        <td class="left"><?php echo $dnn['id']; ?></td>
        <td class="left"><a href="profile.php?id=<?php echo $dnn['id']; ?>">
        <?php echo htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); ?></a></td>
        <td class="left"><?php echo htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8'); ?></td>
    </tr>

</table>
 
- Ariën  -
Beheerder

- Ariën -

06/05/2015 20:48:57
Quote Anchor link
URL geeft een '404 - Not found'

Waarom gebruik je nou <? shorttags. Gebruik daarvan is af te raden.
Verder kan je in de while() loop vanaf regel 30 alle data uit je query ophalen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $row['username']; ?>
, of welke velden je maar ook gebruikt.
 
John breedveld

john breedveld

06/05/2015 21:18:21
Quote Anchor link
shorttags zaten in het script
boven script heb ik ook gekopieerd uit een bestaand
admin script en aan gepast op de data die ik wilden zien bovenste script mogen users wel zien
hier vandaan wil ik link creaceren wat de users wel mogen zien
alleen krijg ik geen result er uit
 
Frank Nietbelangrijk

Frank Nietbelangrijk

06/05/2015 21:20:54
Quote Anchor link
Knippen en plakken is voor je examen zakken. Geloof me: je hebt het verkeerde script. Het is ouderwets en niet logisch opgebouwd. Een pagina had uit minimaal twee delen moeten bestaan:
- php logica (je programma)
- de view (het genereren van HTML)
 
John breedveld

john breedveld

06/05/2015 21:26:26
Quote Anchor link
examen nee sorry maar ik zit niet meer op school heb toen de tijd geen php gehad was het maar waar
 
Frank Nietbelangrijk

Frank Nietbelangrijk

06/05/2015 21:30:16
Quote Anchor link
Ik vond het wel een mooie slogan. Maar het gaat om de gedachte er achter. Je leert niets van kopiëren en plakken. Ik adviseer om je eigen scripts te schrijven. stapje voor stapje, simpel omdat je dan tenminste begint met de eerste stap voordat je de tweede stap doet.
 
- Ariën  -
Beheerder

- Ariën -

06/05/2015 21:35:21
Quote Anchor link
Begin gewoon hier, en zorg dat je weet wat je doet:
http://phptuts.nl/view/39/
 
John breedveld

john breedveld

06/05/2015 21:41:01
Quote Anchor link
slogan haa voor ik wat geleerd heb met mijn bagger engels en nog een paar dingen
zitten we op html 10 phpmyadmin 5000.0,5 hahaa daarvoor haal ik van youtube en script een beetje kopieren en plak werk waardoor voor mijn mogelijk is ook nog iets van beginselen mee te krijgen
van lezen moet ik al helemaal niet hebben vna wat mijn ogen zien maken me handen
dat daar zulk commentaar op krijg vind ik best of ik er wat mee kan kwa veilig hied ik weet niet als oud script taal is wet ik ook niet zovaak stamp ik geen complete website uit de grond
 
- Ariën  -
Beheerder

- Ariën -

06/05/2015 21:43:24
Quote Anchor link
Sorry, maar ik kan weinig opmaken uit je bericht. Kan je wat duidelijker zijn, een paar leestekens kunnen al een enorm verschil maken.

Verder is de manier hoe je site in PHP opbouw niet verantwoord. Zie het als een huis zonder goede fundering, die in no-time weer in elkaar stort. Je wilt toch liever iets goed voor elkaar hebben?
Gewijzigd op 06/05/2015 21:47:22 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

06/05/2015 21:50:26
Quote Anchor link
Tja John. Je zegt dat wat je ziet je handen kunnen maken. Maar als je dan letters ziet moet je echt gaan lezen en daarvan zeg je dat dat niet aan jou besteed is. Maar eigenlijk is dat ook wat ik zeg:

Maak je eigen script.

(dan ga je vanzelf wel lezen, dat mot wel) :-)

Wat je nu aan het doen bent is dat je LES 5 probeert te klaren maar je mist LES 1,2,3 en 4 nog want die heb je overgeslagen. Anders gezegd: Je kijkt naar een machine die al draait maar je hebt geen idee hoe dat ding werkt.
Gewijzigd op 06/05/2015 21:52:39 door Frank Nietbelangrijk
 
Pipo Clown

Pipo Clown

06/05/2015 23:18:11
Quote Anchor link
Krijg je geen MySQL error ?

De query zoals Aar deze aan je gegeven heeft mist een komma maar dit zou je uiteraard zelf ook moeten zien.
 
John breedveld

john breedveld

07/05/2015 03:51:03
Quote Anchor link
http://www.phphulp.nl/php/tutorial/data-verwerking/het-id1-verhaal/290/standalone/562/ geweldig dit werkt
nog advies om de goed dicht te timmeren is dit genoeg
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php

require_once('../lib/connections/db.php');
include('../lib/functions/functions.php');

checkLogin('2');

$getuser = getUserRecords($_SESSION['user_id']);

?>

<html>
   <head>
<title>home </title>
</head>

<body>
<?
if(isset($_GET['id']) && is_numeric($_GET['id']))
{

    $id = $_GET['id'];
}

else
{
    $id = 1;    
}


$query = mysql_query("SELECT * FROM test WHERE id='". $id ."'");

$result = mysql_fetch_array($query);

echo $result['username'] ."<br />";
echo $result['email'] ."<br />";
?>


</body>
</html>
<?php
?>


Toevoeging op 07/05/2015 03:52:31:

advies zal zijn denk ik select alleen er uit halen wat je nodig heb
 
- Ariën  -
Beheerder

- Ariën -

07/05/2015 08:54:49
Quote Anchor link
Een mooie opzet waarmee je SQL-injection al dichttimmert, door alleen getallen toe te laten, echter raad ik toch echt aan om mysql(i)_real_escape_string() te gebruiken, waarin je de waarde van $_GET['id'] filtert.

Verder raad ik aan om voor de overzichtelijkheid de $result-variabele alleen te gebruiken voor mysql(i)_query's, en iets anders voor de resultaten uit je mysql(i)_fetch_array()-functie. Ikzelf gebruik dan vaak $data of $row.

Daarnaast is foutafhandeling zeker een must. Het lijkt een hoop code, maar uiteindelijk is het gewoon een functie die je steeds kan hergebruiken.

Als laatste moet je toch echt even afleren om die short-tags te gebruiken. Ik neem aan dat het een slip op de vinger geweest zal zijn. ;-)
 
John breedveld

john breedveld

07/05/2015 09:52:06
Quote Anchor link
Beste aar,
bedankt in iedergeval weet niet precies wat je er mee bedoelt (
om mysql(i)_real_escape_string() te gebruiken, waarin je de waarde van $_GET['id'] filtert.
e $result-variabele alleen te gebruiken voor mysql(i)_query's, en iets anders voor de resultaten uit je mysql(i)_fetch_array()-functie. Ikzelf gebruik dan vaak $data of $row.
fout af handeling )

shorttags ik geefje gelijk wat dat betreft kun je zeggen dat dit script weer niet helemaal uit mijn
vingers is gekomen maar een hoop selecterren knippen en plakken must be shane
 
- Ariën  -
Beheerder

- Ariën -

07/05/2015 09:58:53
Quote Anchor link
Kijk eens hier: http://www.w3schools.com/php/func_mysqli_real_escape_string.asp, dit moet een hoop verduidelijken, denk ik zo.

Let op dat dit wel over MySQLi gaat.
Gewijzigd op 07/05/2015 10:00:04 door - Ariën -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.