abonnement Unibet Coolblue Bitvavo
  maandag 30 augustus 2010 @ 23:29:16 #129
1872 Jumparound
bedankt voor de vis
pi_85893963
dat lijkt ook niet te werken... :(
Inorbit: zeg dat dan typluie triangeljosti
Beauregard: Een beetje FOK!ker laat het brood door z'n moeder smeren.
Ecosia
ek's 'n flash drive, jy's 'n floppy
pi_85895700
Woeps, header("Content-Description: File Transfer"); hoort er ook bij. ;)

En vang meteen die querystring ID af, die's nu gevoelig voor SQL injection. :)
pi_85901110
Hmm, volgens mij mis ik de obvious solution maar het wil maar niet lukken;

Situatie: één tabel met woningen en één tabel met gebruikersinformatie. Alleen welke gebruiker bij welke woning hoort is afhankelijk van 2 waardes in de woningentabel; de gebruiker kan ofwel gekoppeld worden met het user_id ofwel door een feed_id die ook aanwezig is in de gebruikerstabel.

Nu doe ik dus 2 left joins voor situatie 1 en situatie 2. Maar dat is natuurlijk niet ideaal omdat je dan altijd 1 tabel joint die vol met null staat en dus in situatie 1 de waardes in PHP nutteloos maakt.

Nu wilde ik eigenlijk een soort IF statement gebruiken om de benodigde tabel te joinen afhankelijk van de waarde van feed_id. Ik kwam de CASE statement tegen maar dan heb ik iets als:

1
2
3
4
5
6
7
8
9
10
SELECT
*,
CASE feed_id
WHEN 0 THEN 
u2.*
ELSE
u1.*
END CASE
FROM
objects
Geeft me een syntax error en dat * is natuurlijk nog niet goed. Maar misschien kan dit ook met een slimme manier van joinen gedaan worden? Het gaat het me er dus om dat ik gewoon één user-tabel terug krijg die afhankelijk is van de feed_id.

Any thoughts?
You have to come back with me! Back to the Future!
  dinsdag 31 augustus 2010 @ 09:34:57 #132
37634 wobbel
Da WoBBeL King
pi_85901442
quote:
Op dinsdag 31 augustus 2010 09:19 schreef Doc.Brown het volgende:
Hmm, volgens mij mis ik de obvious solution maar het wil maar niet lukken;

Situatie: één tabel met woningen en één tabel met gebruikersinformatie. Alleen welke gebruiker bij welke woning hoort is afhankelijk van 2 waardes in de woningentabel; de gebruiker kan ofwel gekoppeld worden met het user_id ofwel door een feed_id die ook aanwezig is in de gebruikerstabel.

Nu doe ik dus 2 left joins voor situatie 1 en situatie 2. Maar dat is natuurlijk niet ideaal omdat je dan altijd 1 tabel joint die vol met null staat en dus in situatie 1 de waardes in PHP nutteloos maakt.

Nu wilde ik eigenlijk een soort IF statement gebruiken om de benodigde tabel te joinen afhankelijk van de waarde van feed_id. Ik kwam de CASE statement tegen maar dan heb ik iets als:
[ code verwijderd ]

Geeft me een syntax error en dat * is natuurlijk nog niet goed. Maar misschien kan dit ook met een slimme manier van joinen gedaan worden? Het gaat het me er dus om dat ik gewoon één user-tabel terug krijg die afhankelijk is van de feed_id.

Any thoughts?
Je idee is goed, alleen het gebruik van CASE niet. :) CASE gebruik je op 'kolomniveau' (bijvoorbeeld een kolom in de SELECT, WHERE, ORDER BY of GROUP BY clausule). Je kunt niet met CASE afhankelijk van een waarde in één verschillende kolommen selecteren, dan zou je dus een resultset krijgen waarvan de rijen qua structuur verschillen en dat kan natuurlijk niet.

Je moet het dus 'per kolom' gaan doen, als volgt:
1
2
3
4
5
6
7
8
9
SELECT
    object.veld1,
    object.veld2,
    (CASE object.feed_id WHEN 0 THEN user.id ELSE feed.id END) AS UiteindelijkUserID,
    (CASE object.feed_id WHEN 0 THEN user.username ELSE feed.username END) AS UiteindelijkUsername
FROM
    object
    LEFT OUTER JOIN feed ON feed.id = object.feed_id
    LEFT OUTER JOIN user ON user.id = object.user_id


[ Bericht 0% gewijzigd door Tuvai.net op 31-08-2010 10:31:19 ]
pi_85901534
Aah thanks!

Het is sowieso goed om alleen de kolommen te specifieren die ik nodig heb, het gaat hier in principe alleen om zoekresultaten en dan toon je toch maar een beperkte hoeveelheid informatie. Dankjewel! ^O^
You have to come back with me! Back to the Future!
  dinsdag 31 augustus 2010 @ 10:44:57 #135
1872 Jumparound
bedankt voor de vis
pi_85903319
quote:
Op dinsdag 31 augustus 2010 00:08 schreef Tuvai.net het volgende:
Woeps, header("Content-Description: File Transfer"); hoort er ook bij. ;)

En vang meteen die querystring ID af, die's nu gevoelig voor SQL injection. :)
ik ben dom geloof ik... maar zoek nog even verder, krijg het echt niet voor elkaar! :')
probeer nu een ander script, maar die loopt vast :')
Inorbit: zeg dat dan typluie triangeljosti
Beauregard: Een beetje FOK!ker laat het brood door z'n moeder smeren.
Ecosia
ek's 'n flash drive, jy's 'n floppy
pi_85908988
quote:
Op dinsdag 31 augustus 2010 10:44 schreef Jumparound het volgende:

[..]

ik ben dom geloof ik... maar zoek nog even verder, krijg het echt niet voor elkaar! :')
probeer nu een ander script, maar die loopt vast :')
Is jouw $content wel binair?
  dinsdag 31 augustus 2010 @ 13:54:43 #137
1872 Jumparound
bedankt voor de vis
pi_85909328
quote:
Op dinsdag 31 augustus 2010 13:44 schreef Tuvai.net het volgende:

[..]

Is jouw $content wel binair?
yup

content mediumblob BINARY
Inorbit: zeg dat dan typluie triangeljosti
Beauregard: Een beetje FOK!ker laat het brood door z'n moeder smeren.
Ecosia
ek's 'n flash drive, jy's 'n floppy
pi_85913185
hoe kan ik de eerste waarde uit een associative array halen op een nette manier?

ik doe het nu met foreach en dan gelijk een break, maar das lelijk
  dinsdag 31 augustus 2010 @ 15:43:51 #139
91039 mstx
2x1/2 = 1/2 x 1/2
pi_85913231
quote:
Op dinsdag 31 augustus 2010 15:41 schreef Schepseltje het volgende:
hoe kan ik de eerste waarde uit een associative array halen op een nette manier?

ik doe het nu met foreach en dan gelijk een break, maar das lelijk
http://nl2.php.net/manual/en/function.current.php
Eventueel met http://nl2.php.net/manual/en/function.reset.php
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_85913441
quote:
met reset lijkt het te lukken, thanks
  dinsdag 31 augustus 2010 @ 17:15:44 #141
1872 Jumparound
bedankt voor de vis
pi_85917009
de truc was om de headerinformatie naar boven te verplaatsen :')

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
<?php
if(isset($_GET['id'])) 
{
// if id is set then get the file with the id from database
header("Content-Description: File Transfer");
header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
header("Content-Transfer-Encoding: Binary");
include 'library/config.php';
include 'library/opendb.php'; 
$id    = $_GET['id'];
$query = "SELECT name, type, size, content " .
         "FROM upload WHERE id = '$id'";


$result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size, $content) = mysql_fetch_array($result);


echo $content;

include 'library/closedb.php'; 
exit;
}

?>
Bedankt tuvai!

PS, hoe krijg je je php code met kleurtjes?
Inorbit: zeg dat dan typluie triangeljosti
Beauregard: Een beetje FOK!ker laat het brood door z'n moeder smeren.
Ecosia
ek's 'n flash drive, jy's 'n floppy
  dinsdag 31 augustus 2010 @ 17:30:19 #142
1872 Jumparound
bedankt voor de vis
pi_85917626
tevroeg gejuigd, hij gaat nu de download.php opslaan :')
Inorbit: zeg dat dan typluie triangeljosti
Beauregard: Een beetje FOK!ker laat het brood door z'n moeder smeren.
Ecosia
ek's 'n flash drive, jy's 'n floppy
  dinsdag 31 augustus 2010 @ 17:51:14 #143
254493 Trollface.
gr rob fruithof, groningencity
pi_85918399
quote:
Op dinsdag 31 augustus 2010 17:15 schreef Jumparound het volgende:
PS, hoe krijg je je php code met kleurtjes?
[code=php] :)
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
  dinsdag 31 augustus 2010 @ 17:51:48 #144
254493 Trollface.
gr rob fruithof, groningencity
pi_85918429
quote:
Op dinsdag 31 augustus 2010 17:30 schreef Jumparound het volgende:
tevroeg gejuigd, hij gaat nu de download.php opslaan :')
Maakt niets uit, als het goed is bevalt ie wel de data die je nodig hebt. :)
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
  dinsdag 31 augustus 2010 @ 21:05:04 #145
1872 Jumparound
bedankt voor de vis
pi_85925880
dat wel, nu de naam nog :)
Inorbit: zeg dat dan typluie triangeljosti
Beauregard: Een beetje FOK!ker laat het brood door z'n moeder smeren.
Ecosia
ek's 'n flash drive, jy's 'n floppy
  woensdag 1 september 2010 @ 00:40:47 #146
137776 boem-dikkie
Jedi Mind Baby!
pi_85935543
Ik zit een beetje vast. Zal vast wel weer een beginnersfoutje zijn maar ik hoop dat jullie mij kunnen helpen.

Ik heb een tabel met nieuws-categorieën en een tabel met nieuws.

In de tabel nieuws staat een rij die 'categorie_id (INT)' heet. Met een JOIN kan ik op de nieuwspagina laten zien welke categorie uit 'nieuws-categorieën' bij welke categorie_id hoor in het nieuwsbericht..

Dat werkt allemaal prima!

Alleen nu heb ik een wijzigingsformulier voor nieuwsberichten waar ik dus ook JOIN gebruik. Zodat de user kan zien welke categorie er momenteel bij het nieuwsbericht hoor.. Alleen door die JOIN wil hij nu als hij een categorie wijzigt de naam van de categorie in de rij 'categorie_id' gooien volgens mij. Dat wil dus niet omdat categorie_id INT als eigenschap heeft...

Dit is echter alleen zo als hij de categorie die al bij het nieuwsbericht hoort laat voor wat het is. Als hij de categorie wijzigt doet hij het wel, als hij iets in het nieuwsbericht aanpast en de categorie zo laat geeft hij dus een 'undefined index' fout.

Ik hoop dat jullie het snappen. :') Geen idee hoe ik dit handig kan uitleggen.. :{
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_85938754
quote:
Op woensdag 1 september 2010 00:40 schreef boem-dikkie het volgende:
Ik zit een beetje vast. Zal vast wel weer een beginnersfoutje zijn maar ik hoop dat jullie mij kunnen helpen.

Ik heb een tabel met nieuws-categorieën en een tabel met nieuws.

In de tabel nieuws staat een rij die 'categorie_id (INT)' heet. Met een JOIN kan ik op de nieuwspagina laten zien welke categorie uit 'nieuws-categorieën' bij welke categorie_id hoor in het nieuwsbericht..

Dat werkt allemaal prima!

Alleen nu heb ik een wijzigingsformulier voor nieuwsberichten waar ik dus ook JOIN gebruik. Zodat de user kan zien welke categorie er momenteel bij het nieuwsbericht hoor.. Alleen door die JOIN wil hij nu als hij een categorie wijzigt de naam van de categorie in de rij 'categorie_id' gooien volgens mij. Dat wil dus niet omdat categorie_id INT als eigenschap heeft...

Dit is echter alleen zo als hij de categorie die al bij het nieuwsbericht hoort laat voor wat het is. Als hij de categorie wijzigt doet hij het wel, als hij iets in het nieuwsbericht aanpast en de categorie zo laat geeft hij dus een 'undefined index' fout.

Ik hoop dat jullie het snappen. :') Geen idee hoe ik dit handig kan uitleggen.. :{
Ik ga er van uit dat het categorie-veld dat je in je wijzigingsformulier gebruikt, een dropdown ( <select> ) is. Je met deze dan niet alleen vullen met de naam van de categorieën, maar de IDs van deze categorieën als value gebruiken, dus als volgt:

1
2
3
4
5
<select name="DropdownCategorie">
    <option value="1">Categorie 1</option>
    <option value="2">Categorie 2</option>
    <option value="3">Categorie 3</option>
</select>
  vrijdag 3 september 2010 @ 08:58:11 #148
25889 Sitethief
Fulltime Flapdrol
pi_86011770
1
2
3
4
5
if (preg_match("/[1-9]{1}[0-9]{3}[ ]?[a-z]{2}/i",$inputValidatePostCode)){
                return true;
            }else{
                return false;
            }
Ik wil hier mee postcodes valideren, dat gaat soms goed, maar hij pakt ook 5445 gh7 als geldige postcode.....
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_86011852
quote:
Op vrijdag 3 september 2010 08:58 schreef Sitethief het volgende:

[ code verwijderd ]

Ik wil hier mee postcodes valideren, dat gaat soms goed, maar hij pakt ook 5445 gh7 als geldige postcode.....
Je geeft geen begin en einde aan in je (mogelijke) expressie.

1/^[1-9]{1}[0-9]{3}[ ]?[a-z]{2}$/i
pi_86011931
quote:
Op vrijdag 3 september 2010 09:01 schreef Tuvai.net het volgende:

[..]

Je geeft geen begin en einde aan in je (mogelijke) expressie.
[ code verwijderd ]


Ik zie gewoon een slash als begin en als eind.
pi_86012515
Tuvai bedoelt het begin en einde van de string, dus ^ en $ :)
pi_86012793
quote:
Op vrijdag 3 september 2010 09:30 schreef Xcalibur het volgende:
Tuvai bedoelt het begin en einde van de string, dus ^ en $ :)
En die had hij er zelf al bijgezet. Maar het was nog vroeg en ik had nog geen koffie gehad.
pi_86012884
c_/

Ik ben alweer aan m'n derde kop bezig. :@
  vrijdag 3 september 2010 @ 13:47:27 #154
25889 Sitethief
Fulltime Flapdrol
pi_86020766
1'#^[1-9][0-9]{3}\h*[A-Z]{2}$#i'
Dit werkt wel :).
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  zaterdag 4 september 2010 @ 14:54:15 #155
137776 boem-dikkie
Jedi Mind Baby!
pi_86060971
Ik zie in mijn database (mySQL) steeds staan dat er een 'overheat' is. Ik kan dan op optimaliseer klikken en dan is het weg.. iemand een idee hoe dit veroorzaakt wordt?
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_86061105
quote:
Op zaterdag 4 september 2010 14:54 schreef boem-dikkie het volgende:
Ik zie in mijn database (mySQL) steeds staan dat er een 'overheat' is. Ik kan dan op optimaliseer klikken en dan is het weg.. iemand een idee hoe dit veroorzaakt wordt?
Overhead dus. ;)

Overhead zijn stukjes 'vervuilde' / loze ruimte die je tabel/database ooit gebruikt heeft als opslagruimte van een record dat verwijderd is, of voor het uitvoeren van grote queries. Veel databaseplatformen doen dit automatisch, MySQL doet dit niet om zo een stukje sneller te zijn. :)

Ik heb er zelf al jaren geen last meer van gehad, sinds ik InnoDB ald storage engine gebruik, en records niet meer daadwerkelijk delete (in plaats daarvan zet ik een indicatorveldje op 'true', of een datum).
  zaterdag 4 september 2010 @ 15:14:40 #157
137776 boem-dikkie
Jedi Mind Baby!
pi_86061510
quote:
Op zaterdag 4 september 2010 15:00 schreef Tuvai.net het volgende:

[..]

Overhead dus. ;)

Overhead zijn stukjes 'vervuilde' / loze ruimte die je tabel/database ooit gebruikt heeft als opslagruimte van een record dat verwijderd is, of voor het uitvoeren van grote queries. Veel databaseplatformen doen dit automatisch, MySQL doet dit niet om zo een stukje sneller te zijn. :)

Ik heb er zelf al jaren geen last meer van gehad, sinds ik InnoDB ald storage engine gebruik, en records niet meer daadwerkelijk delete (in plaats daarvan zet ik een indicatorveldje op 'true', of een datum).
Ik delete ook niet daadwerkelijk.. maar gaat het in de toekomst nog problemen opleveren? Of maakt het niet veel uit?
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  zaterdag 4 september 2010 @ 17:55:09 #158
75592 GlowMouse
l'état, c'est moi
pi_86065568
Dat je MyISAM gebruikt gaat je nog wel een keer problemen opleveren ja.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_86065936
quote:
Op zaterdag 4 september 2010 15:14 schreef boem-dikkie het volgende:
Ik delete ook niet daadwerkelijk.. maar gaat het in de toekomst nog problemen opleveren? Of maakt het niet veel uit?
MySQL met MyISAM als storage engine is, zoals Glowmouse al laat doorschemeren, nou niet bepaald het meest stabiele databaseplatform dat er is. Je zult heel vaak zien dat je overhead zult krijgen, en dat je tabellen bij extreme groei gewoon 'kapot' gaan waardoor je i.p.v. OPTIMIZE TABLE zelfs een REPAIR TABLE commando moet uitvoeren, om het .MYD bestandje (fysieke databestand van MySQL - MyISAM) te repareren.

Zie OPTIMIZE TABLE als het defragmenteren van je database. :)

Overigens wil ik niet zeggen dat MySQL - MyISAM per definitie slecht is hoor. Voor kleine website`jes waar je het over tienduizenden en misschien honderdduizenden records hebt, is het goed genoeg. Maar het is niet geschikt om met miljoenen records om te gaan voor grotere websites / applicaties.
  zaterdag 4 september 2010 @ 18:09:40 #160
75592 GlowMouse
l'état, c'est moi
pi_86065997
quote:
Op zaterdag 4 september 2010 18:07 schreef Tuvai.net het volgende:

[..]

dat je tabellen bij extreme groei gewoon 'kapot' gaan waardoor je i.p.v. OPTIMIZE TABLE zelfs een REPAIR TABLE commando moet uitvoeren, om het .MYD bestandje (fysieke databestand van MySQL - MyISAM) te repareren.
Tabellen gaan niet kapot door hun grootte maar door kapotte hardware of door stroomuitval. In het eerste geval zit je met geen enkele engine 100% veilig.
quote:
Op zaterdag 4 september 2010 18:07 schreef Tuvai.net het volgende:

[..]

Overigens wil ik niet zeggen dat MySQL - MyISAM per definitie slecht is hoor. Voor kleine website`jes waar je het over tienduizenden en misschien honderdduizenden records hebt, is het goed genoeg. Maar het is niet geschikt om met miljoenen records om te gaan voor grotere websites / applicaties.
Het is alleen goed genoeg als je het niet erg vindt als je data verloren gaat of als users inconsistente gegevens zien.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_86066254
quote:
Op zaterdag 4 september 2010 18:09 schreef GlowMouse het volgende:
Tabellen gaan niet kapot door hun grootte maar door kapotte hardware of door stroomuitval. In het eerste geval zit je met geen enkele engine 100% veilig.
Ik heb in het verleden een eigen forum gehad (PHP en MySQL - MyISAM) waarvan de Posts-tabel op een gegeven moment richting de miljoen records ging. Die tabel ging steeds vaker gewoon 'kapot', zonder dat er sprake was van een verkeerd ingerichte of kapotte server, of stroomuitval. Nu is het zeker zo dat er op elk platform wel eens iets goed mis kan gaan door een van de oorzaken die jij al noemt, maar ik ben dit tot nu toe alleen nog maar tegengekomen bij MySQL in de praktijk. En vaak ook.

quote:
Het is alleen goed genoeg als je het niet erg vindt als je data verloren gaat of als users inconsistente gegevens zien.
MySQL - MyISAM is goed voor kleine en snelle dingen. Voor een simpele website met een contactformuliertje en gastenboek hoef ik geen relationele database op de achtergrond.
  zaterdag 4 september 2010 @ 19:29:37 #162
75592 GlowMouse
l'état, c'est moi
pi_86068271
quote:
Op zaterdag 4 september 2010 18:18 schreef Tuvai.net het volgende:

[..]

Ik heb in het verleden een eigen forum gehad (PHP en MySQL - MyISAM) waarvan de Posts-tabel op een gegeven moment richting de miljoen records ging. Dit tabel ging steeds vaker gewoon 'kapot', zonder dat er sprake was van een verkeerd ingerichte of kapotte server, of stroomuitval. Nu is het zeker zo dat er op elk platform wel eens iets goed mis kan gaan door een van de oorzaken die jij al noemt, maar ik ben dit tot nu toe alleen nog maar tegengekomen bij MySQL in de praktijk. En vaak ook.
Als je het kunt reproduceren dan moet je een bugreport indienen, maar MyISAM gaat echt niet zomaar kapot. Het wordt best veel gebruikt voor datamining, en dan heb je het niet over kleine tabellen.
quote:
MySQL - MyISAM is goed voor kleine en snelle dingen. Voor een simpele website met een contactformuliertje en gastenboek hoef ik geen relationele database op de achtergrond.
Onzin, het is niet voor niks dat MySQL standaard overgaat op InnoDB.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 6 september 2010 @ 11:03:30 #163
25889 Sitethief
Fulltime Flapdrol
pi_86119497
Wat is eigenlijk naast tweakers/webwereld en natuurlijk php.net een goede website om up to date te blijven wbt trends in programmering/webdesign?

En wie heeft er ervaring met Git(Hub), is het echt zo goed als men zegt, of hangt dat heel erg af van wat de wensen zijn?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_86120178
Kan iemand wat linkjes posten naar wat het probleem van MyISAM precies is?
Ik heb er zelf nog nooit problemen mee gehad, en ik vind de exacte rowcount altijd wel prettig....
pi_86132432
Iemand een idee hoe ik op een nette manier parameters kan meesturen naar een include

Dus ik roep aan:
1index.php?string=test&number=123
En geïnclude wordt:
1include.php?number=123
Als bovenstaande includen gaat niet, omdat de server dan opzoek gaat naar een pagina die include.php?number=123 heet en niet een pagina die include.php heet.

EDIT: Het doorgeven van variabelen is niet nodig.

[ Bericht 4% gewijzigd door poepeneesje op 06-09-2010 18:17:10 ]
Aan dit bericht kunnen geen rechten worden ontleend.
pi_86137912
als je een variabele boven je include in de eerste pagina defineerd dan word deze gewoon meegenomen in de include
pi_86140974
quote:
Op maandag 6 september 2010 19:47 schreef Darkomen het volgende:
als je een variabele boven je include in de eerste pagina defineerd dan word deze gewoon meegenomen in de include
Ik had inderdaad al opgemerkt ja.
Aan dit bericht kunnen geen rechten worden ontleend.
pi_86141831
Nog een vraag :P.

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
<?php
class Database
{
    public 
$host         DB_HOST;
    public 
$database     DB_DBNAME;
    public 
$user         DB_USERNAME;
    public 
$password     DB_PASSWORD;
    
    public function 
connect()
    {
        
$connect mysql_connect($this->host$this->user$this->password)
        or die (
mysql_error());
            
        if(
$connect)
        {
            
mysql_select_db($this->database)
            or die (
mysql_error());
        }
    }
    
    public function 
disconnect()
    {
        
mysql_close($connect
        or die (
mysql_error());
    }
}
?>
Als de pagina als include opvraag zie ik in Firebug:
quote:
Fatal error: Using $this when not in object context in /home/vhosting/k/[..]/htdocs/cms/libs/database.class.php on line 18
Iemand die mij kan vertellen wat ik fout doe?
Aan dit bericht kunnen geen rechten worden ontleend.
pi_86142446
quote:
Op maandag 6 september 2010 21:10 schreef poepeneesje het volgende:
Nog een vraag :P.
[ code verwijderd ]

Als de pagina als include opvraag zie ik in Firebug:
[..]

Iemand die mij kan vertellen wat ik fout doe?
Foutmelding verklapt het min of meer al: $this is alleen beschikbaar wanneer je het over geïnstantieerde objecten hebt. Je dient dus eerst een instantie te maken van je database class/object d.m.v. $var = new Database();, alvorens je $var->connect() kunt uitvoeren.
pi_86142925
quote:
Op maandag 6 september 2010 11:23 schreef Xcalibur het volgende:
Kan iemand wat linkjes posten naar wat het probleem van MyISAM precies is?
Ik heb er zelf nog nooit problemen mee gehad, en ik vind de exacte rowcount altijd wel prettig....
MySQL met MyISAM is inderdaad maar een slecht databaseplatform als je het gaat vergelijken met stabielere platformen als MySQL - InnoDB, Orable, SQL Server, enzovoorts. MyISAM ondersteunt onder andere geen transactions en relaties, en er is vrijwel geen data integriteit.

Natuurlijk is het veel beter om een relationeel databaseplatform te gebruiken, en je database logisch in te richten.
Toch is het een afweging die je kunt maken. Voor kleine websites met enkel een paar 'platte' gegevenstabellen (gastenboek, tagboard, reacties, etc.), is MyISAM een prima keuze. Voor grotere projecten/applicaties, gebruik je een relationeel databaseplatform.
  maandag 6 september 2010 @ 22:57:53 #171
25889 Sitethief
Fulltime Flapdrol
pi_86148139
quote:
Op maandag 6 september 2010 21:22 schreef Tuvai.net het volgende:

[..]

Foutmelding verklapt het min of meer al: $this is alleen beschikbaar wanneer je het over geïnstantieerde objecten hebt. Je dient dus eerst een instantie te maken van je database class/object d.m.v. $var = new Database();, alvorens je $var->connect() kunt uitvoeren.
Of je set die waardes gewoon in je constructor? Dan kun je ze oproepen met this, en meegeven bij het instantiëren van de gehele class....

quote:
PHP 5 allows developers to declare constructor methods for classes. Classes which have a constructor method call this method on each newly-created object, so it is suitable for any initialization that the object may need before it is used.
1
2
3
4
5
6
function __construct($dbhost, $dbname, $dbuser, $dbpassword) {
       $this->dbhost = $dbhost;
       $this->dbname = $dbname;
       $this->dbuser = $dbuser;
       $this->dbpassword = $dbpassword;
}
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_86148494
of je haalt gewoon alle This weg en het is ook opgelost :Y .
omdat het publieke variabele zijn kun je ze in alle functies aanroepen.

mits je de waardes in public neerzet :Y
Redacted
pi_86149514
Tuvai.net, Sitethief en cablegunmaster: Bedankt voor jullie reactie *O*.

Ik heb het zelf als volgt opgelost:
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
<?php
class Database
{
    private static 
$host         DB_HOST;
    private static 
$database     DB_DBNAME;
    private static 
$user         DB_USERNAME;
    private static 
$password     DB_PASSWORD;
    private static 
$connect;
    
    public function 
connect()
    {
        
self::$connect mysql_connect(self::$hostself::$userself::$password)
        or die (
mysql_error());
            
        if(
self::$connect)
        {
            
mysql_select_db(self::$database)
            or die (
mysql_error());
        }
    }
    
    public function 
disconnect()
    {
        
mysql_close(self::$connect)
        or die (
mysql_error());
    }
}
?>
Is dit een goede manier of is jullie manier beter en wil je dan uitleggen waarom?
Aan dit bericht kunnen geen rechten worden ontleend.
pi_86150006
quote:
Op maandag 6 september 2010 23:28 schreef poepeneesje het volgende:
Tuvai.net, Sitethief en cablegunmaster: Bedankt voor jullie reactie *O*.

Ik heb het zelf als volgt opgelost:
[ code verwijderd ]

Is dit een goede manier of is jullie manier beter en wil je dan uitleggen waarom?
Je zou inderdaad, zoals Sitethief al aangeeft, kunnen overwegen om je verbinding te initialiseren in een 'constructor', een functie genaamd __construct() die automatisch altijd aangeroepen wordt bij het instantiëren van je Database object.

Verdiep je ook eens in 'protection levels' (public, private, protected), 'inheritance' en het verschil tussen 'static' en 'non static'. :) Als je daarmee overweg kunt, kun je op zich eens gaan stoeien met het bouwen van leuke modellen. :)

http://www.sitemasters.be(...)tected_en_Private%29
http://theserverpages.com/php/manual/en/language.oop5.static.php
pi_86150433
quote:
Op maandag 6 september 2010 23:41 schreef Tuvai.net het volgende:

[..]

Je zou inderdaad, zoals Sitethief al aangeeft, kunnen overwegen om je verbinding te initialiseren in een 'constructor', een functie genaamd __construct() die automatisch altijd aangeroepen wordt bij het instantiëren van je Database object.

Verdiep je ook eens in 'protection levels' (public, private, protected), 'inheritance' en het verschil tussen 'static' en 'non static'. :) Als je daarmee overweg kunt, kun je op zich eens gaan stoeien met het bouwen van leuke modellen. :)

http://www.sitemasters.be(...)tected_en_Private%29
http://theserverpages.com/php/manual/en/language.oop5.static.php
Meeste termen kende ik hier al van maar ik dank je voor de links :D .

en wat hij zegt is een __construct() eigenlijk toch het beste in jou geval.
je hoeft namelijk de waardes maar 1x in te stellen lijkt mij.

dus op zijn netst qua code is Sitethief het efficientst bezig.
Redacted
pi_86150942
quote:
Op maandag 6 september 2010 23:54 schreef cablegunmaster het volgende:

[..]

Meeste termen kende ik hier al van maar ik dank je voor de links :D .

en wat hij zegt is een __construct() eigenlijk toch het beste in jou geval.
je hoeft namelijk de waardes maar 1x in te stellen lijkt mij.

dus op zijn netst qua code is Sitethief het efficientst bezig.
In mijn geval stel in de waardes toch ook maar 1x in?

Verder hoef je op mijn manier geen nieuw object aan te maken. Die manier van Sitethief geeft precies hetzelfde resultaat als wat ik doe.

Verder dien ik op de manier van ST de boel op deze manier aan te roepen (zoals Tuvai.net aangaf):
1
2
3
4
5
6
<?php
$db 
= new Database();
$db->connect();
[...]
$db->disconnect();
?>
En ik kan voldoen met:
1
2
3
4
5
<?php
Database
::connect();
[...]
Database::disconnect();
?>
Aan dit bericht kunnen geen rechten worden ontleend.
pi_86151494
Whatever works for you :P
Redacted
pi_86155398
quote:
Op dinsdag 7 september 2010 00:08 schreef poepeneesje het volgende:

[..]

In mijn geval stel in de waardes toch ook maar 1x in?

Verder hoef je op mijn manier geen nieuw object aan te maken. Die manier van Sitethief geeft precies hetzelfde resultaat als wat ik doe.

Verder dien ik op de manier van ST de boel op deze manier aan te roepen (zoals Tuvai.net aangaf):
[ code verwijderd ]

En ik kan voldoen met:
[ code verwijderd ]


Als je je verbinding initialiseert in je constructor, is $var = new Database(); al voldoende om deze verbinding te initialiseren. Dan hoef je niet nog eens apart je connect() methode te gebruiken (die dan sowieso weg valt). ;)

Het voordeel van het werken met die methode, is dat je logisch database-object krijgt waar je tegen aan programmeert, in plaats van een verzameling statische methodes. Je hebt dan ook in je Database class de mogelijkheid om $this te gebruiken, waarmee je een extra 'scope' toevoegt aan je code. Je kunt op die manier bijvoorbeeld ook er voor kiezen om je verbinding te initialiseren in een aparte, private/protected methode/variabele in je Database class, waarbij je in elke andere methode controleert of deze variabele gevuld is (hetgeen dus betekent dat je verbinding geïnitialiseerd is ). Zo kun je weer andere technieken toepassen, zoals 'Lazy Loading'. :)
pi_86156707
quote:
Op dinsdag 7 september 2010 09:23 schreef Tuvai.net het volgende:

[..]

Als je je verbinding initialiseert in je constructor, is $var = new Database(); al voldoende om deze verbinding te initialiseren. Dan hoef je niet nog eens apart je connect() methode te gebruiken (die dan sowieso weg valt). ;)

Het voordeel van het werken met die methode, is dat je logisch database-object krijgt waar je tegen aan programmeert, in plaats van een verzameling statische methodes. Je hebt dan ook in je Database class de mogelijkheid om $this te gebruiken, waarmee je een extra 'scope' toevoegt aan je code. Je kunt op die manier bijvoorbeeld ook er voor kiezen om je verbinding te initialiseren in een aparte, private/protected methode/variabele in je Database class, waarbij je in elke andere methode controleert of deze variabele gevuld is (hetgeen dus betekent dat je verbinding geïnitialiseerd is ). Zo kun je weer andere technieken toepassen, zoals 'Lazy Loading'. :)
Als aanvulling is het best mogelijk dat er een situatie komt waarbij twee databaseverbindingen nodig zijn. Dat gaat je niet lukken als de class een static class is.
pi_86162003
Bedankt voor de duidelijke uitleg! Uiteindelijk ziet mijn class er zo uit :).

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
<?php
class Database
{
    private 
$host;
    private 
$database;
    private 
$user;
    private 
$password;
    private 
$connect;
    
    public function 
__construct()
    {
        
$this->host         DB_HOST;
        
$this->database     DB_DBNAME;
        
$this->user         DB_USERNAME;
        
$this->password     DB_PASSWORD;
        
        
$this->connect();
    }
    
    private function 
connect()
    {
        if(!
$this->connect)
        {
            
$this->connect mysql_connect($this->host$this->user$this->password)
            or die (
mysql_error());
                
            if(
$this->connect)
            {
                
mysql_select_db($this->database)
                or die (
mysql_error());
            }
        }
    }
    
    public function 
disconnect()
    {
        if(
$this->connect)
        {
            
mysql_close($this->connect)
            or die (
mysql_error());
        }
    }
}
?>
Aan dit bericht kunnen geen rechten worden ontleend.
pi_86162462
$this->connect als variable naam zou ik dan $this->connection van maken.
pi_86168093
quote:
Op dinsdag 7 september 2010 13:48 schreef Scorpie het volgende:
$this->connect als variable naam zou ik dan $this->connection van maken.
Dat is een goede! Aangepast. Tevens ook het PDO-object gebruikt om de verbinding op te zetten met MySQL.
Aan dit bericht kunnen geen rechten worden ontleend.
pi_86176109
quote:
Op dinsdag 7 september 2010 16:13 schreef poepeneesje het volgende:
Dat is een goede! Aangepast. Tevens ook het PDO-object gebruikt om de verbinding op te zetten met MySQL.
Goede zet. PDO is ideaal voor als je meerdere databaseplatformen wilt ondersteunen. Ook biedt PDO de mogelijkheid om transactions op te bouwen. Handig voor wanneer je dat niet op databaseniveau kunt doen.
  dinsdag 7 september 2010 @ 21:16:01 #184
137776 boem-dikkie
Jedi Mind Baby!
pi_86180868
Bedankt voor alle database info heren! Database van mij is in gebruik voor hooguit een paar 100 misschien 1000 records. Dus miljoenen zijn en worden het sowieso niet. Hebben jullie nog tips voor goede tutorials over een stevig inlogsysteem? Gebruik nu gewoon sessions en dergelijke maar lees overal dingen over sessions injection e.d. Zelf al wat gegoogled maar kom vooral bij resultaten en sites uit 2004 enzo. Beetje oud. :P
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_86183045
quote:
Op dinsdag 7 september 2010 21:16 schreef boem-dikkie het volgende:
Bedankt voor alle database info heren! Database van mij is in gebruik voor hooguit een paar 100 misschien 1000 records. Dus miljoenen zijn en worden het sowieso niet. Hebben jullie nog tips voor goede tutorials over een stevig inlogsysteem? Gebruik nu gewoon sessions en dergelijke maar lees overal dingen over sessions injection e.d. Zelf al wat gegoogled maar kom vooral bij resultaten en sites uit 2004 enzo. Beetje oud. :P
Wat beveiliging betreft, kan ik je OWASP aanraden: http://www.owasp.org/index.php/Main_Page
Op die Wikipedia-achtige website staan de meest voorkomende beveiligingslekken en manieren op scripts te exploiteren. Vaak worden er ook in diverse programmeertalen voorbeelden gegeven.

Psst, die 8-bit muziek in je sig. O+
  donderdag 9 september 2010 @ 11:54:49 #186
73006 PaRaR
Geboren en getogen
pi_86236561
Hoi.

Ik probeer met mijn scriptje bepaalde Google resultaten te 'scrapen'. Ik wil dus van een bepaalde query in google alle url's eruit halen. Hij doet dit nu wel, maar ik krijg het niet voor elkaar om het van meer dan 1(de eerste) pagina zoekresultaten te doen... Ik doe dit met cURL.

De volgende url gebruik ik dus in cURL die werkt:
quote:
"http://www.google.com/search?q=" . urlencode($keyword) . ""
Nou wil ik meer dan 1 standaard pagina met 10 resultaten leeghalen... dus ik dacht ik voeg num=100(100 resultaten) toe aan de url:
quote:
"http://www.google.com/search?num=100&q=" . urlencode($keyword) . "",
Dit werkt WEL als ik het normaal laad in een browser, maar werkt NIET via cURL... Heeft iemand de gouden tip voor mij om meer dan 10 resultaten te laden met PHP/cURL van google?!

Alvast bedankt
pi_86236982
quote:
Op dinsdag 7 september 2010 21:16 schreef boem-dikkie het volgende:
Bedankt voor alle database info heren! Database van mij is in gebruik voor hooguit een paar 100 misschien 1000 records. Dus miljoenen zijn en worden het sowieso niet. Hebben jullie nog tips voor goede tutorials over een stevig inlogsysteem? Gebruik nu gewoon sessions en dergelijke maar lees overal dingen over sessions injection e.d. Zelf al wat gegoogled maar kom vooral bij resultaten en sites uit 2004 enzo. Beetje oud. :P
quote:
Dave
17-Nov-2009 10:05
If you deploy php code and cannot control whether register_globals is off, place this snippet in your code to prevent session injections:
1
2
3
<?php
if (isset($_REQUEST['_SESSION'])) die("Get lost Muppet!");
?>
mss dit iets voor je ;)

Daarnaast zie ik veel admins die aan raden toch een Database sessie te maken. dat houd in als ze zijn ingelogd dat de gegevens in een tabel komen. met een Tijd waarde + 60 minuten bvb.

Een sessie tabel. met dezelfde sessie tabel kun je meteen kijken hoeveel bezoekers je hebt ;) op je website.
of ze zijn ingelogd of niet. (gasten / bezoekers).

en als de site de 60 minuten overschrijd dan logt hij je uit. of je moet met dezelfde sessie op een pagina zijn geland en de sql opnieuw updaten ;) .
Redacted
pi_86237930
Hoi,

Ik wil een gallery maken in PHP. Ik ben er echter niet heel goed in. Ik heb een paar lessen PHP gehad op school, maar niets had echt te maken met het maken van een gallery.

Wat ik wil, is dat er in mijn site, links een lijst komt met de linkjes naar de pagina, en dat rechts dan het plaatje inlaadt. Ook wil ik dat er een vorige/volgende komt.

Het probleem is echter, dat de galleryscripts die ik op het internet vind, allemaal werken met thumbnails, en dat wil ik niet.
http://sye.dk/sfpg/
Zulke.

Weet iemand toevallig een link waar ze gebruik maken van het idee wat ik heb? Dan denk ik dat ik het van daaruit wel zelf op kan lossen.

Bedankt!
pi_86238020
Pak gewoon Coppergallery ofzo.
pi_86238076
quote:
Op donderdag 9 september 2010 12:44 schreef Scorpie het volgende:
Pak gewoon Coppergallery ofzo.
Wel heel veel nutteloze features voor mijn site, is er niets simpelers?
pi_86238094
Wat Scorpie zegt. En dat 99% van de galleries met thumbnails werken heeft een reden hoor. Zou leuk worden voor zowel de bezoeker als het bandbreedteverbruik als er hele galerijen met tientallen foto's van origineel formaat in één keer geladen / ge`preload zouden worden.
pi_86238106
quote:
Op donderdag 9 september 2010 12:46 schreef RenRen- het volgende:

[..]

Wel heel veel nutteloze features voor mijn site, is er niets simpelers?
Je kan het er zelf uitslopen :)
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')