php informatie op basis van de url

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

AIR Diensten

AIR Diensten

26/11/2013 22:35:39
Quote Anchor link
Voor mijn website maak ik gebruik van 4 cijferige nummers welke door mijn leverancier wordt aangeboden.
Aan deze nummers zit in mijn database een koppeling waar de overige informatie staat.

Voorbeeld:
Leverancier wijst mij nummer 1212 toe.
Ik heb ik mijn database dit nummer aan een product gekoppeld dus product A met code 1212

nu heb ik voor elke product een eigen pagina
vb: www.mijndomein.nl/1212.html

Alle scripts welke de data uit mijn database en de leverancier haalt zijn het zelfde alleen wil ik niet voor elke pagina een aparte php maken.

Bestaat er een manier om uit de url het nummer te halen en zo deze in het script dynamisch in te voeren zodat ik maar 1 script nodig heb om alle producten per pagina te laden.

Ik hoop dat ik het zo een beetje duidelijk verwoord heb.
 
PHP hulp

PHP hulp

23/11/2024 17:53:15
 
Ozzie PHP

Ozzie PHP

26/11/2013 22:42:28
Quote Anchor link
Wat je zoekt is een GET parameter.

www.mijndomein.nl/product.php?product=1212

Op je pagina product.php kun je dan via GET als volgt je productnummer tevoorschijn halen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

echo $_GET['product'];

?>
 
AIR Diensten

AIR Diensten

26/11/2013 22:51:30
Quote Anchor link
Ik snap wat je bedoeld.... en daar zat ik ook aan te denken. Alleen mijn klant wil per direct achter de basis url het nummer hebben staan.. mag evt ook zonder extentie er achter.

lees:
www.mijndomein.nl/1212
www.mijndomein.nl/1212.html
www.mijndomein.nl/1212.php

Dit is een directe eis van de klant...
 
Ozzie PHP

Ozzie PHP

26/11/2013 23:10:22
Quote Anchor link
Dan is optie 1 de meest logische en zul je met url rewriting moeten gaan werken.
 
R van der Meer

R van der Meer

27/11/2013 15:54:09
Quote Anchor link
Als ik het goed begrijp is dat je wil dat www.mijndomein.nl/1234 verwijst naar www.mijndomein.nl/product/klant/nummer/1234.html (of wat dan ook in je URL)

Als het een openbare website wordt is het sowieso af te raden om nummers te gebruiken om producten aan te duiden. mijndomein.nl/1234 zegt niets over het product. mijndomein.nl/groene-appels zegt wel weer iets over wat de bezoeker kan verwachten.

Je moet gaan werken met RewriteEngine On in je httacces. Daarna moet je op een slimme manier de url uitlezen, en daarmee bepalen hoe je die gaat behandelen.

Denk hier aan als volgt:
ALS url[1] = nummer dan toon dit.
ALS url[1] <> nummer dan toon bepaalde pagina.

Voor ik verder ga, kun jij aan geven of mijn insteek klopt en of je echt met nummers moet werken, of dat je ook met namen kan werken?
 
AIR Diensten

AIR Diensten

02/12/2013 00:15:03
Quote Anchor link
Ik heb jullie advies opgevolgd.. alleen loop ergens vast, als ik de pagina laad dan blijft deze wit.
Ook als ik in de error logfile kijk dan zie ik niets staan...

Iemand een idee waar ik de fout gemaakt heb?

Hieronder het script

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
47
48
49
50
51
<?php
include("../ivr/include/header.inc.php");

// foutmeldingen weergeven
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);

$xtpl = new XTemplate(ROOT_DIR."profiel.php");

// connect naar database
if(mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)) {

// selecteer database
mysql_select_db(DB_NAME) or die(mysql_error());

}

else{
      // connecten naar database is mislukt
      echo "Kan geen verbinding maken met database.";
      exit;
            
}


if(isset($_GET['boxnr']) AND is_numeric($_GET['boxnr'])){

        // ophalen status uit database a.d.h.v boxnr
        $profielophalen = mysql_query("
                                                                      SELECT
                                                                              *
                                                                    FROM
                                                                              ad_comprofiler
                                                                    WHERE
                                                                              cb_boxnr = '"
.mysql_real_escape_string($_GET['boxnr'])."'
                                                                 "
);
        if(mysql_num_rows($profielophalen) == 1){
                
                // resultaat in variabele zetten
                $profiel = mysql_fetch_assoc($profielophalen);
                
                // resultaat uit database voor profiel        
        foreach($profiel as $emp)
        {

            $xtpl->assign("EMP_ID", $emp['id']);
            $xtpl->assign("EMP_NAME", $emp['cb_profiel']);
            $xtpl->assign("EMP_BOX", $emp['cb_boxnr']);
            $xtpl->assign("EMP_DESCRIPTION", nl2br($emp['cb_informatie']));
            $xtpl->assign("EMP_IMAGE", $emp['avatar']);
            $xtpl->assign("EMP_SPECIALTY", $emp['cb_discipline']);
        }
    }
}
 
- Ariën  -
Beheerder

- Ariën -

02/12/2013 00:55:06
Quote Anchor link
Waar wordt $xtpl aangemaakt?

Anders moet je eens doen aan steb-by-stem debugging. Per stap in je code (bij statements, loops etc...) even een echo plaatsen. Dan kan je prima achterhalen waar het fout loopt.
 
AIR Diensten

AIR Diensten

02/12/2013 09:14:55
Quote Anchor link
hmmm ik zie de volgende meldingen terug komen in de debugging

Warning: Illegal string offset 'cb_profiel' in /var/www/vhosts/***.nl/j30.***.nl/ivr/consulent-profiel.php on line 69

deze table moet komen uit de db query van regel 27..

Iemand... idee?


Toevoeging op 02/12/2013 09:18:30:

- Aar - op 02/12/2013 00:55:06:
Waar wordt $xtpl aangemaakt?

Anders moet je eens doen aan steb-by-stem debugging. Per stap in je code (bij statements, loops etc...) even een echo plaatsen. Dan kan je prima achterhalen waar het fout loopt.


deze zit in de include van regel 2 van het script.
 
- Roland -

- Roland -

02/12/2013 10:19:07
Quote Anchor link
Is je foreach niet overbodig .... ?

gooi die eruit en
gebruik dan natuurlijk gewoon $profiel['id']
ipv $emp['id']
 
AIR Diensten

AIR Diensten

02/12/2013 17:16:41
Quote Anchor link
Dankje voor het antwoord, De fouten zijn weg echter mijn pagina blijft blank :(
Ik heb ook debugging gedraaid en getracht step by step uit te voeren maar alles vligt leeg :(

hierbij de pagina waar het om gaat: http://j30.air-mediums.nl/ivr/consulent-profiel.php?boxnr=9999

En ook het script
Heeft iemand nog een idee want loop nu wel vast :S
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
47
48
49
50
51
52
53
54
55
56
<?php
include("../ivr/include/header.inc.php");

// foutmeldingen weergeven
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);

$xtpl = new XTemplate(ROOT_DIR."profiel.php");

// connect naar database
if(mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)) {

// selecteer database
mysql_select_db(DB_NAME) or die(mysql_error());

}

else{
      // connecten naar database is mislukt
      echo "Kan geen verbinding maken met database.";
      exit;
            
}


if(isset($_GET['boxnr']) AND is_numeric($_GET['boxnr'])){

        // ophalen status uit database a.d.h.v boxnr
        $profielophalen = mysql_query("
                                                                      SELECT
                                                                              *
                                                                    FROM
                                                                              ad_comprofiler
                                                                    WHERE
                                                                              cb_boxnr = '"
.mysql_real_escape_string($_GET['boxnr'])."'
                                                                 "
);
        if(mysql_num_rows($profielophalen) == 1){
                
                // resultaat in variabele zetten
                $profiel = mysql_fetch_assoc($profielophalen);
                
                
                                 );

                
                // pagina weergeven op het scherm                                
        //foreach($profiel as $profiel)

        {
            $xtpl->assign("EMP_ID", $profiel['id']);
            $xtpl->assign("EMP_NAME", $profiel['cb_profiel']);
            $xtpl->assign("EMP_BOX", $profiel['cb_boxnr']);
            $xtpl->assign("EMP_DESCRIPTION", nl2br($profiel['cb_informatie']));
            $xtpl->assign("EMP_IMAGE", $profiel['avatar']);
            $xtpl->assign("EMP_SPECIALTY", $profiel['cb_discipline']);
            $xtpl->assign("EMP_STATUS", $profiel['cb_status']);
        }
    }
}

?>
 
Reshad F

Reshad F

02/12/2013 17:56:55
Quote Anchor link
Je zegt dat je alles gedebugged hebt. maar ik zie nog steeds slechte SQL functies in je code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

// connect naar database
if(mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)) {

// selecteer database
mysql_select_db(DB_NAME) or die(mysql_error());

}


?>


Zet is een else na je laatste accolade

else {

echo 'test';

}

en dan geen nummer invullen in je url enkel het domein. krijg je dan test?
 
AIR Diensten

AIR Diensten

02/12/2013 18:07:13
Quote Anchor link
Beste Reshad,
Ik ben geen programeur, dit is een php deel welke ik nu echt zelf bouw. Hiervoor waren het alleen verbeteringen van bestaande scripts of samenvoegsels ervan.

ik snap niet wat je bedoeld met slechte php functies in de code... ik kan het ook anders doen maar dan is het probleem er nog wel steeds...

Als ik de echo test neerzet op de laatste dan krijg ik netjes test te staan...
 
Reshad F

Reshad F

02/12/2013 20:13:18
Quote Anchor link
Dus je db connectie is goed. nu ik beter naar je code kijk zie ik dat je nergens iets echoed.. Misschien moet je dat is proberen?

dus waar je die dingen assigned moet je ergens het resultaat echoën
Gewijzigd op 02/12/2013 20:13:48 door Reshad F
 



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.