Simpel Linksysteem
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
19 reacties op 'Simpel Linksysteem'
Gesponsorde koppelingen
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:
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:
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!
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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!";
}
?>
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)
Code (php)
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!
click.php kan beter zo worden
Code (php)
1
2
3
4
5
6
7
8
9
10
11
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.
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.
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!
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!
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:
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.
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)
1
2
3
4
5
6
7
8
9
10
11
12
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!";
}
?>
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.
Quote:
Edwin schreef op 31.05.2006 21:08
Dat is voor de INSERT leek mij wat handiger
Dat is voor de INSERT leek mij wat handiger
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!
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
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)
1
2
3
4
5
6
7
8
9
10
11
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>";
?>
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>";
?>
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Edwin- 7 jaar geleden
- 874 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP scripts opties
- Snippets
- Nieuwste PHP scripts
- PHP script toevoegen


PHP hulp
0 seconden vanaf nu