fout
fout gepost
Gesponsorde koppelingen
PHP script bestanden
14 reacties op 'fout'
Gesponsorde koppelingen
Ziet er redelijk uit, ik heb het niet helemaal uitegpluist, maar er viel me wel het e.e.a. op.
Namelijk:
Hier doe je gelijk al '.=', maar dat kan nog niet, omdat in $admin nog niks staat. Als je error_reporting op E_ALL hebt staan, zal je dat wel merken ;).
Verder zag ik nog dit:
Dat je 2 keer $a met $_POST['a']; vult is een beetje doelloos, omdat je die $a maar één keer gebruikt voor die $total, je kan net zo goed gewoon gelijk
$total = count(explode(',',$_POST['a']));
doen.
Voor wat jij probeert te doen, met count en explode, heb je ook substr_count() voor.
Voor de rest ziet het er wel oke uit. Misschien kan je voor die database class gewoon gelijk PDO of Mysqli gebruiken. Hoef je zelf niet zo'n class te schrijven;)
Namelijk:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
// ...
function showAdmin()
{
$admin .= "<form method=\"POST\" ation=\"" . $_SERVER['PHP_SELF'] . "\">";
// ...
}
// ...
?>
// ...
function showAdmin()
{
$admin .= "<form method=\"POST\" ation=\"" . $_SERVER['PHP_SELF'] . "\">";
// ...
}
// ...
?>
Hier doe je gelijk al '.=', maar dat kan nog niet, omdat in $admin nog niks staat. Als je error_reporting op E_ALL hebt staan, zal je dat wel merken ;).
Verder zag ik nog dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
// ..
# Set some vars
$a = $_POST['a'];
$total = count(explode(",", $a));
$q = htmlentities($_POST['q']);
$a = $_POST['a'];
# calc null values
// ..
?>
// ..
# Set some vars
$a = $_POST['a'];
$total = count(explode(",", $a));
$q = htmlentities($_POST['q']);
$a = $_POST['a'];
# calc null values
// ..
?>
Dat je 2 keer $a met $_POST['a']; vult is een beetje doelloos, omdat je die $a maar één keer gebruikt voor die $total, je kan net zo goed gewoon gelijk
$total = count(explode(',',$_POST['a']));
doen.
Voor wat jij probeert te doen, met count en explode, heb je ook substr_count() voor.
Voor de rest ziet het er wel oke uit. Misschien kan je voor die database class gewoon gelijk PDO of Mysqli gebruiken. Hoef je zelf niet zo'n class te schrijven;)
Enkele dingen die niet zouden mogen voorkomen in een poll systeem..
Warning: Division by zero in /storage/mijndomein/users/090560/public/sites/www.htmlkit.nl/poll/poll.php on line 171
XSS http://www.htmlkit.nl/poll/archives.php?ArchID=14
en poll's met maar 1 keuze? ( http://www.htmlkit.nl/poll/archives.php?ArchID=9 )
Warning: Division by zero in /storage/mijndomein/users/090560/public/sites/www.htmlkit.nl/poll/poll.php on line 171
XSS http://www.htmlkit.nl/poll/archives.php?ArchID=14
en poll's met maar 1 keuze? ( http://www.htmlkit.nl/poll/archives.php?ArchID=9 )
Het werkt, alhoewel er code-inhoudelijk nog wel wat dingen te verbeteren/beveiligen zijn, goed.
Het eerste wat mij echter opvalt bij het snel doorlezen van je code zijn je classes. Over het algemeen bestaan er 2 soorten classes: Dataklasses, die gewoon data over (in dit geval) de poll in zich hebben, die je kunt aanpassen. Verder heb je ondersteunende classes, die of informatie over dataklasses in zich hebben staan, of andere services representeren (zoals bv. jouw databse class). Je kunt discussieren over controll-classes. Naar mijn mening kun je dat net zo goed procedureel opschrijven, maar vaak gebeurt dit ook in een classe.
Wat jij echter lijkt te doen is classes maken die die soorten combineren. Jij voegt hard-coded HTML-code toe in een class die een oude poll moet selecteren, en de poll class doet ook aan hard-coded HTML, terwijl hij dat eigenlijk aan een andere class/procedurele-code moet overlaten.
Je database class is (zoals al gezegd) gewoon een (slechte) wrapper tussen de mysql-extensie, waar je veel beter pdo of msqli voor kunt gebruiken. Ook slecht aan je databse class is dat je voor iedere query een nieuwe verbinding aanmaakt, wat het geheel erg langzaam maakt.
Je intall-class is eigenlijk nog erger: Deze representeert letterlijk hard-coded data, en daar is dus het abstractie-niveau volledig verdwenen.
Conclusie is dus dat je wel classes hebt, maar dat je geen OO (objectgeorienteerd) hebt, en dan kun je je classes eigenlijk ook wel weggooien. Ik denk echter dat je dit met een iets beter model, en het verwijderen van je hard-coded HTML al wel een stuk beter kunt maken. Zoals je het nu hebt is het in ieder geval geen hopeloos begin. Het moet alleen nog wel een beetje aangepast om echt bruikbaar te kunnen maken.
Het eerste wat mij echter opvalt bij het snel doorlezen van je code zijn je classes. Over het algemeen bestaan er 2 soorten classes: Dataklasses, die gewoon data over (in dit geval) de poll in zich hebben, die je kunt aanpassen. Verder heb je ondersteunende classes, die of informatie over dataklasses in zich hebben staan, of andere services representeren (zoals bv. jouw databse class). Je kunt discussieren over controll-classes. Naar mijn mening kun je dat net zo goed procedureel opschrijven, maar vaak gebeurt dit ook in een classe.
Wat jij echter lijkt te doen is classes maken die die soorten combineren. Jij voegt hard-coded HTML-code toe in een class die een oude poll moet selecteren, en de poll class doet ook aan hard-coded HTML, terwijl hij dat eigenlijk aan een andere class/procedurele-code moet overlaten.
Je database class is (zoals al gezegd) gewoon een (slechte) wrapper tussen de mysql-extensie, waar je veel beter pdo of msqli voor kunt gebruiken. Ook slecht aan je databse class is dat je voor iedere query een nieuwe verbinding aanmaakt, wat het geheel erg langzaam maakt.
Je intall-class is eigenlijk nog erger: Deze representeert letterlijk hard-coded data, en daar is dus het abstractie-niveau volledig verdwenen.
Conclusie is dus dat je wel classes hebt, maar dat je geen OO (objectgeorienteerd) hebt, en dan kun je je classes eigenlijk ook wel weggooien. Ik denk echter dat je dit met een iets beter model, en het verwijderen van je hard-coded HTML al wel een stuk beter kunt maken. Zoals je het nu hebt is het in ieder geval geen hopeloos begin. Het moet alleen nog wel een beetje aangepast om echt bruikbaar te kunnen maken.
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Corn- 4 jaar geleden
- 298 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP scripts opties
- Snippets
- Nieuwste PHP scripts
- PHP script toevoegen


PHP hulp
0 seconden vanaf nu