Linksysteem

Door Arjan Kapteijn, 18 jaar geleden, 6.298x bekeken

Een simpele linksysteem (sommigen noemen het ook affiliatie overzicht) welke ik voor Lissy gemaakt heb maar ook met jullie wil delen. De werking is vrij simpel, op een door jou gewenste pagina creeƫr je een overzicht van allemaal linkje & omschrijvingen. Zodra iemand op een link klikt opend er een nieuw venster met daarop de desbetreffende webpagina. Ondertussen hebben wij al de database geupdate zodat we ook kunnen zien hoevaak iemand op een link klikt (uit) en hoevaak er iemand binnen komt (in).

Het moet redelijk simpel te implementeren zijn en anders kan je jou vragen deponeren in de comments.

Gesponsorde koppelingen

PHP script bestanden

  1. linksysteem

 

Er zijn 45 reacties op 'Linksysteem'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Lissy Pixel
Lissy Pixel
18 jaar geleden
 
0 +1 -0 -1
(((((((((((((((((((((((((((dikke hele dikke knuffel))))))))))))))))))))))))))))
^_^ van een blozende lissy ^_^
Uiteraard gaat deze er vanmiddag op en natuurlijk krijg je feedback van me!
Lissy Pixel
Lissy Pixel
18 jaar geleden
 
0 +1 -0 -1
Ik heb alles erop staan en hier een link:
LinkenSysteem

Helemaal nog niet goed gaat wanneer je op de naam van de link klikt en je dan (nog) niet doorgaat naar de site.
Het is dit als code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<p><a href="?actie=uitgaand&amp;linkid='.$id.'" target="_blank">'.ucfirst($naam).'</a> '.$omschrijving.'</p>';
?>


De codel staat hier : linken/linken.php
Wat doe ik fout?
Willem Jan Z
Willem Jan Z
18 jaar geleden
 
0 +1 -0 -1
Ik gok dat je URL niet goed staat in de database.
Maar zou het zo niet kunnen zeggen.
Arjan Kapteijn
Arjan Kapteijn
18 jaar geleden
 
0 +1 -0 -1
Ik zie daar weinig terug van mijn linksysteem klopt dat?

De linkjes zouden als het goed is iets moeten zijn als

?actie=uitgaand&linkid=7

Bij jou staat er gewoon een directe url.
Arjan Kapteijn
Arjan Kapteijn
18 jaar geleden
 
0 +1 -0 -1
?actie= moet je dan wel vervangen door linken/linken.php?actie=
Lissy Pixel
Lissy Pixel
18 jaar geleden
 
0 +1 -0 -1
De lay-out wordt gemaakt in index2.php en dan heb je de pagina linken.php waar de code op staat en deze wordt dus aangeroepen.
Ik ga is even dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<p><a href="index2.php?actie=uitgaand&amp;linkid='.$id.'" target="_blank">'.ucfirst($naam).'</a> '.$omschrijving.'</p>';
?>


proberen :) Wie weet ...
Lissy Pixel
Lissy Pixel
18 jaar geleden
 
0 +1 -0 -1
@ Arjan :
Het bovenste is apart en dat is statisch want zijn mijn puppenkinderensites en komt niet uit de database :)

Daaronder staat 1 link genaamd : Raad van Beheer en deze is volgens het nieuwe linksysteem en deze doet het dus niet of ik doe wat fout...
Arjan Kapteijn
Arjan Kapteijn
18 jaar geleden
 
0 +1 -0 -1
Bovenaan die index2.php staat dat stukje code wat de get opvangt en doorstuurt?
Lissy Pixel
Lissy Pixel
18 jaar geleden
 
0 +1 -0 -1
Ohh ja daar staat dit:

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

<?php
// hiermee maak je het menu in de div "links"
if (isset($_GET['id']) && is_numeric($_GET['id']))
{

    $sql = "SELECT paginanaam FROM inhoud WHERE id=".$_GET['id'];
    $res = mysql_query($sql);
    if ($res && mysql_num_rows($res) == 1)
    {

        $row = mysql_fetch_array($res);
        $pag = $row['paginanaam'];
        if(!file_exists($pag))
        {

            $pag = "paginas/home.php";
            //dan wel ipv home.php een error.php maken!
            //$pag = "paginas/error.php";

        }
    }

    else
    {
        $pag = "paginas/home.php";
    }
}

else
{
    $pag = "paginas/home.php";
}

?>


Hoe los ik dit op?
Lissy Pixel
Lissy Pixel
18 jaar geleden
 
0 +1 -0 -1
Ik zat te denken door een ander id te maken dus LinkId en dit door te voeren in tabellen en script etc.. is dat een oplossing of is er een alternatief (veiliger-betere)?
Arjan Kapteijn
Arjan Kapteijn
18 jaar geleden
 
0 +1 -0 -1
Daar moet ook dat stukje wat hij moet doen als er een get actie & linkid is.
Lissy Pixel
Lissy Pixel
18 jaar geleden
 
0 +1 -0 -1
OK dus de code niet op de linken pagina maar ook op de index2.php
Ik ga het proberen.
Lissy Pixel
Lissy Pixel
18 jaar geleden
 
0 +1 -0 -1
Dit staat er nu:

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
// code voor de linkenpagina
if($_SERVER['REQUEST_METHOD'] == "GET")
{

    if(isset($_GET['actie']))
    {

        //Is de actie toegestaan?
        $acties = array('inkomend','uitgaand');
        $actie = mysql_real_escape_string($_GET['actie']);
    
        if(in_array($actie,$acties))
        {

            if(isset($_GET['linkid']))
            {

                if(is_numeric($_GET['linkid']))
                {

                    $linkid = mysql_real_escape_string($_GET['linkid']);
    
                    //Updaten die handel!
                    $query = "UPDATE affiliatie SET ".$actie." = ".$actie." + 1 WHERE id = ".$linkid."";
                    $resultaat = mysql_query($query);

                    //Als het updaten gelukt is, en de actie is uitgaand...
                    if($resultaat && (mysql_affected_rows() == 1) && $actie == 'uitgaand')
                    {

                        //We halen de url op
                        $query = "SELECT url FROM affiliatie WHERE id = ".$linkid."";
                        $resultaat = mysql_query($query);

                        if($resultaat && mysql_num_rows($resultaat) == 1)
                        {

                            $rij = mysql_fetch_array($resultaat);
                            $url = stripslashes($rij['url']);

                            //Doorsturen die handel!
                            header('Location:'.$url.'');
                        }
                    }
                }

                else
                {
                    echo 'Sorry, dit accepteer ik niet.';
                }
            }
        }

        else
        {
            echo 'Sorry, deze actie is niet toegestaan';
        }
    }
}

// einde linkencode

// hiermee maak je het menu in de div "links"

if (isset($_GET['id']) && is_numeric($_GET['id']))
{

    $sql = "SELECT paginanaam FROM inhoud WHERE id=".$_GET['id'];
    $res = mysql_query($sql);
    if ($res && mysql_num_rows($res) == 1)
    {

        $row = mysql_fetch_array($res);
        $pag = $row['paginanaam'];
        if(!file_exists($pag))
        {

            $pag = "paginas/home.php";
            //dan wel ipv home.php een error.php maken!
            //$pag = "paginas/error.php";

        }
    }

    else
    {
        $pag = "paginas/home.php";
    }
}

else
{
    $pag = "paginas/home.php";
}

?>


Maar nee je krijg niet de juiste URL voor de link maar dezelfde pagina.
Arjan Kapteijn
Arjan Kapteijn
18 jaar geleden
 
0 +1 -0 -1
Als dat in je index2.php staat moet je de link wel aanpassen, nu staat er:

http://www.bearded-collies.net/linken/linken.php?actie=uitgaand&linkid=1

Dat moet dus worden index2.php?actie=uitgaand&linkid=1
Lissy Pixel
Lissy Pixel
18 jaar geleden
 
0 +1 -0 -1
YES...done en het allermooiste het werkt :)))
NU kan ik linken gaan vullen :)))

Arjan Dank Je Wel!!! Uiteraard link nummer 2 wordt de Henzenrunners!
Mathieu Kooiman
Mathieu Kooiman
18 jaar geleden
 
0 +1 -0 -1
Een van de dingen die mij opvalt is dat de SQL query voor het verwijderen van links wel tegen enige SQL injectie wordt beveiligd, maar toch niet helemaal.

Wat nu als ik als $_POST['delete'] een array met 1 element met de volgende waarde opgeef: '0 OR id != 0'. Je kunt wel zeggen dat dit bestand beveiligd had moeten worden met .htaccess bijvoorbeeld, maar het is sowieso good-practice om te zorgen dat dat soort problemen uberhaupt niet voor -kunnen- komen.

Ook deze regel:

$sql = "SELECT paginanaam FROM inhoud WHERE id=".$_GET['id'];

is natuurlijk niet veilig. Meer informatie daarover vind je op http://www.scriptorama.nl/security/tips-voor-een-veiligere-site
Pieter van Linschoten
Pieter van Linschoten
18 jaar geleden
 
0 +1 -0 -1
Die sql regel is wel veilig, door middel van is_numeric($_GET['id'])
Arjan Kapteijn
Arjan Kapteijn
18 jaar geleden
 
0 +1 -0 -1
Ik denk dat het wel veilig is hoor... Alle userinput gaat eerst door functies als in_array of is_numeric heen. Daarna nog mysql_real_escape string. De enige opmerking zou kunnen zijn om ook dat delete gedeelte van de admin door een is_numeric te duwen... nouja... kan. Maar hij gaat ook nog eens door mysql_real_escape_string() dus ik zou het niet 'onveilig' durven noemen.

Dus mathieu, als je ergens een $var in een query ziet betekend dat niet bij voorbaat dat het onveilig is. Kijk eerst eens wat er eerst met die $var gebeurd.
Pieter van Linschoten
Pieter van Linschoten
18 jaar geleden
 
0 +1 -0 -1
Dus, zoals gewoonlijk weer zo'n opzienbarend doordacht script namens onze favoriete moderator Arjan Kapteijn :)
Arjan Kapteijn
Arjan Kapteijn
18 jaar geleden
 
0 +1 -0 -1
Dankje, dankje.. ik weet het.. ik ben 1337.
Mathieu Kooiman
Mathieu Kooiman
18 jaar geleden
 
0 +1 -0 -1
Ik had de is_numeric() regel even gemist inderdaad, dus dat is inderdaad goed ( maar wist je dat is_numeric() lange tijd niet binary safe was ? Als je index.php?id=25%00hatzee opgaf kwam deze er gewoon doorheen).

Wat betreft de admin, mysql_real_escape_string() doet helemaal niets voor je als ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
0 or ID <> 0
opgeef . Nu realiseer ik me wel dat het in een admin zit welke normaliter niet toegankelijk is maar zoals ik al zei, het blijft een goed idee om dit soort standaard dingen altijd te doen.
Ellen
Ellen
17 jaar geleden
 
0 +1 -0 -1
Ik heb nu dat toegevoegd, bijna alles doet het!
Links toevoegen,
De lijst met links.

1 ding alleen niet:
Als ik op een link klik zegt hij dat er een fout is!
http://www.variantharkstede.nl/links/index.php

kan iemand me helpen?
Arjan Kapteijn
Arjan Kapteijn
17 jaar geleden
 
0 +1 -0 -1
Quote:
Warning: Cannot modify header information - headers already sent by (output started at /home/varianth/public_html/links/index.php:1) in /home/varianth/public_html/links/index.php on line 81


Headers moeten _voor_ html en andere rommel!
Ellen
Ellen
17 jaar geleden
 
0 +1 -0 -1
Wat meot ik dan doen? dit is die pagina:

http://www.variantharkstede.nl/links/fout.html
Arjan Kapteijn
Arjan Kapteijn
17 jaar geleden
 
0 +1 -0 -1
Alles voor de eerst
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? php weghalen.
Ellen
Ellen
17 jaar geleden
 
0 +1 -0 -1
heb ik, maar hij doet nogsteeds hetzelfde
Arjan Kapteijn
Arjan Kapteijn
17 jaar geleden
 
0 +1 -0 -1
Maak even een aparte links.php, zet daar het 3e stukje code in. Include de database verbinding en pas de linkjes aan van ? naar links.php? en probeer het dan eens.
Ellen
Ellen
17 jaar geleden
 
0 +1 -0 -1
dan krijg ik geen fouten, maar dan krijg ik mijn 404-pagina ervoor
http://www.variantharkstede.nl/links/links.php
Arjan Kapteijn
Arjan Kapteijn
17 jaar geleden
 
0 +1 -0 -1
http://test.i-cey.net/linksysteem/alstublieft.phps

Opslaan als .php en gaan met die banaan.
Ellen
Ellen
17 jaar geleden
 
0 +1 -0 -1
nope weer niet!
Ik kap ermee, ik zoek wel een ander
Arjan Kapteijn
Arjan Kapteijn
17 jaar geleden
 
0 +1 -0 -1
For the record, het feit dat het niet werkt ligt niet bij mijn systeem...
Ellen
Ellen
17 jaar geleden
 
0 +1 -0 -1
Ik weet niet waar het dan wel ligt... Ik kan best een fout gemaakt hebben, ik weet niets van PHP..
Een andere doet het wel, maar die vind ik minder mooi als die van jou..
Kalle P
Kalle P
17 jaar geleden
 
0 +1 -0 -1
Dan ga je ff een cursusje php volgen dan kan je het vast wel.
Legolas
Legolas
17 jaar geleden
 
0 +1 -0 -1
er staat een spatie voor je
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php op die ene link
Ellen
Ellen
17 jaar geleden
 
0 +1 -0 -1
dank je! Hij doet het! Ook jij bedankt arjan Kapteijn
Raymond ---
Raymond ---
17 jaar geleden
 
0 +1 -0 -1
Heey, ik krijg de volgende foutmeldingen:

Warning: mysql_real_escape_string(): Access denied for user 'raymond'@'localhost' (using password: NO) in /home/raymond/www/doorsturen.php on line 8

Warning: mysql_real_escape_string(): A link to the server could not be established in /home/raymond/www/doorsturen.php on line 8
Sorry, deze actie is niet toegestaan


Het volgende heb ik geprobeerd om het op te lossen:
- Google
- Gegevens gecontroleerd
- Kijken of de tabel wel bestaat

Wat ik raar vind is dat ik wel gewoon links kan toevoegen, maar niet openen. Ik heb verder niksin het script gewijzigd.
Arjan Kapteijn
Arjan Kapteijn
17 jaar geleden
 
0 +1 -0 -1
Wel eens een database verbinding maken..

require_once('databaseverbinding.php');
Raymond ---
Raymond ---
17 jaar geleden
 
0 +1 -0 -1
Even alles op een rijtje, want dat had ik al geprobeerd:
Ik heb een pagian doorsturen.php, die ziet er zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
EDIT: Deze code staat ook boven, is een beetje onoverzichtelijk als ik die er tussen zet


dan krijg ik op die pgina deze fouten:
Warning: mysql_real_escape_string(): Access denied for user 'raymond'@'localhost' (using password: NO) in /home/raymond/www/doorsturen.php on line 8

Warning: mysql_real_escape_string(): A link to the server could not be established in /home/raymond/www/doorsturen.php on line 8
Sorry, deze actie is niet toegestaan


Ik heb het volgende in de adresbalk staan:
mijndomein.nl/doorsturen.php?actie=uitgaand&linkid=1
(klopt dus volgens mij.
Ik ga nog even een keer google'en



EDIT: --------------------------------------
Ok, ikkom er net achter dat mij FTP niet meteen upload, ik ga even kijken of ik het goed krijg :)
'T lukt gewoon ff andere ftp prog ;)
Ellen
Ellen
16 jaar geleden
 
0 +1 -0 -1
Door een fout van mijn server was ik alle indexen kwijt. Nu heb ik het link-systeem weer gevonden die ik had. Alleen ik krijg een fout:

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'nobody'@'localhost' (using password: NO) in /home/varianth/public_html/links/index.php on line 8

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/varianth/public_html/links/index.php on line 8
Sorry, deze actie is niet toegestaan

http://www.variantharkstede.nl/links/?actie=uitgaand&linkid=1

Als ik //Database verbinding maken
require_once('databaseverbinding.php');
toevoeg krijg ik dit:

Warning: Cannot modify header information - headers already sent by (output started at /home/varianth/public_html/links/databaseverbinding.php:10) in /home/varianth/public_html/links/index.php on line 38

Alle bestandjes staan in de map links.
links.php -> alle links op een rijtje (alleen het klikken doet het niet)
index.php -> de link-code.

Er is vaker over deze fout gesproken, alleen de tips die dat worden gegeven, werken niet. Kan iemand mij helpen?
Ellen
Ellen
16 jaar geleden
 
0 +1 -0 -1
Ik heb het al opgelost...

ipv require_once('databaseverbinding.php'); in index.php, heb ik de tekst in databaseverbinding.php overgenomen en erin gezet. Nu doet het systeem het wel!

Toppie!
Maarten Moi
Maarten Moi
16 jaar geleden
 
0 +1 -0 -1
Ik ben nu al een tijdje bezig met het script en heb de zelfde foet als lissy.
Kan iemand even de juiste code voor mij geven?
http://www.ringtonepagina.com/livetelevisie/linken/index.php
Lissy Pixel
Lissy Pixel
16 jaar geleden
 
0 +1 -0 -1
Beste Maarten,

Wat is je foutmelding?
Maarten Moi
Maarten Moi
16 jaar geleden
 
0 +1 -0 -1
Als ik op een toegevoegde link klik opend hij het zelfde venser weer.
Dus bij index.php
Haras
Haras
15 jaar geleden
 
0 +1 -0 -1
Als ik op een naam klik.
Dan gaat er de zelfde pagina terug open

Sorry, ik had de reactie van Maarten niet gezien.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Henry Campen
henry Campen
13 jaar geleden
 
0 +1 -0 -1
Is hier ook een werkend voorbeeld van te zien ?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. linksysteem

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.