ID in url met $_GET functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

G Jansma

G Jansma

31/10/2015 17:20:23
Quote Anchor link
Graag zou ik jullie hulp hebben. Vorige week ben ik begonnen met een website maken in PHP, met data uit een database. Ik heb in het verleden diverse sites gemaakt, maar nooit op deze wijze. Het gaat niet onaardig, elk klein succesje wordt gevierd, maar ik kom er nu - na veel zoekwerk - even niet meer uit.

Ik maak een site met profielen die ik zelf heb aangemaakt. Nou wil ik dat elk id een eigen pagina krijgt (dus ?id=1), en ik heb het geprobeerd met de $_GET function, maar ik krijg het niet voor elkaar.

Het liefst zou ik ze vervolgens wijzigen in bv. /Lionel_Messi, maar dat moet via .htaccess denk ik?

Alvast bedankt (Y)
 
PHP hulp

PHP hulp

17/01/2022 06:07:42
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 18:30:40
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteEngine On
RewriteBase /
RewriteRule ^profiel/(.*)/$ profiel.php?username=$1


Zorg er wel voor dat je dan de unieke username opvraagt via GET. Dan valt dit eenvoudig te herschrijven met .htaccess.
Gewijzigd op 31/10/2015 18:30:59 door - Ariën -
 
G Jansma

G Jansma

31/10/2015 18:37:32
Quote Anchor link
- Ariën - op 31/10/2015 18:30:40:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteEngine On
RewriteBase /
RewriteRule ^profiel/(.*)/$ profiel.php?username=$1


Zorg er wel voor dat je dan de unieke username opvraagt via GET. Dan valt dit eenvoudig te herschrijven met .htaccess.


Bedankt voor je reactie Ariën. Het probleem is alleen dat het al een stap eerder misgaat, ik krijg dat met die $_GET namelijk niet voor elkaar.
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 18:44:48
Quote Anchor link
Wat heb je nu precies aan code?
 
G Jansma

G Jansma

31/10/2015 19:24:10
Quote Anchor link
- Ariën - op 31/10/2015 18:44:48:
Wat heb je nu precies aan code?


Ik had een tutorial gevolgd waarin dit de code was, daar ging het alleen om een registratiesysteem. Het probleem is alleen dat ik zelf niet goed begrijp wat er gebeurt, en het dan ook niet goed kan vertalen naar mijn eigen wensen.

Functions.php
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
<?php

require("config.php");

function
getId($username)
{

    $q = mysql_query("SELECT `id` FROM `profielen` WHERE `username`='".$username."'");
    while($r = mysql_fetch_assoc($q))
    {

        return $r['id'];
    }
}

    
?>



Index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
session_start();
require("functions.php");
if(!isset($_GET['id'])&&isset($_SESSION['username'])) header("Location: ?id=".getId($_SESSION['username']));
?>


Ik heb me er al behoorijk in verdiept, maar er gaat me toch nog veel boven de pet. Daarnaast heb ik geen 'username'. Ik heb van alles geprobeerd met bv 'naam' ipv 'username' maar ik krijg het niet voor elkaar. Ik roep alles aan dmv $row['naam'] ik weet niet hoe ik daar een variabele van kan maken.
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 19:27:21
Quote Anchor link
Welke velden kent je profielen-tabel?
 
G Jansma

G Jansma

31/10/2015 19:29:43
Quote Anchor link
id, naam, voornaam, tussenvoegsel, land, geboortedatum
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 19:33:16
Quote Anchor link
Hoe wil je dan een unieke naam in de URL gebruiken? Het enige wat nu uniek is zal het ID zijn. Want wat als er nu meerdere Jan Janssen's zijn?

De enige oplossing is om zelf een unieke username te genereren voor de gebruiker, en deze door hen aan te laten passen naar hun wens.
Gewijzigd op 31/10/2015 19:42:55 door - Ariën -
 
G Jansma

G Jansma

31/10/2015 19:46:48
Quote Anchor link
Daar zit wat in ja. Het ID is inderdaad uniek, dat is dan op zich genoeg toch? Ik heb het ook geprobeerd door 'username' te vervangen voor 'id' maar ook dan werkt het niet.



Toevoeging op 31/10/2015 19:49:19:

- Ariën - op 31/10/2015 19:33:16:
Hoe wil je dan een unieke naam in de URL gebruiken? Het enige wat nu uniek is zal het ID zijn. Want wat als er nu meerdere Jan Janssen's zijn?

De enige oplossing is om zelf een unieke username te genereren voor de gebruiker, en deze door hen aan te laten passen naar hun wens.


Ik heb alleen geen 'gebruikers', ik maak gewoon 'statische profielen' aan. De gehele naam gebruiken volstaat ook niet? Want ik verwacht eigenlijk geen dubbelgangers.
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 19:49:48
Quote Anchor link
Dan kan je toch gewoon de id in GET gebruiken i.p.v. een username?

Verder raad ik aan om de MySQL functie te herschrijven naar MySQLi-functies, gezien ze eruitgaan in versie PHP 7.

Quote:
Ik heb alleen geen 'gebruikers', ik maak gewoon 'statische profielen' aan. De gehele naam gebruiken volstaat ook niet? Want ik verwacht eigenlijk geen dubbelgangers.

"Never make assumptions!" Er zijn meer Jan de Boer'en, Jan Janssen en Klaas Pieterssen op de wereld dan je denkt. of onderscheid ze met een unieke username, of een met een ID-nummer.
Gewijzigd op 31/10/2015 19:55:32 door - Ariën -
 
G Jansma

G Jansma

31/10/2015 19:56:47
Quote Anchor link
- Ariën - op 31/10/2015 19:49:48:
Dan kan je toch gewoon de id in GET gebruiken i.p.v. een username?

Verder raad ik aan om de MySQL functie te herschrijven naar MySQLi-functies, gezien ze eruitgaan in versie PHP 7.


En net dat kan ik dus niet, vandaar mijn vraag. Zou je me kunnen uitleggen hoe ik het werkend kan krijgen? Ik heb al op vele fora rondgezocht, maar het gaat altijd over registratie en dergelijk waardoor ik er niks van snap.

Van die MySQL-functies heb ik helemaal nog niks begrepen. Ik heb een tutorial gekeken en aan de hand daarvan geprobeerd om het voor elkaar te krijgen.
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 20:01:30
Quote Anchor link
In de meeste gevallen is het het toevoegen van een i aan de functienaam:
mysql_query -> mysqli_query etc...

Echter moeten er bij mysqli_query en mysqli_real_escape_string ook een link-indentifier naar de connectie verwacht. Kortom dus de variabele die je connectie van mysqli_connect gebruikt.

Enfin, op www.php.net/mysqli_connect, www.php.net/mysqli_query, www.php.net/mysqli_real_escape_string en dergelijke staat een heldere beschrijving van de functieopbouw.
 
G Jansma

G Jansma

31/10/2015 20:09:52
Quote Anchor link
- Ariën - op 31/10/2015 20:01:30:
In de meeste gevallen is het het toevoegen van een i aan de functienaam:
mysql_query -> mysqli_query etc...

Echter moeten er bij mysqli_query en mysqli_real_escape_string ook een link-indentifier naar de connectie verwacht. Kortom dus de variabele die je connectie van mysqli_connect gebruikt.

Enfin, op www.php.net/mysqli_connect, www.php.net/mysqli_query, www.php.net/mysqli_real_escape_string en dergelijke staat een heldere beschrijving van de functieopbouw.


Ga ik nalezen. Maar als ik alle 'username' vervang door 'id' dan werkt het nog steeds niet.
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 20:21:49
Quote Anchor link
Laat eens zien wat je nu hebt aan code?
 
G Jansma

G Jansma

31/10/2015 20:37:10
Quote Anchor link
Ik gebruik de codes van hierboven, alleen dan 'username' vervangen door 'id'. Ik probeer van alles, maar door mijn gebrek aan kennis weet ik eigenlijk niet wat ik nou precies aan het doen ben. Ik heb mijn hoop dan ook volledig op jou/jullie gevestigd.
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 20:39:47
Quote Anchor link
$_SESSION['id'], bestaat die wel? Die kan je toch direct in de query werpen, zonder die hele eigen gemaakte functie? Je hebt toch geen vertaal-slag nodig, omdat er geen username is.
 
G Jansma

G Jansma

31/10/2015 20:55:48
Quote Anchor link
- Ariën - op 31/10/2015 20:39:47:
$_SESSION['id'], bestaat die wel? Die kan je toch direct in de query werpen, zonder die hele eigen gemaakte functie? Je hebt toch geen vertaal-slag nodig, omdat er geen username is.


De code die hier staat is praktisch alles wat ik heb. Ik heb nog wel wat code, maar dat is gewoon het 1-op-1 aanroepen van data. Die complexere codes heb ik me nog niet echt eigen gemaakt. Die $_SESSION is dan ook afkomstig uit die tutorial mbt inlogsysteem etc, maar jij zult beter dan ik weten wat dat doet. Nogmaals, ik ben echt een beginner. Ik weet nauwelijks wat een query is.

Wat zou er dan uit de code moeten?
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 20:59:09
Quote Anchor link
Is het niet verstandiger om een goede tutorial eerst te doen, zodat je weet wat je script doet.

PHP Beginners handleiding
SQL Beginners handleiding
Uitleg over MySQLi
 
G Jansma

G Jansma

31/10/2015 21:08:05
Quote Anchor link
Al doende leert men natuurlijk. Ik heb al behoorlijk wat gelezen en video's bekeken maar op mijn vraag heb ik het antwoord niet kunnen vinden. Vandaar dat ik me tot jullie wend.

Weet je hoe ik het werkend krijg dan, of wil je dat niet zeggen?
Gewijzigd op 31/10/2015 21:08:38 door G Jansma
 
- Ariën -
Beheerder

- Ariën -

31/10/2015 21:09:43
Quote Anchor link
Na het correcte inloggen wordt er een sessie aangemaakt. Ik vermoed $_SESSION['id']. Deze kan je direct gebruiken in je location-header. Daar heb je geen SQL-query voor nodig.
 
G Jansma

G Jansma

31/10/2015 21:12:24
Quote Anchor link
- Ariën - op 31/10/2015 21:09:43:
Na het correcte inloggen wordt er een sessie aangemaakt. Ik vermoed $_SESSION['id']. Deze kan je direct gebruiken in je location-header. Daar heb je geen SQL-query voor nodig.


Er hoeft niet ingelogd te worden.
 

Pagina: 1 2 volgende »



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.