Simpel Linksysteem

Door Edwin , 18 jaar geleden, 3.760x bekeken

Ik heb deze script gemaakt met behulp van Davey (Niet bekend op phphulp).
Aangezien ik niet veel van MySQL bewerking weet heb ik ook een tutorial gedaan.
Graag niet op m'n fouten letten want dit is m'n eerste echte script met MySQL.

Suc6 ;)
Edwin

Voorbeeld: http://baedchat.ba.funpic.org/test

Gesponsorde koppelingen

PHP script bestanden

  1. simpel-linksysteem

 

Er zijn 19 reacties op 'Simpel linksysteem'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Mebus  Hackintosh
Mebus Hackintosh
18 jaar geleden
 
0 +1 -0 -1
Leuk script:D altijd leuk om simpele maar toch handige scripts te zien waar sommige een tig 100 regels aan gaan schrijven jij dus niet!

toch heb ik wel een paar kleine puntjes die wat beter zouden kunnen

1:

ik zie dat je bij add.php nu dit hebt:

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

    if (empty($_POST['naam']) || empty($_POST['url'])) {

        print "Je hebt je naam en/of website vergeten in te vullen";

    }
else{

        mysql_query("INSERT INTO links (naam, website) VALUES ('".$naam."', '".$url."')") or die(mysql_error());
        print "URL toegevoegt!";

    }


?>


je ken beter isset gebruiken als je ooit eens cookies wilt gaan gebruiken voorkom je hiermee snel errors

maar als je beetje goed kijkt hoeft het eigenlijk ook niet maar ikzelf doe het liever welzo

voorbeeld:

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

if(isset($_POST['submit'])) {

$_COOKIE[];

}
else {

Druk op submit knopje

}

?>


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

if(empty($_POST['submit'])) {

  echo 'Heri submit knopje';

}
else {

$_COOKIE[];

oeps headers already sending error!

}


?>


je hoeft hiermee eigenlijk niet presé een error te krijgen maar laat hier wel mee zien dat je geen echo's voor cookie's moet doen

2:

De backtics mogen best wel weg hoor tussen de sql zo maak je ook minder snel fouten:)

CREATE TABLE links (
id INT( 11 ) NOT NULL AUTO_INCREMENT ,
naam TEXT NOT NULL ,
website TEXT NOT NULL ,
clicks VARCHAR( 0 ) NOT NULL ,
PRIMARY KEY ( id )
);

voorderest heb ik eigenlijk niks nog te zeggen:) en vind ook ik het een mooi script

zelf zal ik het denk niet gebruiken want maak zul soort scripts liever zelf

maar ik weet zeker dat je hiermee andere beginnende PHP'ers wat meer overzicht geeft over PHP dat je eigenlijk helemaal niet slim hoeft te zijn of moeilijk hoeft te denken en het makkelijker is dan je denkt

na ja mischien nog een tip

in je config.php zou je dit nog kunnen zetten:

error_reporting(E_ALL);

zo zie je ook errors die die niet altijd meergeeft en zorgt ervoor dat je script nog netter gescript worden en beter van fouten leert:)

GR. mebus!
Alfred -
Alfred -
18 jaar geleden
 
0 +1 -0 -1
@Mebus:
Quote:
if(isset($_POST['submit'])) {


if ($_SERVER['REQUEST_METHOD'] == 'POST') {

;)


18 jaar geleden
 
0 +1 -0 -1
click.php kan beter zo worden
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
include "config.php";
if(isset($_GET['id']) && (is_numeric($_GET['id']))) {
mysql_query("UPDATE links SET clicks = clicks+1 WHERE id = '".$_GET['id']."'") or die(mysql_error());
$hamburger = mysql_query("SELECT * FROM links WHERE id = '".$_GET['id']."'") or die(mysql_error());
$sla = mysql_fetch_object($hamburger);
header("Location: http://".$sla->website);
exit("U wordt doorgestuurd");
}

?>

Met header("Location: "); doe je hetzelfde als met meta alleen dan blijft de terug knop van je browser wel werkend.
Frank -
Frank -
18 jaar geleden
 
0 +1 -0 -1
Het is een begin van een script, maar ongeschikt voor een beginner. Er wordt veel te weinig aan foutafhandeling gedaan. En laat dat nu net de basis van programeren zijn. Alles wat fout kan gaan, zal ook fout gaan.

Verder horen variabelen niet tussen quotes, zie bv. config.php.

Het is wat overdreven om in dit geval kolommen van het type TEXT aan te maken. Een VARCHAR is goed genoeg. Zo veel tekst zal er echt niet in deze records worden weggeschreven.

Maar het is een begin, nu de rest nog. Succes!
Mebus  Hackintosh
Mebus Hackintosh
18 jaar geleden
 
0 +1 -0 -1
@rafael

ja dat ken ook en heb gehoord dat $_POST['submit'] toch niet in alle browsers werkt?

dan is jouw voorbeeld nog net ietsjes beter:)

GR. mebus!
Vincent
Vincent
18 jaar geleden
 
0 +1 -0 -1
Het systeem gaat bij mij over zijn nek (het voorbeeld).
Als ik een link aanklik blijft ie hem refreshen oid, waardoor ik na 5sec. nog niet op de juiste pagina zit en het aantal van 0 naar in de 30 is gesprongen.
Edwin
Edwin
18 jaar geleden
 
0 +1 -0 -1
@Vincent: Had ik ook gemerkt met IE. Ik heb de header script van webmakerij erin gezet ;)
Veder zag ik dat de mysql script niet goed is dat repareer ik ook ff ;)

Edit:
MySQL tabellen bewerkt ;)
- -
- -
18 jaar geleden
 
0 +1 -0 -1
Wel lollig, alleen weet ik niet of ik wil dat een BEZOEKER ziet hoe vaak er geklikt wordt, maar dat ik alleen dat in mijn adminmodule kan zien. Maar dat kan je er zo inbouwen.
Edwin
Edwin
18 jaar geleden
 
0 +1 -0 -1
Het script is makkelijk te bewerken :P
Ik zie ook wel eens op link sites dat ze de kliks in een alt tekst doen.
Maar net als je zegt je kan het makkelijk bij een admin systeem gebruiken.
Vdleije .
vdleije .
18 jaar geleden
 
0 +1 -0 -1
Uhm.. waarom doe je dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$naam
= $_POST['naam'];
$url = $_POST['url'];
?>

als je later in het script toch dit doet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
    if (empty($_POST['naam']) || empty($_POST['url']))
?>

Of is dat voor als je het wilt bewerken...
Edwin
Edwin
18 jaar geleden
 
0 +1 -0 -1
Dat is voor de INSERT leek mij wat handiger
Barman V
Barman V
18 jaar geleden
 
0 +1 -0 -1
Het sorteren gaat niet helemaal goed. Hij zegt bijvoorbeeld dat 5 boven de 40 moet.

edit:
Dit komt omdat je de databasekolom "clicks" op varchar hebt staan. Dit moet neem ik aan op int staan.

Als je iets in de db wijzigt of verwijdert, moet het id altijd een nummer zijn. Dit kan je controleren door is_numeric te gebruiken.

Jij hebt dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if (empty($_POST['id'])) {

        print "Je hebt de id vergeten in te vullen";

    }
else{

        mysql_query("DELETE FROM links WHERE id = ".$id."") or die(mysql_error());
        print "Je link is suc6 vol verwijdert!";

    }

?>


De $id kan nu net zo goed een kwaadwillende string zijn.
Al doe je
if (is_numeric($_POST['id'])){
Dan weet je zeker dat het een nummer is.
Frank -
Frank -
18 jaar geleden
 
0 +1 -0 -1
Quote:
Edwin schreef op 31.05.2006 21:08
Dat is voor de INSERT leek mij wat handiger

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$naam
= $_POST['naam'];
$url = $_POST['url'];
?>

Vind jij handiger? Dat is leuk en aardig, maar is alleen maar vragen om problemen. Je hebt niets gecontroleerd, iedere idioot kan nu van alles en nog wat in je variabelen gaan zetten. Tegen de tijd dat jij dan $naam in je query opneemt, ben je al lang vergeten dat je niets controleert! Dit is vragen om SQL-injection. Ga nooit een gegeven die van de client afkomt, bv. COOKIE, GET en POST, zonder enige controle in een andere variabele zetten. En je moet wel gek zijn om gegevens zonder enige controle in je queries op te nemen...

Zoals ik al eerder schreef, dit script is gewoon slecht. Het is namelijk nog lang niet af!
Edwin
Edwin
18 jaar geleden
 
0 +1 -0 -1
weet je wat ;) ik vind het zelf een leuk script voor een 13 jarige! Niet elk kind van 13 kan zo'n script maken :D
Mahmood
Mahmood
18 jaar geleden
 
0 +1 -0 -1
Mooiii systeem G thx

Edit: wie heeft goeie sql voor mij ??


18 jaar geleden
 
0 +1 -0 -1
hoe kan ik de id latebn starten vanaf 1 ?
want bij mij start die vanaf 14 :s
Edwin
Edwin
18 jaar geleden
 
0 +1 -0 -1
hij zet in volg orde van de clicks :)
Danny@dw-designs.n
danny@dw-designs.n
16 jaar geleden
 
0 +1 -0 -1
Ik krijg eeen fout melding in:

Parse error: syntax error, unexpected T_VARIABLE in C:\Documents and Settings\Jolanda.JOLANDA-QS7JRKD\Bureaublad\Danny\Wamp\www\marco\login\config.php on line 4

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
include "config.php";
$query = "SELECT * FROM links ORDER BY clicks DESC";
$info =mysql_query($query) or die ("Error!");
print "<table>";
while ($link = mysql_fetch_array($info)) {
print "<tr><td>".$link['id']."</td><td>".$link['naam']."</td><td><a href='click.php?id=".$link['id']."'>Kliks: ".$link['clicks']."</a></tr>";
}

print "</table>";
print "<br>Copyright by <a href='http://baed-net.eu'>Baed Soft</a>";
?>
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Erwin Nieuwenhuis
Erwin Nieuwenhuis
16 jaar geleden
 
0 +1 -0 -1
laat je config.php is zien

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

Inhoudsopgave

  1. simpel-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.