FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies #99
Swetseneggerdonderdag 9 februari 2012 @ 17:19
php.jpg


Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt :)

Zie ook:
PHP Dataverwerking
Officiële PHP website
PHP Documentatie
MySQL Reference Manual
Yet Another PHP Faq
PHP Cheat Sheet
PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

Tutorials:
W3Schools PHP
W3Schools SQL
Swetseneggerdonderdag 9 februari 2012 @ 21:19
Ik heb wel een leuk vraagstuk. Voor een website heb ik verschillende categorieën voor producten:

tassen, business, travel, kids, accessoires, overige

Maar omdat producten onder verschillende categorieën kunnen voorkomen (bv onder tassen en business of onder travel en accessoires, of tassen, travel en accessoires, etc) heb ik een rekenkundig truukje verzonnen om de meuk in 1 integer in de db op te slaan

1
2
3
4
5
6
1=tassen
2=business
4=travel
8=kids
16=accessoires
32=overige

En op die manier kan je elke mogelijke combinatie eenvoudig in de database opslaan door de waarden simpelweg op te tellen, bv:

1
2
3
4
3 = tassen + business
48= accessoires + overige
33= tassen + overige
28= travel + kids + accessoires

Volledige lijstje:

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
1=tassen
2=business
3=tassen + business
4=travel
5=tassen+travel
6=business+travel
7=tassen +business+travel
8=kids
9=tassen+kids
10=business+kids
11=tassen+business+kids
12=travel+kids
13=tassen+travel+kids
14=business+travel+kids
15=tassen+business+travel+kids
16=accessoires
17=tassen+accessoires
18=bussines+accessoires
19=tassen+business+accessoires
20=travel+accessoires
21=tassen+travel+accessoires
22=business+travel+accessoires
23=tassen+business+travel+accessoires
24=kids+accessoires
25=tassen+kids+accessoires
26=business+kids+accessoires
27=tassen+business+kids+accessoires
28=travel+kids+accessoires
29=tassen+travel+kids+accessoires
30=business+travel+kids+accessoires
31= tassen+business+travel+kids+accessoires
32=overige
33=tassen+overige
34=business+overige
35=tassen+business+overige
36=travel+overige
37=tassen+travel+overige
38=business+travel+overige
39=tassen+business+travel+overige
40=kids+overige
41=tassen+kids+overige
42=business+kids+overige
43=tassen+business+kids+overige
44=travel+kids+overige
45=tassen+travel+kids+overige
46=business+travel+kids+overige
47=tassen+business+travel+kids+overige
48=accessoires+overige
49=tassen+accessoires+overige
50=business+accessoires+overige
51=tassen+business+accessoires+overige
52=travel+accessoires+overige
53=tassen+travel+accessoires+overige
54=business+travel+accessoires+overige
55=tassen+business+travel+accessoires+overige
56=kids+accessoires+overige
57=tassen+kids+accessoires+overige
58=business+kids+accessoires+overige
59=tassen+business+kids+accessoires+overige
60=travel+kids+accessoires+overige
61=tassen+travel+kids+accessoires+overige
62=business+travel+kids+accessoires+overige
63=tassen+business+travel+kids+accessoires+overige

Naar de database schrijven doe ik dmv aangevinkte checkboxen met de waarden 1,2,4,8,16,32 simpelweg bij elkaar op te tellen.
Uit de database trekken dmv een simpele switch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
switch($page){
            case 
"tassen":
                
$category="1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63";
                break;
            case 
"business":
                
$category="2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31,34,35,38,39,42,43,46,47,50,51,54,55,58,59,62,63";
                break;
            case 
"travel":
                
$category="4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31,36,37,38,39,44,45,46,47,52,53,54,55,60,61,62,63";
                break;
            case 
"kids":
                
$category="8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31,40,41,42,43,44,45,46,47,56,57,58,59,60,61,62,63";
                break;
            case 
"accessoires":
                
$category="16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63";
                break;
            case 
"overige":
                
$category="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";
                break;
            }
?>

So far so good... Máár... Ik moet de invoer ook kunnen editten. Dus aan de hand van bv "56" moet ik de juiste checkboxen in de edit mode weer "pre-checken' zodat de beheerder weet welke categorieen hij in eerste instantie geselecteerd had.

Nu kan ik natuurlijk voor alle 63 mogelijkheden een switch schrijven:

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
<?php
switch ($row['category']){

case 
"1":
$array=array(1);
break;

case
"2":
$array=array(2);
break;

case
"3":
$array=array(1,2);
break;

case
"4":
$array=array(4);
break;

case
"5":
$array=array(2,3);
break;

case
"6":
$array=array(2,4);
break;

case
"7":
$array=array(1,2,4);
break;

case
"8":
$array=array(8);
break;

}
?>
etc, etc
Maar dat lijkt me wat omslachtig :')
Iemand een handiger idee?
#ANONIEMdonderdag 9 februari 2012 @ 21:20
Ja, gebruik een koppeltabel.
Swetseneggerdonderdag 9 februari 2012 @ 21:23
quote:
14s.gif Op donderdag 9 februari 2012 21:20 schreef Scorpie het volgende:
Ja, gebruik een koppeltabel.
Mjah nonsens, je kan overal wel een koppeltabel voor aan gaan maken. dit werkt net zo effectief.

-edit- Veruidelijking, Ik gebruik voor ALLES wat uitbreidbaar is een koppeltabel. Deze categorieën zijn doelbewust zo gekozen en worden niet uitgebreid en zijn dus een vast onderdeel van productkenmerken. Uitbreiding zou ook een compleet andere vormgeving betekenen en is nadrukkelijk zo doorgesproken dus gaat ook niet gebeuren :)
#ANONIEMdonderdag 9 februari 2012 @ 21:25
quote:
0s.gif Op donderdag 9 februari 2012 21:23 schreef Swetsenegger het volgende:

[..]

Mjah nonsens, je kan overal wel een koppeltabel voor aan gaan maken. dit werkt net zo effectief.
Ja, het werkt inderdaad perfect, een beetje rekensommen gaan bijhouden in PHP om je koppelingen die je op een dramatische manier je database infietst bij te houden, om nog maar te zwijgen van de persoon na jou die die meuk van je mag gaan onderhouden en een groot WTF moment gaat krijgen bij het zien van deze handel.
Swetseneggerdonderdag 9 februari 2012 @ 21:26
quote:
14s.gif Op donderdag 9 februari 2012 21:25 schreef Scorpie het volgende:

[..]

Ja, het werkt inderdaad perfect, een beetje rekensommen gaan bijhouden in PHP om je koppelingen die je op een dramatische manier je database infietst bij te houden, om nog maar te zwijgen van de persoon na jou die die meuk van je mag gaan onderhouden en een groot WTF moment gaat krijgen bij het zien van deze handel.
Dit is anders een beproefde methode die ook regelmatig gebruikt wordt om rollen en rechten bij te houden. Er worden helemaal geen 'rekensommen' bijgehouden.
#ANONIEMdonderdag 9 februari 2012 @ 21:28
quote:
0s.gif Op donderdag 9 februari 2012 21:26 schreef Swetsenegger het volgende:

[..]

Dit is anders een beproefde methode die ook regelmatig gebruikt wordt om rollen en rechten bij te houden. Er worden helemaal geen 'rekensommen' bijgehouden.
En daarom werkt het in jouw geval dus niet.

[ Bericht 0% gewijzigd door #ANONIEM op 09-02-2012 21:28:43 ]
Devvdonderdag 9 februari 2012 @ 21:29
Gebruik toch gewoon koppeltabellen :') . Je gaat toch het wiel niet opnieuw uitvinden?
Swetseneggerdonderdag 9 februari 2012 @ 21:30
quote:
14s.gif Op donderdag 9 februari 2012 21:28 schreef Scorpie het volgende:

[..]

En daarom werkt het in jouw geval dus niet.
Het werkt prima, ik kan er ook even met een loopje doorheen. Daar ging mijn vraag over :')
quote:
7s.gif Op donderdag 9 februari 2012 21:29 schreef Devv het volgende:
Gebruik toch gewoon koppeltabellen :') . Je gaat toch het wiel niet opnieuw uitvinden?
Wiel uitvinden? Dit wordt al jaren zo gebruikt man.
Devvdonderdag 9 februari 2012 @ 21:32
quote:
0s.gif Op donderdag 9 februari 2012 21:30 schreef Swetsenegger het volgende:

[..]

Het werkt prima, ik kan er ook even met een loopje doorheen. Daar ging mijn vraag over :')

[..]

Wiel uitvinden? Dit wordt al jaren zo gebruikt man.
Maar jij gaat code schrijven om relaties te leggen tussen gegevens die je later sowieso in een relationele database gaat opslaan 8)7 . Of snap ik het gewoon niet?
#ANONIEMdonderdag 9 februari 2012 @ 21:32
Oke, wees lekker eigenwijs. I pity the fool die na jou de tyfuszooi mag opruimen en een extra categorie mag gaan toevoegen _O-
KomtTijd...donderdag 9 februari 2012 @ 21:34
als je die lijstjes die je gebruikt in je select, in een array zet kun je daar dmv foreach doorheen lopen en dan gewoon array[] = 1 doen enzo. Gebruik alsjeblieft een koppeltabel.
Devvdonderdag 9 februari 2012 @ 21:35
quote:
14s.gif Op donderdag 9 februari 2012 21:32 schreef Scorpie het volgende:
Oke, wees lekker eigenwijs. I pity the fool die na jou de tyfuszooi mag opruimen en een extra categorie mag gaan toevoegen _O-
Dit dus. Het is een leuke oefening, maar ik zou het persoonlijk niet in productiecode gebruiken. Ik krijg nu al hoofdpijn van het bovenstaande concept.
GlowMousedonderdag 9 februari 2012 @ 21:35
quote:
14s.gif Op donderdag 9 februari 2012 21:20 schreef Scorpie het volgende:
Ja, gebruik een koppeltabel.
dit. En als je echt eigenwijs bent, kijk je op http://www.php.net/manual/en/language.operators.bitwise.php
Swetseneggerdonderdag 9 februari 2012 @ 21:35
quote:
14s.gif Op donderdag 9 februari 2012 21:32 schreef Scorpie het volgende:
Oke, wees lekker eigenwijs. I pity the fool die na jou de tyfuszooi mag opruimen en een extra categorie mag gaan toevoegen _O-
Als er een extra categorie toegevoegd moet worden moet de hele voorkant gewijzigd worden....
#ANONIEMdonderdag 9 februari 2012 @ 21:36
quote:
0s.gif Op donderdag 9 februari 2012 21:35 schreef Swetsenegger het volgende:

[..]

Als er een extra categorie toegevoegd moet worden moet de hele voorkant gewijzigd worden....
En dat is relevant omdat? Wilde je gewoon uit rancune het principe 'dynamisch' niet toepassen, of vond je het gewoon teveel moeite?

[ Bericht 8% gewijzigd door #ANONIEM op 09-02-2012 21:36:34 ]
Swetseneggerdonderdag 9 februari 2012 @ 21:36
Och kijk alle heren gelijk weer op hun hoge paarden zitten. Geen idee van wat er verder op die website gebeurt maar direct hun mond vol :')

Echt dit topic is vervallen tot betweters die niemand meer wat willen uitleggen maar alleen hun e-piemel willen showen.
GlowMousedonderdag 9 februari 2012 @ 21:37
ik had je een hele mooie hint gegeven
Swetseneggerdonderdag 9 februari 2012 @ 21:37
quote:
5s.gif Op donderdag 9 februari 2012 21:36 schreef Scorpie het volgende:

[..]

En dat is relevant omdat? Wilde je gewoon uit rancune het principe 'dynamisch' niet toepassen, of vond je het gewoon teveel moeite?
Wat is het nut van eenvoudig een extra categorie toe te kunnen voegen als vervolgens de hele voorkant EN achterkant op de schop kan?

Kijk nu is bv afgesproken dat er max 3 foto's aan een product hangen. Maar die staan uiteraard in een koppeltabel want je kan er op wachten dat dat er 4 moeten worden. Eenvoudig uit te breiden.
Kleuren per artikel: koppeltabel. Merk: koppeltabel.

In dit geval is het een FIXED onderdeel van de volledige navigatie op de website. Het is simpelweg niet eenvoudig aan te passen. Kan het in een koppeltabel? Vast wel, heb ik een redelijk ingewikkelde query nodig om de meuk eruit te trekken.

[ Bericht 27% gewijzigd door Swetsenegger op 09-02-2012 21:42:58 ]
#ANONIEMdonderdag 9 februari 2012 @ 21:40
quote:
0s.gif Op donderdag 9 februari 2012 21:37 schreef Swetsenegger het volgende:

[..]

Wat is het nut van eenvoudig een extra categorie toe te kunnen voegen als vervolgens de hele voorkant EN achterkant op de schop kan?
Dan kan je je beter afvragen waarom je de voorkant en achterkant op de schop moet gooien bij zoiets simpels als een extra categorie, iets dat je natuurlijk op je vingers kan natellen dat er in de toekomst zoiets gaat gebeuren. Waarom is er geen rekening mee gehouden in het initiele ontwerp en ontwikkelfase?

Maar goed, ik ben toch maar een betweter die zijn e-piemel wil tonen ofzo.

[ Bericht 9% gewijzigd door #ANONIEM op 09-02-2012 21:41:25 ]
Swetseneggerdonderdag 9 februari 2012 @ 21:44
quote:
0s.gif Op donderdag 9 februari 2012 21:40 schreef Scorpie het volgende:

[..]

Dan kan je je beter afvragen waarom je de voorkant en achterkant op de schop moet gooien bij zoiets simpels als een extra categorie, iets dat je natuurlijk op je vingers kan natellen dat er in de toekomst zoiets gaat gebeuren. Waarom is er geen rekening mee gehouden in het initiele ontwerp en ontwikkelfase?

Maar goed, ik ben toch maar een betweter die zijn e-piemel wil tonen ofzo.
Omdat de klant 6 hoofdcategorieen verkoopt. Al 50 jaar. En er geen categorie bijkomt.

Ik heb het de klant meerdere malen uitgelegd. De klant wil het zo. Wie ben ik om vol te houden dat ze na 50 jaar toch ECHT binnen nu en 2 jaar de boel volledig anders gaan doen.
KomtTijd...donderdag 9 februari 2012 @ 21:46
De vraag is: Waarom wil je een niet-flexibele oplossing toepassen terwijl die (blijkbaar) lastiger is dan de algemeen gebruikte flexibele oplossing? Wat is in hemelsnaam het nadeel?
#ANONIEMdonderdag 9 februari 2012 @ 21:46
quote:
0s.gif Op donderdag 9 februari 2012 21:44 schreef Swetsenegger het volgende:

[..]

Omdat de klant 6 hoofdcategorieen verkoopt. Al 50 jaar. En er geen categorie bijkomt.

Ik heb het de klant meerdere malen uitgelegd. De klant wil het zo. Wie ben ik om vol te houden dat ze na 50 jaar toch ECHT binnen nu en 2 jaar de boel volledig anders gaan doen.
Jij bent als het goed is de professional die ondanks het verhaal van de klant rekening houdt met een dynamische omgeving en een applicatie zo opzet dat het niet alleen nu goed werkt, maar ook in de toekomst is voorbereid op wijzigingen, uitbreidingen en verandering in vraag en gebruik van diezelfde applicatie. Daar wordt je voor betaald imo.
Swetseneggerdonderdag 9 februari 2012 @ 21:50
quote:
14s.gif Op donderdag 9 februari 2012 21:46 schreef KomtTijd... het volgende:
De vraag is: Waarom wil je een niet-flexibele oplossing toepassen terwijl die (blijkbaar) lastiger is dan de algemeen gebruikte flexibele oplossing? Wat is in hemelsnaam het nadeel?
Hij is helemaal niet lastiger :? Alles draait al, ik had alleen een leuk vraagstukje voor het editten van producten. Niks spannend.

Zoals gezegd is dit ook een methode die vaak gebruikt wordt om rechten en rollen te definiëren. Komt niet uit de lucht vallen ofzo.

quote:
0s.gif Op donderdag 9 februari 2012 21:46 schreef Scorpie het volgende:

[..]

Jij bent als het goed is de professional die ondanks het verhaal van de klant rekening houdt met een dynamische omgeving en een applicatie zo opzet dat het niet alleen nu goed werkt, maar ook in de toekomst is voorbereid op wijzigingen, uitbreidingen en verandering in vraag en gebruik van diezelfde applicatie. Daar wordt je voor betaald imo.
"Ja ik kan in de database binnen 2 tellen een categorie toevoegen. Vervolgens hebben we een week werk om de volledige navigatie en vormgeving te wijzigen"

Ergo, nut = 0.

En weet je... er is misschien zelfs wel wat te zeggen voor het niet volledig dynamisch opzetten. Zie bv deze website. De klant is volledig vrij in categorieën. Hij maakt een menu item aan en kan daar producten inhangen. Vervolgens krijg je echt een draak van een menu met 88 mogelijkheden.

Wel zonde, want ik heb een enorm geile beheer module voor de navigatie geschreven.
Schermafbeelding2012-02-09om215855.png

Volledig dynamisch en vrij te beheren. In principe is alleen de vormgeving de uiteindelijke beperking.

[ Bericht 3% gewijzigd door Swetsenegger op 09-02-2012 22:05:53 ]
themoledonderdag 9 februari 2012 @ 21:53
Gast als een extra categorie je in de front end een week werk kost heb je een heel fout design gemaakt. :')
Swetseneggerdonderdag 9 februari 2012 @ 21:56
quote:
14s.gif Op donderdag 9 februari 2012 21:53 schreef themole het volgende:
Gast als een extra categorie je in de front end een week werk kost heb je een heel fout design gemaakt. :')
'Zucht'
Swetseneggerdonderdag 9 februari 2012 @ 23:04
Speciaal voor jullie alles omgebouwd naar een koppeltabel.
ralfiedonderdag 9 februari 2012 @ 23:05
Tering, niemand hier van binary operators gehoord?

stel, getal = 7

checkbox1.checked = getal & 2^1 //geeft getal >0, dus waar
checkbox2.checked = getal & 2^2 //geeft getal >0, dus waar
checkbox3.checked = getal & 2^3 //geeft getal >0, dus waar
checkboxX.checked = getal & (2^X) //geeft getal 0, dus onwaar

etc
Swetseneggerdonderdag 9 februari 2012 @ 23:09
quote:
0s.gif Op donderdag 9 februari 2012 23:05 schreef ralfie het volgende:
Tering, niemand hier van binary operators gehoord?

stel, getal = 7

checkbox1.checked = getal & 2^1 //geeft getal >0, dus waar
checkbox2.checked = getal & 2^2 //geeft getal >0, dus waar
checkbox3.checked = getal & 2^3 //geeft getal >0, dus waar
checkboxX.checked = getal & (2^X) //geeft getal 0, dus onwaar

etc
Ja die optie was al door glowmouse geopperd en zou ook prima werken.
GlowMousedonderdag 9 februari 2012 @ 23:09
en je vergeet 2^0
ralfiedonderdag 9 februari 2012 @ 23:11
quote:
7s.gif Op donderdag 9 februari 2012 23:09 schreef GlowMouse het volgende:
en je vergeet 2^0
Na 22:00 kun je geen werkende code meer van mij verwachten
GlowMousedonderdag 9 februari 2012 @ 23:14
quote:
12s.gif Op donderdag 9 februari 2012 23:11 schreef ralfie het volgende:

[..]

Na 22:00 kun je geen werkende code meer van mij verwachten
en nog wat, ^ is de bitwise xor, je zoekt pow(2,x)
#ANONIEMdonderdag 9 februari 2012 @ 23:19
quote:
18s.gif Op donderdag 9 februari 2012 23:04 schreef Swetsenegger het volgende:
Speciaal voor jullie alles omgebouwd naar een koppeltabel.
Graag gedaan.
GIvrijdag 10 februari 2012 @ 07:41
Los van het makkelijke onderhoud dat bij toevoegingen plaats zou kunnen vinden is het natuurlijk best prettig dat het makkelijk voor het editten te gebruiken is ;)
Swetseneggervrijdag 10 februari 2012 @ 08:22
De enige reden waarom ik het gedaan heb is om tot in lengte van dagen hier het gezeik te voorkomen "misschien moet je een koppeltabel proberen" als ik ooit een vraag stel...
#ANONIEMvrijdag 10 februari 2012 @ 08:54
quote:
0s.gif Op vrijdag 10 februari 2012 08:22 schreef Swetsenegger het volgende:
De enige reden waarom ik het gedaan heb is om tot in lengte van dagen hier het gezeik te voorkomen "misschien moet je een koppeltabel proberen" als ik ooit een vraag stel...
Geef nou maar gewoon toe dat het op die manier een heel stuk makkelijker was om je eigen vraag te beantwoorden, gekkie dat je er bent.
Swetseneggervrijdag 10 februari 2012 @ 08:58
quote:
10s.gif Op vrijdag 10 februari 2012 08:54 schreef Scorpie het volgende:

[..]

Geef nou maar gewoon toe dat het op die manier een heel stuk makkelijker was om je eigen vraag te beantwoorden, gekkie dat je er bent.
Eh nee hoor, dat was al klaar :')
Daarna heb ik het in een half uur tijd naar een koppeltabel omgebouwd.
#ANONIEMvrijdag 10 februari 2012 @ 09:12
quote:
13s.gif Op vrijdag 10 februari 2012 08:58 schreef Swetsenegger het volgende:

[..]

Eh nee hoor, dat was al klaar :')
Daarna heb ik het in een half uur tijd naar een koppeltabel omgebouwd.
Ik weet nou niet of ik moet :D of moet :'( om dit.
Cue_vrijdag 10 februari 2012 @ 09:32
Ik zit een beetje te googlen naar hoe je het beste van die speciale tekens kan behandelen bij het schrijven naar/ophalen uit de database. Maar er zijn diverse methoden wat ik zie en daarbij zijn ze vaak enkel voro een bepaalde teken (in veel gevallen enkel voor hoe om te gaan met quotes). Maar ik moet voor elke speciale karakter,dus zowel alle ' " als éûèïë etc etc.

Tips?
Swetseneggervrijdag 10 februari 2012 @ 09:42
quote:
5s.gif Op vrijdag 10 februari 2012 09:32 schreef Cue_ het volgende:
Ik zit een beetje te googlen naar hoe je het beste van die speciale tekens kan behandelen bij het schrijven naar/ophalen uit de database. Maar er zijn diverse methoden wat ik zie en daarbij zijn ze vaak enkel voro een bepaalde teken (in veel gevallen enkel voor hoe om te gaan met quotes). Maar ik moet voor elke speciale karakter,dus zowel alle ' " als éûèïë etc etc.

Tips?
htmlentities
En kijk ook naar mysql_real_escape_string

[ Bericht 7% gewijzigd door Swetsenegger op 10-02-2012 09:58:33 ]
Cue_vrijdag 10 februari 2012 @ 10:04
quote:
Als ik die hmtlentities doe, krijg ik nu heel leuk dat mijn waarde die hij naar de db schrijft bv trailernr='&IQUEST;&EGRAVE;&EUML;&UCIRC;X&ACIRC;&CCEDIL;'AS', wordt.
Dit is alleen niet wenselijk om als waarde in m'n database te hebben.

Maak gebruik van een oracle database, dus die tweede tip gaat niet echt werken.
Swetseneggervrijdag 10 februari 2012 @ 10:07
quote:
0s.gif Op vrijdag 10 februari 2012 10:04 schreef Cue_ het volgende:

[..]

Als ik die hmtlentities doe, krijg ik nu heel leuk dat mijn waarde die hij naar de db schrijft bv trailernr='&IQUEST;&EGRAVE;&EUML;&UCIRC;X&ACIRC;&CCEDIL;'AS', wordt.
Dit is alleen niet wenselijk om als waarde in m'n database te hebben.
Dan begrijp ik blijkbaar niet wat je wil :? Als je die values uitleest en parsed worden ze in je html keurig in hun entity weer gegeven.

Als je echt éâä etc in de db zo wil opslaan moet je zorgen dat je character set goed staat in je db. En in je uiteindelijke html ook natuurlijk anders krijg je nog steeds onleesbare tekens.
GIvrijdag 10 februari 2012 @ 10:17
utf8_encode en utf8_decode lijken me hierbij een betere oplossing.
Swetseneggervrijdag 10 februari 2012 @ 10:19
quote:
3s.gif Op vrijdag 10 februari 2012 10:17 schreef GI het volgende:
utf8_encode en utf8_decode lijken me hierbij een betere oplossing.
Dan moet je db wel in utf-8 staan neem ik aan en niet in latin oid?
Catbertvrijdag 10 februari 2012 @ 10:21
Gewoon als unicode (met utf8 character set) aan je DB voeren. HTML entities is niet de juiste oplossing want dan kan je er niet meer op zoeken.

quote:
0s.gif Op vrijdag 10 februari 2012 10:19 schreef Swetsenegger het volgende:
Dan moet je db wel in utf-8 staan neem ik aan en niet in latin oid?
Die kolom moet wel als character set UTF8 hebben. En je moet volgens mij ook in de DB connection met "SET character_set_client = utf8" aangeven dat je UTF8 wil praten. Even ervanuitgaande dat het over MySQL gaat.
GIvrijdag 10 februari 2012 @ 10:24
Is dat zo ?

Ik heb een tabel

) ENGINE=InnoDB DEFAULT CHARSET=latin1

en daar prop ik gewoon utf8coderingen in en die komen er ook gewoon weer goed uit ?
GlowMousevrijdag 10 februari 2012 @ 10:41
quote:
3s.gif Op vrijdag 10 februari 2012 10:24 schreef GI het volgende:
Is dat zo ?

Ik heb een tabel

) ENGINE=InnoDB DEFAULT CHARSET=latin1

en daar prop ik gewoon utf8coderingen in en die komen er ook gewoon weer goed uit ?
Wat je erin stopt, komt er altijd hetzelfde uit. Het voordeel van als je het goed doet, is dat stringfuncties in de database ook goed werken.
Keiichidinsdag 14 februari 2012 @ 07:11
Ik heb met mysql een master-slave replicatie. De master is een aardige bag (Quadcore xeon, hardware raid). De slave is van iets mindere snelheid (Atom, software raid).

In een uurtje heb ik op de master een tabel gevuld met een aantal indexen van een kleine 1.5 miljoen records. Maar sindsdien ligt m'n slave al ver achter. De oorzaak die ik lijk te zien is dat de slave het qua hardeschijf IO gewoon niet bij kan benen (CPU user: 3%, sys: 3%, wait: 100%)

Hoe kan ik deze server zo goed mogelijk tunen dat snelheid van de schijven zo weinig mogelijk impact hebt? Ik heb geprobeerd zoveel mogelijk geheugen mee te geven in de config, maar het baatte niet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-locking

key_buffer_size = 1024M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 4M
read_buffer_size = 4M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size = 128M
thread_cache_size = 4
query_cache_size= 16M
thread_concurrency = 2

-edit-

Het tijdelijk verwijderen van keys op de slave zie ik niet geheel zitten.
Pizzaluchtdinsdag 14 februari 2012 @ 09:11
quote:
0s.gif Op dinsdag 14 februari 2012 07:11 schreef Keiichi het volgende:
Ik heb met mysql een master-slave replicatie. De master is een aardige bag (Quadcore xeon, hardware raid). De slave is van iets mindere snelheid (Atom, software raid).

In een uurtje heb ik op de master een tabel gevuld met een aantal indexen van een kleine 1.5 miljoen records. Maar sindsdien ligt m'n slave al ver achter. De oorzaak die ik lijk te zien is dat de slave het qua hardeschijf IO gewoon niet bij kan benen (CPU user: 3%, sys: 3%, wait: 100%)

Hoe kan ik deze server zo goed mogelijk tunen dat snelheid van de schijven zo weinig mogelijk impact hebt? Ik heb geprobeerd zoveel mogelijk geheugen mee te geven in de config, maar het baatte niet:
[ code verwijderd ]

-edit-

Het tijdelijk verwijderen van keys op de slave zie ik niet geheel zitten.
De master voert dingen uit in meerdere threads, de slave moet dit doen in 1 thread(de replication thread). De slave moet dus eigenlijk beter of gelijk aan de master zijn qua hardware als je een redelijk beladen database hebt...
Keiichidinsdag 14 februari 2012 @ 09:26
De master had die inserts ook vanuit 1 thread gedaan (1 verbinding, sequentieel queries inserts gedaan). Alleen lijkt het op de slave met disk io spaak te lopen. (Anders zou ie qua cpu wel volladen moeten zijn)
GlowMousedinsdag 14 februari 2012 @ 09:50
De storage engine is MyISAM?
Crutchdinsdag 14 februari 2012 @ 10:28
Kan iemand me op een duidelijke uitleg / tutorial / naslagwerk over koppeltabellen wijzen?
Ik kom alleen maar vraagstukken tegen. -O-
#ANONIEMdinsdag 14 februari 2012 @ 10:30
Hoe bedoel je? Het principe van een koppeltabel is vrij makkelijk toch?
Swetseneggerdinsdag 14 februari 2012 @ 10:32
quote:
0s.gif Op dinsdag 14 februari 2012 10:28 schreef Crutch het volgende:
Kan iemand me op een duidelijke uitleg / tutorial / naslagwerk over koppeltabellen wijzen?
Ik kom alleen maar vraagstukken tegen. -O-
wat wil je precies doen?
GlowMousedinsdag 14 februari 2012 @ 10:33
zoek op uitleg voor joins
Crutchdinsdag 14 februari 2012 @ 10:40
quote:
0s.gif Op dinsdag 14 februari 2012 10:30 schreef Scorpie het volgende:
Hoe bedoel je? Het principe van een koppeltabel is vrij makkelijk toch?
quote:
14s.gif Op dinsdag 14 februari 2012 10:33 schreef GlowMouse het volgende:
zoek op uitleg voor joins
quote:
0s.gif Op dinsdag 14 februari 2012 10:32 schreef Swetsenegger het volgende:

[..]

wat wil je precies doen?
Ik wil dieper dan twee lagen met categorieën.

Ah, dank je GM. Dat is wat ik zocht.
Chandlerdinsdag 14 februari 2012 @ 10:48
Misschien dat je hier wat meer info uit kunt halen over diepgaande structuren.

http://www.ozzu.com/progr(...)tegories-t70918.html
Swetseneggerdinsdag 14 februari 2012 @ 10:51
quote:
0s.gif Op dinsdag 14 februari 2012 10:40 schreef Crutch het volgende:

[..]

[..]

[..]

Ik wil dieper dan twee lagen met categorieën.

Ah, dank je GM. Dat is wat ik zocht.
zoek op 'nested set model'
kutkloon7dinsdag 14 februari 2012 @ 16:19
Een kleine vraag: Ik help een vriend van me met een site met een database voor de leden van zijn studievereniging, en ik zou graag ook een mailtje willen sturen. Normaal gebruik ik WAMP voor een lokale server die alleen op mijn computer toegankelijk is, en vanaf daar ben ik niet in staat om te mailen omdat de meeste (alle?) mailservices authenticatie vereisen en php dit niet ondersteund, maar ik hoopte eigenlijk dat dit vanaf een betaald domein wel zou kunnen.
Iemand meer ervaring hiermee?
stefan1218dinsdag 14 februari 2012 @ 16:34
als je hosting met een email pakket neemt gaat het zeker werken.
kutkloon7dinsdag 14 februari 2012 @ 16:38
quote:
0s.gif Op dinsdag 14 februari 2012 16:34 schreef stefan1218 het volgende:
als je hosting met een email pakket neemt gaat het zeker werken.
Ok, mooi. Nou ben ik niet degene die de hosting uitkiest, dus ik hoop dat ze dat kiezen, dat is wel zo makkelijk.
GlowMousedinsdag 14 februari 2012 @ 16:47
Vanaf elke hosting kun je e-mailen. Je kunt in PHP ook een smtp-server instellen waar alle mail moet worden afgeleverd, stel daar de smtp-server van je ISP in, dan werkt het ook met je WAMP pakket.
kutkloon7dinsdag 14 februari 2012 @ 16:49
quote:
0s.gif Op dinsdag 14 februari 2012 16:47 schreef GlowMouse het volgende:
Vanaf elke hosting kun je e-mailen. Je kunt in PHP ook een smtp-server instellen waar alle mail moet worden afgeleverd, stel daar de smtp-server van je ISP in, dan werkt het ook met je WAMP pakket.
Oh, thanks :)
Keiichiwoensdag 15 februari 2012 @ 21:58
Ik ben bezig met bulk inserts in MySQL via 'LOAD DATA LOCAL INFILE'. Maar soms gaat ie over z'n nek omdat er ergens een FK constraint is. Ga dat maar eens uitvinden waar die zit :X

Kan ik mysql niet laten roepen wat het Id van de getroffen contraintvormer is? (Hij geeft wel aan op welke constraint)
Lightwoensdag 15 februari 2012 @ 22:14
En is de tabel waar de constraint naar verwijst al wel ingelezen als je de foutmelding krijgt?
Keiichidonderdag 16 februari 2012 @ 09:18
quote:
0s.gif Op woensdag 15 februari 2012 22:14 schreef Light het volgende:
En is de tabel waar de constraint naar verwijst al wel ingelezen als je de foutmelding krijgt?
Yup,

Er zijn slechts 2 records die fout gaan die ik probeer te importeren (van de 1.6miljoen). Maar omdat ze in bestanden van 10.000 records staan is het moeilijk zoeken :P Het kan ook een fout in de CSV zijn, maar dan zou ik er ook nog mee uit de voeten kunnen als ik weet wat de waarde is waar ie op vastloopt.
Sitethiefdonderdag 16 februari 2012 @ 10:30
Als je alleen PHP kunt, en je wilt een standalone desktop applicatie schrijven, welke programmeertaal is dan het makkelijkst te leren? Of is het eventueel een optie om dan PHP te gebruiken?
Intrepiditydonderdag 16 februari 2012 @ 10:43
quote:
0s.gif Op donderdag 16 februari 2012 10:30 schreef Sitethief het volgende:
Als je alleen PHP kunt, en je wilt een standalone desktop applicatie schrijven, welke programmeertaal is dan het makkelijkst te leren? Of is het eventueel een optie om dan PHP te gebruiken?
Talen zijn sowieso makkelijk te leren. Het is de denkwijze die lastig is om aan te leren op het gebied van programmeren. Welke taal je inzet hangt compleet af van wat je voor applicatie je wilt ontwikkelen, op welke platformen het moet kunnen draaien, etcetera. Je gaat ook geen hamer gebruiken om ergens een schroef in te draaien. PHP voor desktopapplicaties is in theorie mogelijk, maar hier is de hamer/schroef vergelijking zondermeer van toepassing.
Dus, wat wil je? "een desktop applicatie" zegt niets.
Sitethiefdonderdag 16 februari 2012 @ 10:46
Ik wil een applicatie voor eigen gebruik tbv administratie en financiën bouwen. Maar natuurlijk eerst ff een taal onder de knie krijgen.
Sitethiefdonderdag 16 februari 2012 @ 10:47
En inderdaad, ik zit helemaal vastgeroest in PHP, ik kan me bijvoorbeeld niet voorstellen hoe je zomaar data opslaat zonder een database (relationeel of niet).. dus dat is wel een gedachtesprong die ik moet gaan maken.
The_Terminatordonderdag 16 februari 2012 @ 11:32
quote:
0s.gif Op donderdag 16 februari 2012 10:46 schreef Sitethief het volgende:
Ik wil een applicatie voor eigen gebruik tbv administratie en financiën bouwen. Maar natuurlijk eerst ff een taal onder de knie krijgen.
Zoiets kun je natuurlijk prima als webapplicatie bouwen. Voordeel is dat je data dan centraal is opgeslagen en je het dus vanaf iedere werkplek of mobiel apparaat op kunt vragen. Het nadeel is dat je er een server voor nodig hebt en de keuze moet maken of je de data alleen binnen je eigen domein beschikbaar wilt hebben of dat het ook van buitenaf benaderbaar moet zijn.

Aangezien je al aangeeft dat het voor eigen gebruik is heb je in ieder geval geen hele zware server nodig.
Intrepiditydonderdag 16 februari 2012 @ 12:43
quote:
0s.gif Op donderdag 16 februari 2012 11:32 schreef The_Terminator het volgende:

[..]

Zoiets kun je natuurlijk prima als webapplicatie bouwen. Voordeel is dat je data dan centraal is opgeslagen en je het dus vanaf iedere werkplek of mobiel apparaat op kunt vragen. Het nadeel is dat je er een server voor nodig hebt en de keuze moet maken of je de data alleen binnen je eigen domein beschikbaar wilt hebben of dat het ook van buitenaf benaderbaar moet zijn.

Aangezien je al aangeeft dat het voor eigen gebruik is heb je in ieder geval geen hele zware server nodig.
Een webapplicatie voor eigen gebruik? Nuttig!
The_Terminatordonderdag 16 februari 2012 @ 12:54
quote:
0s.gif Op donderdag 16 februari 2012 12:43 schreef Intrepidity het volgende:

[..]

Een webapplicatie voor eigen gebruik? Nuttig!
Waarom zou het niet nuttig zijn? Je hebt dan al je data op een centrale plek waar je makkelijk backups van kunt maken. In het geval er iets met je client aan de hand is kun je direct verder werken op een andere machine zonder dat je data over moet zetten. Wijzigingen kun je eenvoudig doorvoeren zonder dat je steeds je code opnieuw moet compileren. Mocht je ooit uitbreiden en er gaan meer mensen mee werken dan ben je daar op voorbereid etc...
Tijndonderdag 16 februari 2012 @ 13:18
quote:
0s.gif Op donderdag 16 februari 2012 12:43 schreef Intrepidity het volgende:

[..]

Een webapplicatie voor eigen gebruik? Nuttig!
Waarom niet?
GIdonderdag 16 februari 2012 @ 13:19
quote:
0s.gif Op donderdag 16 februari 2012 12:43 schreef Intrepidity het volgende:

[..]

Een webapplicatie voor eigen gebruik? Nuttig!
Als je daar sneller mee klaar bent, minder fouten maakt en dus ook niet moeilijk hoeft te doen met nieuwe dingen leren. Dan zou ik het eerder aanbevelen dan afraden...
Lightdonderdag 16 februari 2012 @ 23:53
quote:
0s.gif Op donderdag 16 februari 2012 09:18 schreef Keiichi het volgende:

[..]

Yup,

Er zijn slechts 2 records die fout gaan die ik probeer te importeren (van de 1.6miljoen). Maar omdat ze in bestanden van 10.000 records staan is het moeilijk zoeken :P Het kan ook een fout in de CSV zijn, maar dan zou ik er ook nog mee uit de voeten kunnen als ik weet wat de waarde is waar ie op vastloopt.
Zijn de foreign keys opeenvolgend? Dan kun je misschien in de tabel waarnaar verwezen wordt kijken of je daar ontbrekende records hebt. En anders kun je de fout proberen te vinden door de bestanden steeds in 2 helften op te delen. 10.000 records, dus 10.000 regels. Splitsen naar 2 bestanden van 5000 regels, vaststellen in welk bestand het fout gaat, en die splitsen in 2 bestanden van 2500 regels. Herhaal dat een keer of 10, en je hebt de regel gevonden die fout gaat. Of het gaat niet fout, maar dan heb je wel alles ingelezen. :)
Devvvrijdag 17 februari 2012 @ 06:36
quote:
0s.gif Op donderdag 16 februari 2012 12:43 schreef Intrepidity het volgende:

[..]

Een webapplicatie voor eigen gebruik? Nuttig!
Web applicaties > desktop applicaties. Zeker in een tijdperk waarin iedereen en overal toegang tot internet heeft.
Sitethiefvrijdag 17 februari 2012 @ 07:57
Opzich is het geen slecht idee, kan ik er vanaf mijn smartphone ook bij :P.
Ofyles2vrijdag 17 februari 2012 @ 20:44
quote:
0s.gif Op donderdag 16 februari 2012 10:30 schreef Sitethief het volgende:
Als je alleen PHP kunt, en je wilt een standalone desktop applicatie schrijven, welke programmeertaal is dan het makkelijkst te leren? Of is het eventueel een optie om dan PHP te gebruiken?
Python. Mits je niet over je nek gaat door de vele imports.

Edit: Ik ben bereid je een spoedcursus te geven, maar dan heb wat enige voorbereidingstijd nodig...
Pizzaluchtvrijdag 17 februari 2012 @ 21:10
quote:
0s.gif Op vrijdag 17 februari 2012 20:44 schreef Ofyles2 het volgende:

[..]

Python. Mits je niet over je nek gaat door de vele imports.

Edit: Ik ben bereid je een spoedcursus te geven, maar dan heb wat enige voorbereidingstijd nodig...
Ben je een beetje bekend met Python?
Ik ben een C# server aan het herschrijven in Python, is het erg als er vele imports zijn?
De server heeft veel verschillende packets en voor elk soort packet is er een andere .py, dus ook een import.

Voor de duidelijkheid:
Het zijn alleen losse imports om het overzichtelijk te houden, ik zou ze dus eventueel ook makkelijk bij elkaar kunnen proppen.
Ofyles2zaterdag 18 februari 2012 @ 02:56
quote:
0s.gif Op vrijdag 17 februari 2012 21:10 schreef Pizzalucht het volgende:

[..]

Ben je een beetje bekend met Python?
Ik ben een C# server aan het herschrijven in Python, is het erg als er vele imports zijn?
De server heeft veel verschillende packets en voor elk soort packet is er een andere .py, dus ook een import.
Niet alleen .py-bestanden, maar ook modules.

Ik ben nogal lui in het neertypen van allerlei kleine modules in hoofdmodules, ik neem daarom alle klassen mee (hetgeen ik eigenlijk iedereen afraad).
Dalandozaterdag 18 februari 2012 @ 17:17
String wordt bijv. Ingegeven met 2-21-2012, dan doe ik dit:

1
2
3
<?php
$datum 
date('d-m-Y'strtotime($string));
?>
maar dan komt er 01-01-1970 in de database te staan. :{

Iemand?
GlowMousezaterdag 18 februari 2012 @ 17:31
21 is geen geldige maand, zie http://nl2.php.net/strtotime
Dalandozaterdag 18 februari 2012 @ 17:33
quote:
0s.gif Op zaterdag 18 februari 2012 17:31 schreef GlowMouse het volgende:
21 is geen geldige maand, zie http://nl2.php.net/strtotime
Ik weet het. Daarom wil ik dus het m-d-Y format naar d-m-Y veranderen.
The_Terminatorzaterdag 18 februari 2012 @ 17:35
quote:
2s.gif Op zaterdag 18 februari 2012 17:33 schreef Dalando het volgende:

[..]

Ik weet het. Daarom wil ik dus het m-d-Y format naar d-m-Y veranderen.
Explode op het streepje doen en dan de arrayelementen zelf in de goede volgorde voeren aan de functie.
GlowMousezaterdag 18 februari 2012 @ 17:41
quote:
2s.gif Op zaterdag 18 februari 2012 17:33 schreef Dalando het volgende:

[..]

Ik weet het. Daarom wil ik dus het m-d-Y format naar d-m-Y veranderen.
Dat hoeft niet, zie die link van net.
Dalandozaterdag 18 februari 2012 @ 17:41
quote:
0s.gif Op zaterdag 18 februari 2012 17:35 schreef The_Terminator het volgende:

[..]

Explode op het streepje doen en dan de arrayelementen zelf in de goede volgorde voeren aan de functie.
Ik zat ook al te kloten met preg_match maar dit kan ook. Bedankt! _O_
The_Terminatorzaterdag 18 februari 2012 @ 17:51
quote:
2s.gif Op zaterdag 18 februari 2012 17:41 schreef Dalando het volgende:

[..]

Ik zat ook al te kloten met preg_match maar dit kan ook. Bedankt! _O_
Van GM's link:
quote:
Note:

Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator between the various components: if the separator is a slash (/), then the American m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the European d-m-y format is assumed.

To avoid potential ambiguity, it's best to use ISO 8601 (YYYY-MM-DD) dates or DateTime::createFromFormat() when possible.
Het streepje vervangen door een: '/' zou dus ook genoeg moeten zijn om strtotime te laten werken :) Eventueel handig om de geldigheid van de datum te checken aangezien strtotime false teruggeeft bij een ongeldige datum.

[ Bericht 2% gewijzigd door The_Terminator op 18-02-2012 17:56:34 ]
Dalandozondag 19 februari 2012 @ 14:20
Oke, volgende probleem.

Ik heb een DATETIME in de database staan, en ik wil alles selecteren wat minder dan 10 seconden geleden was.

Hoe doe ik deze?
The_Terminatorzondag 19 februari 2012 @ 14:47
quote:
2s.gif Op zondag 19 februari 2012 14:20 schreef Dalando het volgende:
Oke, volgende probleem.

Ik heb een DATETIME in de database staan, en ik wil alles selecteren wat minder dan 10 seconden geleden was.

Hoe doe ik deze?
Je kunt de NOW() functie daarvoor gebruiken. Dus zoiets: WHERE TIME(tijdstempel) > TIMEDIFF(TIME(NOW()), '00:10:00') AND DATE(tijdstempel) = CURDATE()

[ Bericht 1% gewijzigd door The_Terminator op 19-02-2012 14:54:01 ]
GlowMousezondag 19 februari 2012 @ 16:14
Dom om TIME(tijdstempel) en DATE(tijdstempel) te gebruiken, het is onnodig en je verliest de mogelijkheid om een index te gebruiken.
The_Terminatorzondag 19 februari 2012 @ 16:22
quote:
0s.gif Op zondag 19 februari 2012 16:14 schreef GlowMouse het volgende:
Dom om TIME(tijdstempel) en DATE(tijdstempel) te gebruiken, het is onnodig en je verliest de mogelijkheid om een index te gebruiken.
Hoe zou jij het dan doen? Ik sla datum en tijd meestal in twee velden op en heb daardoor zelf niet veel ervaring met datetime velden.
GlowMousezondag 19 februari 2012 @ 16:26
iets met veld>TIMESTAMPADD(SECOND,-10,NOW())
GlowMousezondag 19 februari 2012 @ 16:27
Apart opslaan heeft alleen voordelen als je wilt weten wat er op een bepaald tijdstip gebeurt, onafhankelijk van de dag.
The_Terminatorzondag 19 februari 2012 @ 16:31
quote:
0s.gif Op zondag 19 februari 2012 16:27 schreef GlowMouse het volgende:
Apart opslaan heeft alleen voordelen als je wilt weten wat er op een bepaald tijdstip gebeurt, onafhankelijk van de dag.
Ik heb het gedaan omdat de queries die ik erop uitvoer alleen op datum zijn en niet op tijd. Ik heb het voorheen wel op datumtijd gedaan maar toen werd de index erg groot en ging het ophalen van data een stuk trager dan wanneer ik het alleen op een datumveld uitvoerde.

En TIMESTAMPADD is idd de beste optie.
Ofyles2zondag 19 februari 2012 @ 22:34
quote:
0s.gif Op dinsdag 14 februari 2012 09:50 schreef GlowMouse het volgende:
De storage engine is MyISAM?
Met InnoDB kun je veel meer dan met MyISAM.
Yuri_Boykamaandag 20 februari 2012 @ 18:23
Stel ik heb dit:

$_['blabla_tab_images'] = 'Photos';

Hoe krijg ik dan Photos naar Foto's zonder dat de zin onderbroken wordt?
GlowMousemaandag 20 februari 2012 @ 18:38
welke zin?
GlowMousemaandag 20 februari 2012 @ 18:39
quote:
0s.gif Op zondag 19 februari 2012 22:34 schreef Ofyles2 het volgende:

[..]

Met InnoDB kun je veel meer dan met MyISAM.
Zonder meer, maar het was voor de vraag relevant om de gebruikte storage engine te kennen.
Diaboxmaandag 20 februari 2012 @ 21:11
quote:
0s.gif Op maandag 20 februari 2012 18:23 schreef Yuri_Boyka het volgende:
Stel ik heb dit:

$_['blabla_tab_images'] = 'Photos';

Hoe krijg ik dan Photos naar Foto's zonder dat de zin onderbroken wordt?
$_['blabla_tab_images'] = 'Foto\'s';
of
$_['blabla_tab_images'] = "Foto's";
The_Terminatormaandag 20 februari 2012 @ 21:11
quote:
0s.gif Op maandag 20 februari 2012 18:23 schreef Yuri_Boyka het volgende:
Stel ik heb dit:

$_['blabla_tab_images'] = 'Photos';

Hoe krijg ik dan Photos naar Foto's zonder dat de zin onderbroken wordt?
Bedoel je met onderbroken dat de enkele quote problemen geeft?

Kun je zo oplossen:

$_['blabla_tab_images'] = "Foto's";
Intrepiditymaandag 20 februari 2012 @ 22:36
quote:
0s.gif Op maandag 20 februari 2012 21:11 schreef The_Terminator het volgende:

[..]

Bedoel je met onderbroken dat de enkele quote problemen geeft?

Kun je zo oplossen:

$_['blabla_tab_images'] = "Foto's";
Of
$_['blabla_tab_images'] = 'Foto\'s';
de backslash zorgt er hier voor dat PHP de ' niet als instructie maar als tekst ziet.

Edit: spuit 11, dat stond ook al op de vorige pagina ^O^
Feoladinsdag 21 februari 2012 @ 03:05
Wil wat simpele tabjes maken dmv inhoud uit een db, waarom werkt die 2e stuk php niet?

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
<?php
    include "connect.php"; //verbinding maken
    $data = mysql_query("SELECT * FROM tbl_teksten") 
    or die(mysql_error()); 
?>

<body>
    <div class="tabs">
        <ul class="tabNavigation">
            <?php
                while($info = mysql_fetch_array( $data )) 
                {  
                    Print "<li><a href='#".$info['titel'] . "'>".$info['titel'] . "</a></li>"; 

                } 
            ?>
        </ul>
        <?php
            while($info = mysql_fetch_array( $data )) 
            {  
                Print "<div id='".$info['titel'] . "'>".$info['inhoud'] . "</a></div>"; 
            } 
        ?>
    </div>
</body>

Hij voert alleen de eerste uit...
Yuri_Boykadinsdag 21 februari 2012 @ 03:10
quote:
0s.gif Op maandag 20 februari 2012 21:11 schreef Diabox het volgende:

[..]

$_['blabla_tab_images'] = 'Foto\'s';
of
$_['blabla_tab_images'] = "Foto's";
Dat was hem, bedankt.
Diaboxdinsdag 21 februari 2012 @ 04:17
quote:
99s.gif Op dinsdag 21 februari 2012 03:05 schreef boskameel het volgende:
Wil wat simpele tabjes maken dmv inhoud uit een db, waarom werkt die 2e stuk php niet?
[ code verwijderd ]

Hij voert alleen de eerste uit...
Je voert mysql_fetch_array 2x uit op dezelfde query, en wat mysql_fetch_array doet is steeds de internal data pointer incrementen in je eerste while he. Dus daarna resetten.
1mysql_data_seek($data, 0);


[ Bericht 8% gewijzigd door Diabox op 21-02-2012 04:21:49 (php tags staan 'n beetje retarded om 1 line) ]
Pakspuldinsdag 21 februari 2012 @ 11:34
quote:
99s.gif Op dinsdag 21 februari 2012 03:05 schreef boskameel het volgende:
Wil wat simpele tabjes maken dmv inhoud uit een db, waarom werkt die 2e stuk php niet?
[ code verwijderd ]

Hij voert alleen de eerste 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
<?php
    
include "connect.php"//verbinding maken
    
$data mysql_query("SELECT * FROM tbl_teksten") or die(mysql_error()); 

    
$ulString "";
    
$divString "";

    while(
$info mysql_fetch_array$data )) 
    {  
        
$ulString .= "<li><a href='#".$info['titel'] . "'>".$info['titel'] . "</a></li>";
        
$divString .= "<div id='".$info['titel'] . "'>".$info['inhoud'] . "</a></div>";
    } 

    
?>
<body>
    <div class="tabs">
        <ul class="tabNavigation">
            <?php
                
echo $ulString
            
?>
        </ul>
        <?php
            
echo $divString;
        
?>
    </div>
</body>

Zo hoef je ook maar één keer door de lijst heen te gaan :)
Feoladinsdag 21 februari 2012 @ 16:06
quote:
0s.gif Op dinsdag 21 februari 2012 11:34 schreef Pakspul het volgende:

[..]
[ code verwijderd ]

Zo hoef je ook maar één keer door de lijst heen te gaan :)
dankje :) ik wilde net vragen hoe ik het dan mooi kon oplossen!
Cue_donderdag 23 februari 2012 @ 08:18
Goedemorgen,

Misschien kunnen jullie mij helpen bij hoe ik iets moet opzetten (constructie).
Ik heb twee tabellen die ik met elkaar moet vergelijken qua data en ze dan moet afstrepen als er bepaalde waardes gelijk zijn. Hier zitten natuurlijk haken en ogen aan mbt marges die er zijn etc.

Ik kan er natuurlijk een hele grote if /then/else /if/then/else etc constructie van maken. Maar dat is lelijk, onoverzichtelijk en niet handig.

Dus mijn vraag is eigenlijk zijn er andere manieren om de data door diverse opties te laten lopen, ipv
if waardes in deze marge then sla de gegevens op
else ikijk of de waardes in een andere marge vallen.. zo niet doe dan weer iets anders.. en zo door

(of is een else if dan voldoende en de enige mogelijkheid?)
Sitethiefdonderdag 23 februari 2012 @ 08:35
Dat hangt er volledig vanaf hoe de data gestructureerd is. Als er d's zijn aan beide kanten, dan kun je die in een foreach vergelijken bijvoorbeeld. Als je de data in arrays kan gieten kun je die dmv diverse array functies vergelijken.
Cue_donderdag 23 februari 2012 @ 08:43
Momenteel gooi ik 1 tabel in een array. En met een foreach ga ik per regel door een functie heen die die data vergelijkt met de andere tabel.
Cue_donderdag 23 februari 2012 @ 08:45
Hmm volgens mij heb ik hem nu veels te vaag in elkaar zetten.
Want als ik het hier zo verwoord, klinkt het opzich nog simpel / logisch te doen. :')
#ANONIEMdonderdag 23 februari 2012 @ 08:54
Ik snap niet helemaal wat je nu precies wil. Wil je producten met elkaar vergelijken binnen een bepaalde range ofzo?
Cue_donderdag 23 februari 2012 @ 09:00
quote:
0s.gif Op donderdag 23 februari 2012 08:54 schreef Scorpie het volgende:
Ik snap niet helemaal wat je nu precies wil. Wil je producten met elkaar vergelijken binnen een bepaalde range ofzo?
Ik heb data van tankingen die ik wil vergelijken met de data van een factuur.
Welke precies overeenkomen of binnen een bepaalde marge vallen mogen automatisch afgestreept worden als 'goed'. Wat uiteindelijk overblijft moet handmatig worden gekoppeld aan elkaar.
Sitethiefdonderdag 23 februari 2012 @ 09:03
http://www.php.net/manual/en/function.array-diff.php

Dit is wel gevaarlijk, want bedragen worden weggestreept als ze hetzelfde zijn, ook als het compleet iets anders was op de factuur.
Cue_donderdag 23 februari 2012 @ 09:05
Dus nu is een beetje vraag hoe ik het efficients dit kan opzetten.
Moet ik twee arrays maken en die op een 1 of andere manier met elkaar gaan vergelijken?
Of moet ik 1 array maken (van de factuurgegevens) en de data daarvan 1 voor 1 door een query laten lopen van de tankingen. En wanneer deze niet precies overeenkomt, dan langs een nieuwe query die dus de marges bevat?

quote:
0s.gif Op donderdag 23 februari 2012 09:03 schreef Sitethief het volgende:
http://www.php.net/manual/en/function.array-diff.php

Dit is wel gevaarlijk, want bedragen worden weggestreept als ze hetzelfde zijn, ook als het compleet iets anders was op de factuur.
De twee tabelkolommen zijn erg verschillend van elkaar, dus denk niet dat dit gaat werken.
#ANONIEMdonderdag 23 februari 2012 @ 09:07
quote:
0s.gif Op donderdag 23 februari 2012 09:00 schreef Cue_ het volgende:

[..]

Ik heb data van tankingen die ik wil vergelijken met de data van een factuur.
Welke precies overeenkomen of binnen een bepaalde marge vallen mogen automatisch afgestreept worden als 'goed'. Wat uiteindelijk overblijft moet handmatig worden gekoppeld aan elkaar.
Aha. Dan kan je inderdaad itereren over de 2 verschillende sets van data.
Ofyles2donderdag 23 februari 2012 @ 09:09
quote:
0s.gif Op donderdag 23 februari 2012 09:00 schreef Cue_ het volgende:

[..]

Ik heb data van tankingen die ik wil vergelijken met de data van een factuur.
Welke precies overeenkomen of binnen een bepaalde marge vallen mogen automatisch afgestreept worden als 'goed'. Wat uiteindelijk overblijft moet handmatig worden gekoppeld aan elkaar.
Ik zou een derde array gebruiken die automatisch de verschillen berekent.
Sitethiefdonderdag 23 februari 2012 @ 09:09
Hoe weet je welk bedrag van de tanking bij welk bedrag van de factuur hoort?
Cue_donderdag 23 februari 2012 @ 09:11
quote:
0s.gif Op donderdag 23 februari 2012 09:09 schreef Sitethief het volgende:
Hoe weet je welk bedrag van de tanking bij welk bedrag van de factuur hoort?
Momenteel controle op datum/tijd/autonr/aantal liters. Later komt hier nog plaats bij

Momenteel hebben we geen bedragen bij de tankinggegevens, het is dan ook meer controle op de liters.
Ofyles2donderdag 23 februari 2012 @ 09:13
quote:
0s.gif Op donderdag 23 februari 2012 09:11 schreef Cue_ het volgende:

[..]

Momenteel controle op datum/tijd/autonr/aantal liters. Later komt hier nog plaats bij

Momenteel hebben we geen bedragen bij de tankinggegevens, het is dan ook meer controle op de liters.

Ik zou alvast beginnen aan een OOP-model, hoef je niet zo heel veel te herschrijven.
Mireldonderdag 23 februari 2012 @ 10:28
Ik heb bij een widget van wordpress 2 velden erbij gemaakt. Het probleem is dat een van die velden áltijd naast de andere komt, in plaats van eronder:

http://filmdepartment.nl/v2/ onderaan, bij de 'Filmdepartment' widget staan op 1 regel de 2 velden 'postcode' en 'woonplaats'. Ik wil dat woonplaats eronder komt. (ze hebben overigens elk geen icoontje ernaast, maar dat is ook de bedoeling)

Als ik 'woonplaats' op een andere plek zet, bijvoorbeeld na 'email', dan komt 'ie ook gewoon echt eronder, in plaats van er naast. En het veld die nu op de plek staat waar 'woonplaats' net stond, en nu dus na 'postcode' komt, komt er ook gewoon onder, in plaats van ernaast.

Het lijkt gewoon iedere keer dat als ik 'postcode' en 'woonplaats' in de code samen doe, met 'postcode' als eerst, dat ze naast elkaar komen op de webpagina.

en de code:

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
class Contactinfo extends WP_Widget {
function 
Contactinfo() {
global 
$themename;
        
$widget_ops = array( 'classname' => 'widget_contactinfo''description' => __('Use this widget to add "Mailing Address"''Apogee'));

        
        
$control_ops = array( 'width' => 300'height' => 350'id_base' => 'widget_contactinfo' );

        
        
$this->WP_Widget('widget_contactinfo',$themename.'-Contact Info'$widget_ops$control_ops );
    
//parent::WP_Widget(false, $name=$themename.'-Contacat Info');
}

/**
 * Displays category posts widget on blog.
 */
function widget($args$instance) {
    
extract$args );
    
// If not title, use the name of the category.
    
if( $instance["title"] ) {
        
        
$title =$instance["title"];
    }
    echo 
$before_widget;
    
// Widget title
    
echo $before_title;
    echo  
$title;
    echo 
$after_title;
    if( 
$instance["name"] ) {
         
$name =$instance["name"];
             echo 
"<span><strong>".$name."</strong></span>";
    }
    if( 
$instance["address"] ) {
        
$address =$instance["address"];
        echo 
"<span id='address'>".$address."</span>";
    }

    if( 
$instance["postcode"] ) {
        
        
$postcode =$instance["postcode"];
        echo 
"<span id='postcode'>".$postcode."</span>";
    }
    if( 
$instance["woonplaats"] ) {
        
        
$woonplaats =$instance["woonplaats"];
        echo 
"<span id='woonplaats'>".$woonplaats."</span>";
    }

    if( 
$instance["phoneno"] ) {
        
        
$phoneno =$instance["phoneno"];
        echo 
"<span id='phone'>".'<strong>Phone: </strong>'.$phoneno."</span>";
        
    }
    if( 
$instance["fax"] ) {
        
        
$fax =$instance["fax"];
        echo 
"<span id='fax'>".'<strong>Fax: </strong>'.$fax."</span>";
        
    }
    
    if( 
$instance["email"] ) {
        
        
$email =$instance["email"];
        echo 
"<span id='email'>".$email."</span>";
    }

            
    echo 
$after_widget;
}

/**
 * Form processing... Dead simple.
 */
function update($new_instance$old_instance) {
$instance $old_instance;
$instance['title'] = strip_tags$new_instance['title'] );
$instance['name'] = strip_tags$new_instance['name'] );
$instance['address'] = strip_tags$new_instance['address'] );
$instance['postcode'] = strip_tags$new_instance['postcode'] );
$instance['woonplaats'] = strip_tags$new_instance['woonplaats'] );
$instance['email'] = strip_tags$new_instance['email'] );
$instance['phoneno'] = strip_tags$new_instance['phoneno'] );
$instance['fax'] = strip_tags$new_instance['fax'] );
    return 
$instance;
}

/**
 *  form.
 */
function form($instance) {
$instance wp_parse_args((array)$instance, array( 'title' => '''name' =>'''address' =>'''phoneno'=>'','fax'=>'''email' => '''postcode' => '''woonplaats' => '', ));
?>
<p>
    <label for="<?php echo $this->get_field_id("title"); ?>">
    <?php _e'Title''Apogee'); ?> :
    <input class="widefat" id="<?php echo $this->get_field_id("title"); ?>" name="<?php echo $this->get_field_name("title"); ?>" type="text" value="<?php if($instance["title"]) { echo esc_attr($instance["title"]); } ?>" />
    </label>
</p>
<p>
    <label for="<?php echo $this->get_field_id("name"); ?>">
    <?php _e'Name','Apogee'); ?> :
    <input class="widefat" id="<?php echo $this->get_field_id("name"); ?>" name="<?php echo $this->get_field_name("name"); ?>" type="text" value="<?php if($instance["name"]) { echo esc_attr($instance["name"]); } ?>" />
    </label>
</p>
<p>
    <label for="<?php echo $this->get_field_id("address"); ?>">
    <?php _e'Address','Apogee'); ?>: <br />
    <textarea cols="35" rows="5" id="<?php echo $this->get_field_id("address"); ?>" name="<?php echo $this->get_field_name("address"); ?>"><?php echo esc_attr($instance["address"]); ?></textarea>
    </label>
</p>
<p>
    <label for="<?php echo $this->get_field_id("postcode"); ?>">
    <?php _e'Postcode','Apogee' ); ?> :
    <input class="widefat" id="<?php echo $this->get_field_id("postcode"); ?>" name="<?php echo $this->get_field_name("postcode"); ?>" type="text" value="<?php echo esc_attr($instance["postcode"]); ?>" />
    </label>
</p>
<p>
    <label for="<?php echo $this->get_field_id("woonplaats"); ?>">
    <?php _e'Woonplaats','Apogee' ); ?> :
    <input class="widefat" id="<?php echo $this->get_field_id("woonplaats"); ?>" name="<?php echo $this->get_field_name("woonplaats"); ?>" type="text" value="<?php echo esc_attr($instance["woonplaats"]); ?>" />
    </label>
</p>
<p>
    <label for="<?php echo $this->get_field_id("phoneno"); ?>">
    <?php _e'Phone No','Apogee'); ?>:
    <input class="widefat" id="<?php echo $this->get_field_id("phoneno"); ?>" name="<?php echo $this->get_field_name("phoneno"); ?>" type="text" value="<?php echo esc_attr($instance["phoneno"]); ?>" />
    </label>
</p>
<p>
    <label for="<?php echo $this->get_field_id("fax"); ?>">
    <?php _e'Fax','Apogee'); ?> :
    <input   class="widefat" id="<?php echo $this->get_field_id("fax"); ?>" name="<?php echo $this->get_field_name("fax"); ?>" type="text" value="<?php echo esc_attr($instance["fax"]); ?>" />
    </label>
</p>
<p>
    <label for="<?php echo $this->get_field_id("email"); ?>">
    <?php _e'Email','Apogee' ); ?> :
    <input class="widefat" id="<?php echo $this->get_field_id("email"); ?>" name="<?php echo $this->get_field_name("email"); ?>" type="text" value="<?php echo esc_attr($instance["email"]); ?>" />
    </label>
</p>
<?php

}

}
add_action'widgets_init'create_function('''return register_widget("Contactinfo");') );
?>

Is het misschien een functie van Wordpress zelf die toevallig dezelfde namen gebruikt en ze naast elkaar zet?
Sitethiefdonderdag 23 februari 2012 @ 10:46
Kijk in widgets.css op regel 249 en voeg beide velden daar toe
Mireldonderdag 23 februari 2012 @ 10:54
Helpt niet.

Ik heb ze hier erbij gedaan (laatste twee dus):
1
2
3
4
5
6
.widget_contactinfo span#address, .widget_contactinfo span#phone, .widget_contactinfo span#fax, .widget_contactinfo span#email .widget_contactinfo span#postcode .widget_contactinfo span#woonplaats{
    clear:both;
    padding:7px 0px;
    display:block;
    
}

En in deze vorm had ik ze een paar regels verder al staan:
1
2
3
4
5
6
7
8
9
10
11
12
13
.widget_contactinfo span#woonplaats{
    background-image: url(../images/leeg_icon.png);
    background-repeat: no-repeat;
    background-position: left 10px;
    padding-left:30px;
}

.widget_contactinfo span#postcode{
    background-image: url(../images/leeg_icon.png);
    background-repeat: no-repeat;
    background-position: left 10px;
    padding-left:30px;
}

Ik weet nu niet meer of het een CSS of PHP kwestie is :@
Sitethiefdonderdag 23 februari 2012 @ 10:54
Nee 462, in het bronbestand, Firebug gaf verkeerde regelnummer.
Maar dit is een CSS issue.
Mireldonderdag 23 februari 2012 @ 10:59
Naar welke refereer je? Ik heb er nergens een met zoveel regels :P
Sitethiefdonderdag 23 februari 2012 @ 11:02
Als je hem via Firebug in je browser bekijkt wel. Je kunt ook bij .widget_contactinfo span#postcode en .widget_contactinfo span#woonplaats display:block doen, minder mooi maar werkt wel.
Mireldonderdag 23 februari 2012 @ 11:06
Dat werkt, maar wel lelijk ja. Zal maar even gaan schuiven.
Sitethiefdonderdag 23 februari 2012 @ 11:09
Voeg daar nog padding-top: 7px en padding-bottom: 7px aan toe en je bent klaar.
Maar je kunt voor een duurzamere oplossing beter zoeken waar die andere css vandaan komt en in de bron daarvan dit aanpakken. Waarschijnlijk een van die widget dingen ofzo.
Mirelvrijdag 24 februari 2012 @ 11:57
crosspost van wordpress topic. Kan het beter hier en in het WP topic vragen dan op de themepagina zelf. De maker is een slecht Engelssprekende dude die alles fout begrijpt en non-antwoorden geeft. :{

Ik gebruik het Apogee wordpress thema. Op de gelinkte pagina zie je de blokken 'Easy to use Option Panel', 'Unlimited Layout Styles' en 'Easy Skins'. Daaronder zie je ook blokken, maar dan met foto's.

De bovenste worden gemaakt door shortcodes, en de onderste met een een custom post tool van de theme zelf, genaamd portfolio. De shortcodes van de blokken boven + de shortcode die de portfolio posts linkt gaan allemaal in 1 page.

Ik vind het vrij irritant dat ze niet allemaal via de portfolio post tool kunnen dus ik wil de bovenste blokjes ook daarin maken. Het lijkt me handig voor later om alles zo geordend te hebben.

Maar als ik een portfolio post maak, met of zonder plaatje: de tekst wordt erg ingekort. Ik kan nergens vinden hoe ik het max aantal letters kan verhogen.

Ik had in firebug de div opgezocht waar de tekst ingaat en kunnen herleiden naar kaya_portfolio.php:
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<?php
function port_portfolio ($atts$content null) {
    
extract(shortcode_atts(array(
        
'id'      => '2',
        
'images'      =>'5',
        
'column'      =>'4',
        
'sidebar'   => '',
        
    ), 
$atts));
    
wp_enqueue_script("jquery_easing");
    
wp_enqueue_script('jquery_fancybox_pack');
    
wp_enqueue_style('css_fancybox');
?>
<script>  
     jQuery(document).ready(function() {
    jQuery("a.example2").fancybox({
                'titleShow'     : true,
                'transitionIn'    : 'elastic',
                'transitionOut'    : 'elastic',
                'easingIn'      : 'easeOutBack',
                'easingOut'     : 'easeInBack'
            });
        });

</script>
<?php
if($column == '5') { $class="one_fifth"; }  
 if(
$column == '4') {$class="one_fourth";}
if(
$column == '3') { $class="one_third"; }
if(
$column == '2') {$class="one_half"; }
if(
$column == '1') { $class="fullwidth"; }
   if(
$sidebar=="on")
   { 
if(
$column == '5') { $width="107"$height="80";   }  
if(
$column == '4') { $width="139"$height="120";  }
if(
$column == '3') { $width="193"$height="150";}
if(
$column == '2') { $width="301"$height="250"; }
if(
$column == '1') { $width="624"$height="325"; }

}else{

if(
$column == '5') { $width="162"$height="200";}  
 if(
$column == '4') { $width="212"$height="153";}
if(
$column == '3') { $width="295"$height="256"; }
if(
$column == '2') { $width="461"$height="247"; }
if(
$column == '1') { $width="959"$height="325"; }
}
    global 
$post$wpdb;

    
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        
query_posts(array('post_type' => 'kayaportfolio''posts_per_page' => $images'taxonomy' => 'portfolio_category''term' => $id'paged' => $paged));

     
$out='<div class="portfolio'.$column.' gallery">';
    
$i 0;
     if(
have_posts()) : 
        while (
have_posts()): the_post();         
        
$readmore get_option('readmore');
$readmore$readmore $readmore'Read More';    
        
$post_title get_the_title($post->ID);
        
$i++;
    
$permalink get_permalink($post->ID);
    if(
$column != "1") {
    
    
$last = ($i == $column and $column != 1) ? 'last' '';
         
$out.= '<div  class="'.$class.' '.$last.'">';          
              
$out.= '<div class="portfolio-padding">';    
            
$video get_post_metaget_the_ID(), 'Video'true );            
            
            if(
$video)
            {
            if ( !empty( 
$video ) ) {
                        
$out.='<a href="'.$video.'" class="example2 lightbox iframe" title="Image Preview">';
                         
                        
$out.=kaya_imageresize(get_the_ID(),$width,$height,'img_radius','false');
                        
$out.='</a>';
            
//    $out.='<div class="post_nav_box">';
                //$out.='<a href="'.$video.'" class="lightbox_video" rel="prettyPhoto[mixed]" title="Video Preview"> </a><a href="'.$permalink.'" class="post_link"  title="Link To Post"> </a>';
            //    $out.='</div>';
            
}
            }else{
            
            
$thumb_id get_post_thumbnail_id();
            
                if ( !empty( 
$thumb_id ) ) {                        
                
$imgurl=wp_get_attachment_urlget_post_thumbnail_id() );
                
$out.='<a href="'.$imgurl.'" class="example2 lightbox iframe" title="Image Preview">';
                
$out.=kaya_imageresize(get_the_ID(),$width,$height,'img_radius','false');
                
$out.='</a>';
            
//    $out.='<div class="post_nav_box">';
            //    $out.='<a href="'.$imgurl.'" class="lightbox_image" rel="prettyPhoto[mixed]" title="Image Preview"></a><a href="'.$permalink.'" class="post_link"  title="Link To Post"> </a>';
            //    $out.='</div>';
            
                
}
                
            }
                
             
$out.='<div class="clear"> </div>';
                 
            
            
$out.='<div class="item_content_holder">';
          
         
$out.='<h4><a href="'.$permalink.'">'.$post_title.'</a></h4>'
                global 
$kaya_content
                 global 
$more$more=0;
           
            
            
$out.=content('10'); 
            
//$out.='<a class="readmore" href="'.$permalink.'">'.$readmore.'<span></span></a>';
        
            // $out.='</div>'; 
            
      //portfolio padding end
        
$out.='</div>';  
    
        
$out.='</div></div>';        
       
         if(
$last=="last"){
          
$out.='<div class="clear v-space"></div>';
         }
         }
            
        if(
$column== "1")  { 
        
            
$last = ($i == $column and $column != 1) ? 'last ' '';
            
$out.= '<div class="portfolio-padding">';                    
            
$video get_post_metaget_the_ID(), 'Video'true );            
        
            if(
$video)
            {
            if ( !empty( 
$video ) ) {
                
$out.='<a href="'.$video.'" class="example2 lightbox iframe" title="Image Preview">';
                
$out.=kaya_imageresize(get_the_ID(),$width,$height,'img_radius','false');
                
$out.='</a>';
                
//$out.='<div class="post_nav_box">';
                //$out.='<a href="'.$video.'" class="lightbox_video" rel="prettyPhoto[mixed]" title="Video Preview"> </a><a href="'.$permalink.'" class="post_link"  title="Link To Post"> </a>';
                //$out.='</div>';
                //$out.='<br>';
            
}
            }else{
            
            
$thumb_id get_post_thumbnail_id();
            
                if ( !empty( 
$thumb_id ) ) {
                    
$imgurl=wp_get_attachment_urlget_post_thumbnail_id() );
                
$out.='<a href="'.$imgurl.'" class="example2 lightbox iframe" title="Image Preview">';
                    
$out.=kaya_imageresize(get_the_ID(),$width,$height,'','false');
                    
$out.='</a>';
                    
//$out.='<div class="post_nav_box">';
                //    $out.='<a href="'.$imgurl.'" class="lightbox_image" rel="prettyPhoto[mixed]"  title="Image Preview"></a><a href="'.$permalink.'" class="post_link"  title="Link To Post"> </a>';
                //$out.='</div>';
                
}
            }       
        
            
$out.='<div class="item_content_holder">';
          
         
$out.='<h4><a href="'.$permalink.'">'.$post_title.'</a></h4>'
                global 
$kaya_content
                 global 
$more$more=0;
           
            
$out.=content('20'); 
                    
// $out.='</div>'; 
            
      //portfolio padding end
        
$out.='</div>';  
    
        
$out.='</div>';
         
$out.='<div class="clear v-space2"> </div> ';
 }            
            if(
$i == $column){
$i 0;
}
         endwhile;  
         
$out.='</div>'
         else :
$out.='<h2>'."Sorry but we could not find what you were looking for. But don't give up, keep at it!".'</h2>';
 endif; 

$out.=kaya_pagination(); 

      
// $out.='</div>';
      
wp_reset_query();
       return 
$out;
       
add_shortcode('portfolio','port_portfolio'); ?>

Maar het zegt me dus niks :')

Hoe kan ik dat veranderen? Als deze site opgeleverd is dan wil ik dat gebruikers via portfolio posts de blokjes kunnen aanpassen wanneer er informatie verandert, en niet door bijna-HTML achtig met shortcodes te gaan werken. -O-

Ik heb eens de letters geteld en het zijn 36 inclusief de spaties. Heb dus die nummertjes proberen op te zoeken in dit bestand maar ze staan er niet. Geen idee waar die maxlengte dus bepaald wordt.
Sitethiefvrijdag 24 februari 2012 @ 12:26
Wat doet kaya_pagination() ??
Mirelvrijdag 24 februari 2012 @ 12:28
Als ik die weghaal blijft de tekst staan.
The_Terminatorvrijdag 24 februari 2012 @ 12:36
quote:
0s.gif Op vrijdag 24 februari 2012 12:28 schreef Mirel het volgende:
Als ik die weghaal blijft de tekst staan.
In wat voor DB veld worden de gegevens opgeslagen? Als het bijvoorbeeld een varchar met een maximale lengte van 30 tekens is dan zit een deel van het probleem daar.
Mirelvrijdag 24 februari 2012 @ 12:39
Ja idd, maar ik neem aan dat het ergens in de theme te vinden moet zijn. Het is een theme-eigen ding zover ik weet.
The_Terminatorvrijdag 24 februari 2012 @ 14:17
quote:
0s.gif Op vrijdag 24 februari 2012 12:39 schreef Mirel het volgende:
Ja idd, maar ik neem aan dat het ergens in de theme te vinden moet zijn. Het is een theme-eigen ding zover ik weet.
Zoek in je DB de tekst die ingekort is eens op en kijk of het in de DB ook ingekort staat. Als het in de DB ingekort staat dan wordt het voordat het wordt opgeslagen al ingekort en moet je het probleem zoeken in de code die ervoor zorgt dat de gegevens naar de DB worden weggeschreven. Als het wel goed in de DB staat dan zit het probleem ergens in de code die de gegevens uit de DB haalt en verwerkt in de pagina.

Ik kan in bovenstaande code alleen de var: global $kaya_content; vinden. Aangezien er 'global' voor staat weet je dat die variable ergens anders in de code wordt gevuld. Je zult (in het het geval het probleem in de code die de gegevens ophaalt zit) uit moeten zoeken waar en hoe die variable gevuld wordt.
Faux.zaterdag 25 februari 2012 @ 16:04
Hoi, ik heb even een vraagje. Ik wil met strpos(); kijken of er een teken in een string zit. Het kan echter voorkomen dat dit teken vaker dan 1 keer voorkomt in de string. Hoe zorg ik er voor dat strpos(); de posities van alle plekken waar het teken in de string staat geeft? Alvast bedankt :)
Tijnzaterdag 25 februari 2012 @ 16:07
Recursief in een loopje door je string blijven zoeken en elke keer het resultaat van strpos gebruiken als 3e parameter voor de volgende keer (offset). Daardoor zoek je verder vanaf het laatst gevonden resultaat.
Faux.zaterdag 25 februari 2012 @ 16:12
quote:
14s.gif Op zaterdag 25 februari 2012 16:07 schreef Tijn het volgende:
Recursief in een loopje door je string blijven zoeken en elke keer het resultaat van strpos gebruiken als 3e parameter voor de volgende keer (offset). Daardoor zoek je verder vanaf het laatst gevonden resultaat.
Zou je een voorbeeld hebben van het loopje? :) Ik ben heel slecht daarin :@
The_Terminatorzaterdag 25 februari 2012 @ 16:17
quote:
7s.gif Op zaterdag 25 februari 2012 16:12 schreef Faux. het volgende:

[..]

Zou je een voorbeeld hebben van het loopje? :) Ik ben heel slecht daarin :@
Van: http://php.net/manual/en/function.stripos.php

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
<?php
 
function multineedle_stripos($haystack$needles$offset=0) {
     foreach(
$needles as $needle) {
         
$found[$needle] = stripos($haystack$needle$offset);
     }
     return 
$found;
 }
 
// It works as such:
 
$haystack "The quick brown fox jumps over the lazy dog.";
 
$needle = array("fox""dog"".""duck")
 
var_dump(multineedle_stripos($haystack$needle));
 
/* Output:
    array(3) {
      ["fox"]=>
      int(16)
      ["dog"]=>
      int(40)
      ["."]=>
      int(43)
      ["duck"]=>
      bool(false)
    }
 */
 
?> 
Faux.zaterdag 25 februari 2012 @ 16:21
quote:
Niet helemaal wat ik bedoel, hier wordt er namelijk naar meerdere dingen gezocht in een string. Ik bedoel echter dat je naar één teken zoekt in de string die meerdere keren voorkomt. Toch bedankt voor het opzoeken :)
Tijnzaterdag 25 februari 2012 @ 16:40
quote:
7s.gif Op zaterdag 25 februari 2012 16:12 schreef Faux. het volgende:

[..]

Zou je een voorbeeld hebben van het loopje? :) Ik ben heel slecht daarin :@
Zoiets denk ik:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
    
// zoek recursief door een string    
    
function strpos_recursive($haystack$needle$offset 0, &$results = array()) {                
        
$offset strpos($haystack$needle$offset);
        if(
$offset === false) {
            return 
$results;            
        } else {
            
$results[] = $offset;
            return 
strpos_recursive($haystack$needle, ($offset 1), $results);
        }
    }
    
    
$string 'Ja hallo, dit is een string';
    
$search 'a';
    if(
$found strpos_recursive($string$search)) {
        foreach(
$found as $pos) {
            echo 
'Found "'.$search.'" in string "'.$string.'" at position <b>'.$pos.'</b><br />';
        }    
    } else {
        echo 
'"'.$search.'" not found in "'.$string.'"';
    }
?>
Faux.zaterdag 25 februari 2012 @ 16:41
quote:
5s.gif Op zaterdag 25 februari 2012 16:40 schreef Tijn het volgende:

[..]

Zoiets denk ik:
[ code verwijderd ]

Top, hartstikke bedankt! ^O^
Tijnzaterdag 25 februari 2012 @ 16:41
Volgens mij de eerste keer dat ik hier code post die een beetje fatsoenlijk is :P
Faux.zaterdag 25 februari 2012 @ 16:52
quote:
10s.gif Op zaterdag 25 februari 2012 16:41 schreef Tijn het volgende:
Volgens mij de eerste keer dat ik hier code post die een beetje fatsoenlijk is :P
Het werkt inderdaad naar behoren. Bedankt! :)
GlowMousezaterdag 25 februari 2012 @ 18:12
http://nl.php.net/strpos
in de comments staat een functie strposall die een stuk mooier is
Tijnzaterdag 25 februari 2012 @ 18:22
Anderhalf uur voordat GM m'n oplossing met de grond gelijk maakt. Ik denk dat dat een persoonlijk record is :7
mafkees10zaterdag 25 februari 2012 @ 20:09
Ik heb nou toch een onverklaarbare actie. Misschien dat iemand van jullie kan helpen?
Ik heb een array $createdData.

Dan gebruik ik:
1
2
3
4
5
6
7
8
9
10
<?php
        
foreach($concepts as $concept) {
            foreach(
$concept->getProperties() as $property) {
                
$this->cfname $property->getName();
                
$this->_insert();
                
$createdData[] = $this;
                
$this->_increaseID();
            }
        }
?>
Als ik print_r($this) doe in de loop krijg ik netjes twee keer de volgende output met oplopende waarden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    [4] => Customfield Object
        (
            [ID:Customfield:private] => 10009
            [CUSTOMFIELDTYPEKEY:Customfield:private] => text
            [CUSTOMFIELDSEARCHERKEY:Customfield:private] => text2
            [cfname:Customfield:private] => Assignee
            [DESCRIPTION:Customfield:private] => 
            [defaultvalue:Customfield:private] => 
            [FIELDTYPE:Customfield:private] => 
            [PROJECT:Customfield:private] => 
            [ISSUETYPE:Customfield:private] => 
        )
    [5] => Customfield Object
        (
            [ID:Customfield:private] => 10010
            [CUSTOMFIELDTYPEKEY:Customfield:private] => text
            [CUSTOMFIELDSEARCHERKEY:Customfield:private] => text2
            [cfname:Customfield:private] => Assignee
            [DESCRIPTION:Customfield:private] => 
            [defaultvalue:Customfield:private] => 
            [FIELDTYPE:Customfield:private] => 
            [PROJECT:Customfield:private] => 
            [ISSUETYPE:Customfield:private] => 
        )
Als ik echter $createdData[] = $this toevoeg aan mijn loop en vervolgens print_r($createdData) doe dan krijg ik heb laatste object twee keer in mijn array????? Iemand die dit kan verklaren? Ik krijg dus dit in mijn array:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    [4] => Customfield Object
        (
            [ID:Customfield:private] => 10009
            [CUSTOMFIELDTYPEKEY:Customfield:private] => text
            [CUSTOMFIELDSEARCHERKEY:Customfield:private] => text2
            [cfname:Customfield:private] => Assignee
            [DESCRIPTION:Customfield:private] => 
            [defaultvalue:Customfield:private] => 
            [FIELDTYPE:Customfield:private] => 
            [PROJECT:Customfield:private] => 
            [ISSUETYPE:Customfield:private] => 
        )
    [5] => Customfield Object
        (
            [ID:Customfield:private] => 10009
            [CUSTOMFIELDTYPEKEY:Customfield:private] => text
            [CUSTOMFIELDSEARCHERKEY:Customfield:private] => text2
            [cfname:Customfield:private] => Assignee
            [DESCRIPTION:Customfield:private] => 
            [defaultvalue:Customfield:private] => 
            [FIELDTYPE:Customfield:private] => 
            [PROJECT:Customfield:private] => 
            [ISSUETYPE:Customfield:private] => 
        )


[ Bericht 16% gewijzigd door mafkees10 op 25-02-2012 20:15:30 ]
mafkees10zaterdag 25 februari 2012 @ 20:41
Nou, blijkbaar houdt PHP de referentie naar het object hetzelfde. Als ik print_r in de loop doe dan wijzigen alle waarden inderdaad mee wanneer ik $this wijzig. Heel je array verandert dus.. Vreemd, had ik niet verwacht. Ik heb nu maar nieuwe instanties van de klasse gemaakt en toegevoegd aan de array :)
Mirelmaandag 27 februari 2012 @ 20:22
Ik vraag het toch maar even hier omdat de maker van het nog wel betaalde wordpress theme ons niet wilt helpen. Nou ja, onze vragen om bepaalde hardcoded dingen aan te passen wilt meneer zelf veranderen tegenover een prijsje :')

Maar goed. Op www.filmdepartment.nl/v2 staat bovenaan een slider van 3 plaatjes. Hij is alleen te sliden wanneer je scrollt overigens, want de < > knopjes verschijnen pas als er een 4e wordt geplaatst.

Nu wil ik de kopjes daarvan in een ander font hebben, maar het probleem is dat dat via een googlefont wordt gedaan, en dat wordt geregeld vanuit het dashboard. Er zijn maar 2 keuzes, eentje voor de body, en eentje voor alle 6 h tags. Verder is er ook een knopje om googlefonts aan en uit te zetten. Uitzetten betekent dat het standaardfont van het theme wordt gebruikt, oftewel een voorafingestelde googlefont. :') We willen graag onze eigen font gebruiken.

Ik heb dit kunnen vinden header.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php 
$google_bodyfont
=get_option('google_bodyfont')? get_option('google_bodyfont'):'Ubuntu Condensed';
$google_generaltitlefont=get_option('google_generaltitlefont')? get_option('google_generaltitlefont'):'Ubuntu Condensed';
$gbodyfont str_replace' ''+'$google_bodyfont); 
$generaltitlefont str_replace' ''+'$google_generaltitlefont); 
 
?>
<?php 
if( get_option('kaya_typhography')=="false") { ?>
<link href='http://fonts.googleapis.com/css?family=Ubuntu+Condensed' rel='stylesheet' type='text/css'/>
<?php }else{ ?>
<?php 
if($google_bodyfont !="") { ?>
<link  rel='stylesheet' type='text/css' href='http://fonts.googleapis.com/css?family=<?php echo $gbodyfont?>'>
<?php ?>
<?php 
if($generaltitlefont !="") { ?>
<link  rel='stylesheet' type='text/css' href='http://fonts.googleapis.com/css?family=<?php echo $generaltitlefont?>'>
<?php ?>
<?php 
?>

En dit staat in custom-skin.php:
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 if( get_option('kaya_typhography')== "true") { ?>
body{
<?php echo 'font-family:'?><?php echo $google_bodyfont?>!important; 
<?php echo 'font-size:'?><?php echo $google_bodyfont_size?>px!important;
<?php echo 'line-height:'?><?php echo $google_bodyfont_size+6?>px!important;
}

h1, h2, h3, h4, h5, h6
{<?php echo 'font-family:'?><?php echo $google_generaltitlefont?>!important; 
}

#content h1{
<?php echo 'font-size:'?><?php echo $google_h1font_size?>px!important;
<?php echo 'line-height:'?><?php echo $google_h1font_size+6?>px!important; 
}

#content h2{
<?php echo 'font-size:'?><?php echo $google_h2font_size?>px!important;
<?php echo 'line-height:'?><?php echo $google_h2font_size+6?>px!important; }

#content h3{
<?php echo 'font-size:'?><?php echo $google_h3font_size?>px!important;
<?php echo 'line-height:'?><?php echo $google_h3font_size+6?>px!important; }

#content h4{
<?php echo 'font-size:'?><?php echo $google_h4font_size?>px!important;
<?php echo 'line-height:'?><?php echo $google_h4font_size+6?>px!important; }

#contentn h5{
<?php echo 'font-size:'?><?php echo $google_h5font_size?>px!important;
<?php echo 'line-height:'?><?php echo $google_h5font_size+6?>px!important; 
}

#content h6{
<?php echo 'font-size:'?><?php echo $google_h6font_size?>px!important;
<?php echo 'line-height:'?><?php echo $google_h6font_size+6?>px!important; 
}
<?php }else{ // Defalut googlefont if there is no font is selected from  Theme Options
?>
    h1, h2, h3, h4, h5, h6 {
    color:#181818;
    margin-bottom:10px;
    font-family: 'Ubuntu Condensed', sans-serif !important;
    }

Wat ik ook probeer, als ik iets in dit bestand probeer aan te passen, een ander font verschijnt er niet.

Ik heb een hele regel, font-family: arial; in een echo geprobeerd, of alleen arial in een echo, of de hele echo weg. Of al deze code gewoon weghalen en in style.css h2 zelf stylen: niks werkt. :/

Ik had overigens gewoon het hele thememapje in notepad++ gedumpt en een search over alle geopende bestanden gedaan op google, en deze 2 bestanden kwamen naar boven. Dit moet dus gewoon alles zijn :)
GlowMousemaandag 27 februari 2012 @ 20:56
wijzig regel43 in custom-skin.php
Mirelmaandag 27 februari 2012 @ 21:16
Goddamnit natuurlijk :')
mafkees10woensdag 29 februari 2012 @ 13:50
Misschien iets te geavanceerd, maar ik vraag het toch want het lukt me maar niet :{ Ik weet dat hier ook wel wat goeroes zitten :)
Ik heb een array met objecten. D.m.v. een functie _exist() wil ik kijken of een object aan meerdere condities voldoen. De functie _exist is als volgende:
1
2
3
4
5
6
7
8
9
<?php
private function _exist($instanceType$values = array()) {
    foreach(
$this->data as $data) {
        if(
$data instanceof $instanceType) {
            
//hier moet ik dus values matchen!
        
}
    }
}
?>
Ik wil dus een object tegen meerdere condities gelijkertijd! matchen en dat object terugkrijgen. De functie roep ik zo aan:
1
2
3
4
5
<?php
if($this->_exist("user", array("getName" => "Henk""getStatus" => 1)) {
    
//exist!
}
?>
De key in de array is de functienaam, the value in de array is de waarde.

Hoe kan ik ervoor zorgen dat ik het object terugkrijg die aan alle waarden in de array matcht? Ik dacht aan
1
2
3
4
5
6
7
8
9
10
11
12
<?php
private function _exist($instanceType$values = array()) {
    foreach(
$this->data as $data) {
        if(
$data instanceof $instanceType) {
            foreach(
$values as $key => $value) {
                           if(
$data->$key() === $value)
                              
//exist!
                        
}
        }
    }
}
?>
Echter, het nadeel van bovenstaande is dat hij één voor één matcht en niet tegelijkertijd. Het resultaat is nooit zoals het moeten want meerdere objecten kunnen dezelfde waarde hebben. Ik moet dus de operator && gebruiken in de if constructie, maar ik zie hem niet. Iemand een idee hoe ik makkelijk de waarden kan testen? Ik moet een foreach in een foreach vermijden want dat zorgt voor troubles, dus als iemand tips heeft hoe dit makkelijk te doen is of een andere goede oplossing :) Graag! :)
Het probleem is namelijk dat de array soms 1 element bevat, en soms 3 elementen. De lengte van array is dus dynamisch :)
remi1986woensdag 29 februari 2012 @ 13:52
quote:
0s.gif Op woensdag 29 februari 2012 13:50 schreef mafkees10 het volgende:
Misschien iets te geavanceerd, maar ik vraag het toch want het lukt me maar niet :{ Ik weet dat hier ook wel wat goeroes zitten :)
Ik heb een array met objecten. D.m.v. een functie _exist() wil ik kijken of een object aan meerdere condities voldoen. De functie _exist is als volgende:
[ code verwijderd ]

Ik wil dus een object tegen meerdere condities gelijkertijd! matchen en dat object terugkrijgen. De functie roep ik zo aan:
[ code verwijderd ]

De key in de array is de functienaam, the value in de array is de waarde.

Hoe kan ik ervoor zorgen dat ik het object terugkrijg die aan alle waarden in de array matcht? Ik dacht aan
[ code verwijderd ]

Echter, het nadeel van bovenstaande is dat hij één voor één matcht en niet tegelijkertijd. Het resultaat is nooit zoals het moeten want meerdere objecten kunnen dezelfde waarde hebben. Ik moet dus de operator && gebruiken in de if constructie, maar ik zie hem niet. Iemand een idee hoe ik makkelijk de waarden kan testen? Ik moet een foreach in een foreach juist vermijden, dus als iemand tips heeft :) Graag! :)
even heel snel naar gekeken, maar kan je geen in_array() gebruiken?

1
2
3
<?php
if(in_array($data->$key(), $values)
?>
mafkees10woensdag 29 februari 2012 @ 13:54
Kan ik even testen ja! maar loopt die dan de array door? Het probleem is dus dat ik de code nu niet ter beschikking heb (pas vrijdag weer :r) en dus niets kan testen voor nu. Ik kan het vrijdag even gaan testen iig! :)
remi1986woensdag 29 februari 2012 @ 13:56
quote:
0s.gif Op woensdag 29 februari 2012 13:54 schreef mafkees10 het volgende:
Kan ik even testen ja! maar loopt die dan de array door? Het probleem is dus dat ik de code nu niet ter beschikking heb (pas vrijdag weer :r) en dus niets kan testen voor nu. Ik kan het vrijdag even gaan testen iig! :)
in_array controleert of de opgegeven waarde voorkomt in de array (ja je zou kunnen zeggen dat hij hem doorloopt).

http://php.net/manual/en/function.in-array.php
Mirelwoensdag 29 februari 2012 @ 14:49
Weer een vraagje over www.filmdepartment.nl/v2 :P Rechtsboven zie je een knop waarmee je een stuk boven de website tevoorschijn kan halen. Daarin zitten nu widgets, maar die wil ik eigenlijk weghebben. Ik wil dat dat hele vlak een grote googlemaps kaart wordt van Utrecht. Ik weet dus niet hoe, en ben benieuwd dat áls ik de widgets al weg kan halen, of de kaart er goed in komt, want op de een of andere manier zit alles van de inhoud in deze theme in het midden gecentreerd, maar ik kan in de CSS nergens vinden hoe dit gedaan is.

Ik zocht naar de betreffende divs en heb 1 php bestand gevonden:
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
<?php
$footercolumn
=get_option('footercolumn');
echo 
'<div id="panel_widget">';
echo  
'<div  id="panel_wrapper">';
echo  
'<div  class="panel">';
if(
$footercolumn == '5') { $footerclass="one_fifth"; }  
if(
$footercolumn == '4') {$footerclass="one_fourth";}
if(
$footercolumn == '3') { $footerclass="one_third"; }
if(
$footercolumn == '2') {$footerclass="one_half"; }
if(
$footercolumn == '1') { $footerclass="fullwidth"; }
 for(
$fc=1$fc<=$footercolumn$fc++)
 {
 
$last = ($fc == $footercolumn and $footercolumn != 1) ? 'last' '';
 
?>
 
<div class="<?php echo $footerclass?> <?php echo $last?>">
    <?php if ( !function_exists('dynamic_sidebar')|| !dynamic_sidebar('top_togglebox_column_'.$fc.'') ) : ?>
    <h3>
        <?php _e' Toggle Box Column '.$fc.'''Apogee' ); ?>
    </h3>
    <p>
        <?php _e'Wesce sit amet porttitor leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque interdum, nulla sit amet varius dignissim Vestibulum pretium risus. <a href="#"> View More »</a>''Apogee' ); ?>
    </p>
    <?php endif; ?>
</div>

<?php
 
}
echo 
'</div>';

echo 
'</div>';
?>
   
    <!-- The tab on top -->    
    <div class="tab">
        <ul class="login">
            <li id="toggle">
                <a id="open" class="open" href="#"></a>
                <a id="close" style="display: none;" class="close" href="#"></a>
            </li>
        </ul> 
    </div> 
</div>
Ik laat de widgets gewoon geactiveerd staan in het Wordpress dashboard zodat ik kan zien wanneer ze echt weg zijn. Al zou ik ze weghalen uit het dashboard, die ruimte is geserveerd voor widgets en is niet bepaald vriendelijk voor eigen opmaak.
remi1986woensdag 29 februari 2012 @ 14:51
Alles binnen <div id="panel_wrapper"> weghalen en daar je google maps plaatsen
Mirelwoensdag 29 februari 2012 @ 14:53
Maar wat haal ik dan weg uit het php bestand? id panel_wrapper is alleen daar te vinden, en al die codes zeggen me niet zoveel. Als ik al 1 regel van iets weghaal, dan wilt de hele site niet laden.
Mirelwoensdag 29 februari 2012 @ 14:55
Yay, alles binnen <div class="<?php echo $footerclass; ?> <?php echo $last; ?>"> leeggehaald, en deze regels:

1
2
3
4
5
6
7
<?php
if($footercolumn == '5') { $footerclass="one_fifth"; }  
if(
$footercolumn == '4') {$footerclass="one_fourth";}
if(
$footercolumn == '3') { $footerclass="one_third"; }
if(
$footercolumn == '2') {$footerclass="one_half"; }
if(
$footercolumn == '1') { $footerclass="fullwidth"; }
?>

Maar de boel zit nog steeds in het midden. Ik heb er een testtekstje in gedaan, maar het verschijnt 4x.

Dit is het nu momenteel in z'n geheel:
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
<?php
$footercolumn
=get_option('footercolumn');
echo 
'<div id="panel_widget">';
echo  
'<div  id="panel_wrapper">';
echo  
'<div  class="panel">';

 for(
$fc=1$fc<=$footercolumn$fc++)
 {
 
$last = ($fc == $footercolumn and $footercolumn != 1) ? 'last' '';
 
?>
 
<div class="<?php echo $footerclass?> <?php echo $last?>">
<p>Dit is slechts 1 regel tekst, maar verschijnt hier 4 keer</p>
</div>

<?php
 
}
echo 
'</div>';

echo 
'</div>';
?>
   
    <!-- The tab on top -->    
    <div class="tab">
        <ul class="login">
            <li id="toggle">
                <a id="open" class="open" href="#"></a>
                <a id="close" style="display: none;" class="close" href="#"></a>
            </li>
        </ul> 
    </div> 
</div>
Zo ziet het er dan uit:
GlgPc.jpg

En als ik bovenaan echo div class panel weghaal, dan wordt het zo. Het is goed dat de tekst nu linksboven zit, maar het uitklapknopje helemaal rechts staat dan niet meer goed:
mmLAX.jpg

Uiteindelijk moet het dus dit worden :P
BdcZo.jpg

[ Bericht 42% gewijzigd door Mirel op 29-02-2012 15:21:27 ]
remi1986woensdag 29 februari 2012 @ 16:26
Dat komt omdat je het in een for loop hebt zitten. Haal die er maar om weg

1
2
3
<?php
for($fc=1$fc<=$footercolumn$fc++)
?>
Mirelwoensdag 29 februari 2012 @ 16:32
Ah ok, ik had ook wat er na komt verwijderd en toen flipte alles. Maar ok, die regel is weg.

edit: als ik dus die ene netgenoemde echo weghaal, dan gaat de tekst waar ik het wil hebben, linksboven, maar het knopje verspringt dan. Is het vanaf dit moment nog een PHP issue of CSS?
remi1986woensdag 29 februari 2012 @ 16:35
quote:
0s.gif Op woensdag 29 februari 2012 16:32 schreef Mirel het volgende:
Ah ok, ik had ook wat er na komt verwijderd en toen flipte alles. Maar ok, die regel is weg.

edit: als ik dus die ene netgenoemde echo weghaal, dan gaat de tekst waar ik het wil hebben, linksboven, maar het knopje verspringt dan. Is het vanaf dit moment nog een PHP issue of CSS?
welk knopje verspringt ?
Mirelwoensdag 29 februari 2012 @ 16:38
http://i.imgur.com/GlgPc.jpg

en

http://i.imgur.com/mmLAX.jpg

kijk maar helemaal naar rechts, het witte.

Dat je het niet ziet zegt al genoeg over de kleurenkeuze :P
remi1986woensdag 29 februari 2012 @ 16:41
xc1084.png

Ik zie het niet?


Jij hebt in die afbeeldingen ook nog 4x die tekst?
Mirelwoensdag 29 februari 2012 @ 16:49
Dat zijn oude afbeeldingen, dat is nu veranderd, behalve het knopje. Het knopje helemaal rechts die wit is, met een ^ pijltje. n plaatje 1 zit 'ie vast aan het witte erboven, in plaatje 2 niet. Dat gebeurt er als ik echo '<div class="panel">'; weghaal. En die móet weg, want als die blijft staan, dan staat de boel in het midden. Zonder die echo staat alles linksboven en dat is wat ik wil, aangezien ik een googlemap over de hele breedte wil.

Wat ik overigens alvast geprobeerd heb, alleen hij pakt ineens dat filmpje die ook iets beneden in de pagina te vinden is 8)7

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
<?php
$footercolumn
=get_option('footercolumn');
echo 
'<div id="panel_widget">';
echo  
'<div  id="panel_wrapper">';

 
 {
 
$last = ($fc == $footercolumn and $footercolumn != 1) ? 'last' '';
 
?>
 
<div class="<?php echo $footerclass?> <?php echo $last?>">
    <iframe width="900" height="400" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=filmdepartment.nl,+Ondiep-Zuidzijde,+Egelantierstraat-Mari%C3%ABndaalstraat,+Utrecht,+Nederland&aq=0&oq=filmdepartment&sll=37.0625,-95.677068&sspn=44.47475,107.138672&ie=UTF8&hq=filmdepartment.nl,&hnear=Ondiep-Zuidzijde,+Noordwest,+Utrecht,+The+Netherlands&t=h&ll=52.102644,5.097678&spn=0.005272,0.019333&z=16&iwloc=A&output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=filmdepartment.nl,+Ondiep-Zuidzijde,+Egelantierstraat-Mari%C3%ABndaalstraat,+Utrecht,+Nederland&aq=0&oq=filmdepartment&sll=37.0625,-95.677068&sspn=44.47475,107.138672&ie=UTF8&hq=filmdepartment.nl,&hnear=Ondiep-Zuidzijde,+Noordwest,+Utrecht,+The+Netherlands&t=h&ll=52.102644,5.097678&spn=0.005272,0.019333&z=16&iwloc=A" style="color:#0000FF;text-align:left">View Larger Map</a></small>
</div>

<?php
 
}
echo 
'</div>';

echo 
'</div>';
?>
   
    <!-- The tab on top -->    
    <div class="tab">
        <ul class="login">
            <li id="toggle">
                <a id="open" class="open" href="#"></a>
                <a id="close" style="display: none;" class="close" href="#"></a>
            </li>
        </ul> 
    </div> 
</div>

Ik weet nog even niet of de iframe width en height op 100% kunnen, zie ik straks wel.
remi1986woensdag 29 februari 2012 @ 16:53
qo6f0z.png

in de CSS (slide.css) dus zoeken naar .tab ul.login en dat daar aanpassen.


Ben met 5 minuten vrij en ben er vanavond niet, dus reageer vandaag niet meer. Succes verder!
Mirelwoensdag 29 februari 2012 @ 16:58
Thanks! Op naar het css topic voor googlemaps nu!
mafkees10woensdag 29 februari 2012 @ 17:32
quote:
0s.gif Op woensdag 29 februari 2012 13:56 schreef remi1986 het volgende:

[..]

in_array controleert of de opgegeven waarde voorkomt in de array (ja je zou kunnen zeggen dat hij hem doorloopt).

http://php.net/manual/en/function.in-array.php
Daar heb ik ook aan gedacht, maar misschien denk ik weer te moeilijk! Vrijdag even controleren dus! Bedankt :)

Ik zit me net te bedenken dat dit niet klopt.
Stel ik heb een object user met daarin:
private $pass;
private $name;
private $status;

en de drie getters.

Als ik vervolgens:
_exist("user", array("getPass" => "test", "getName" => "test")) dan returnt hij bij getPass al true indien het wachtwoord "test" is. De getName wordt dan dus genegeerd! Als ik de uitkomst van de functie in een array stop, dan krijg ik een andere user die ook het wachtwoord "test" heeft maar met de naam "henk" ook terug. Dat is niet de bedoeling dus. Als ik de uitkomst in een variable stop krijg ik de laatste user terug die als wachtwoord test heeft. Beide niet goed dus :)

[ Bericht 13% gewijzigd door mafkees10 op 29-02-2012 17:50:33 ]
Lightwoensdag 29 februari 2012 @ 20:30
quote:
0s.gif Op woensdag 29 februari 2012 17:32 schreef mafkees10 het volgende:

[..]

Daar heb ik ook aan gedacht, maar misschien denk ik weer te moeilijk! Vrijdag even controleren dus! Bedankt :)

Ik zit me net te bedenken dat dit niet klopt.
Stel ik heb een object user met daarin:
private $pass;
private $name;
private $status;

en de drie getters.

Als ik vervolgens:
_exist("user", array("getPass" => "test", "getName" => "test")) dan returnt hij bij getPass al true indien het wachtwoord "test" is. De getName wordt dan dus genegeerd! Als ik de uitkomst van de functie in een array stop, dan krijg ik een andere user die ook het wachtwoord "test" heeft maar met de naam "henk" ook terug. Dat is niet de bedoeling dus. Als ik de uitkomst in een variable stop krijg ik de laatste user terug die als wachtwoord test heeft. Beide niet goed dus :)
De functie _exist is voor zover ik weet geen standaard PHP functie. Dus ik ben wel benieuwd wat de implementatie is. Kun je die hier eens posten (en dan tussen [php] en [/php] om de code leesbaar te houden).
GlowMousewoensdag 29 februari 2012 @ 20:41
post #151
urselwoensdag 29 februari 2012 @ 20:53
Yeh, vandaag ZCE gehaald *O*
Lightwoensdag 29 februari 2012 @ 20:53
Ah, zover had ik niet terug gelezen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
private function _exist($instanceType$values = array()) {
    
$result = array();
    foreach(
$this->data as $data) {
        if(
$data instanceof $instanceType) {
            foreach(
$values as $key => $value) {
                
// We nemen aan dat alles klopt, daarna gaan we controleren.
                
$found true;
                if(
$data->$key() !== $value) {
                    
$found false;
                    break;
                }
                if(
$found) {
                    
$result[] = $data;
                }
            }
        }
    }
    return 
$result;
}
?>

Zoiets zou het dan worden, denk ik.
Lightwoensdag 29 februari 2012 @ 20:53
quote:
0s.gif Op woensdag 29 februari 2012 20:53 schreef ursel het volgende:
Yeh, vandaag ZCE gehaald *O*
Feli :)
mafkees10woensdag 29 februari 2012 @ 23:10
quote:
0s.gif Op woensdag 29 februari 2012 20:53 schreef Light het volgende:
Ah, zover had ik niet terug gelezen.
[ code verwijderd ]

Zoiets zou het dan worden, denk ik.
Matcht ook niet :{ Ben net ook al bezig geweest maar ik heb maar een lijntje op twiekerts gegooid. Dit grapje heeft me flink wat tijd gekost :r
#ANONIEMwoensdag 29 februari 2012 @ 23:21
Heeft iemand hier al gewerkt met namespaces? Ik ben momenteel nog aan het inlezen erover en wil ze gaan gebruiken in mijn aankomende projecten.

Wat ik wil gaan maken is een standaard MVC, maar dan met niet al te veel opties en dingen die ik zelf nooit gebruik. Het wordt aangeraden toch wel te beginnen hiermee.
Ofyles2woensdag 29 februari 2012 @ 23:26
quote:
0s.gif Op woensdag 29 februari 2012 23:21 schreef totalvamp het volgende:
Heeft iemand hier al gewerkt met namespaces? Ik ben momenteel nog aan het inlezen erover en wil ze gaan gebruiken in mijn aankomende projecten.
Nog nooit met namespaces gewerkt bij PHP, dat moet ik uitdokteren

quote:
Wat ik wil gaan maken is een standaard MVC, maar dan met niet al te veel opties en dingen die ik zelf nooit gebruik. Het wordt aangeraden toch wel te beginnen hiermee.
Daar ben ik ook al mee bezig. Ik volg de spelregels die ik in een programmeerboek heb gevonden, daarbuiten sla ik scripts op in aparte mappen.
#ANONIEMwoensdag 29 februari 2012 @ 23:55
quote:
0s.gif Op woensdag 29 februari 2012 23:26 schreef Ofyles2 het volgende:

[..]

Nog nooit met namespaces gewerkt bij PHP, dat moet ik uitdokteren

[..]

Daar ben ik ook al mee bezig. Ik volg de spelregels die ik in een programmeerboek heb gevonden, daarbuiten sla ik scripts op in aparte mappen.
hmm hoe bedoel je scripts?

Het voordeel van een MVC is dat je alles beschikbaar hebt wanneer je het nodig hebt en anders wordt het niet geladen. Ik ben benieuwd naar jouw structuur.
Ofyles2donderdag 1 maart 2012 @ 02:24
quote:
0s.gif Op woensdag 29 februari 2012 23:55 schreef totalvamp het volgende:

[..]

hmm hoe bedoel je scripts?

Het voordeel van een MVC is dat je alles beschikbaar hebt wanneer je het nodig hebt en anders wordt het niet geladen. Ik ben benieuwd naar jouw structuur.
Scripts als in Javascript en CSS.

Enfin, mijn spelregels:
• Models hebben geen HTML-fragmenten
• Controllers hebben geen HTML-fragmenten en hebben geen SQL-opdrachten
• Views hebben slechts minimale HTML-code

Ik heb het MVC-principe vervolgens nog verder verfijnd met meerdere subfolders (formulieren, transacties e.d.). Ik geef de voorkeur aan veel bestandjes dan weinig kolossen van bestanden.
Lightdonderdag 1 maart 2012 @ 07:34
quote:
0s.gif Op woensdag 29 februari 2012 23:21 schreef totalvamp het volgende:
Heeft iemand hier al gewerkt met namespaces? Ik ben momenteel nog aan het inlezen erover en wil ze gaan gebruiken in mijn aankomende projecten.
Werkt erg leuk, vereist wel PHP 5.3 :)
#ANONIEMdonderdag 1 maart 2012 @ 15:48
quote:
0s.gif Op donderdag 1 maart 2012 07:34 schreef Light het volgende:

[..]

Werkt erg leuk, vereist wel PHP 5.3 :)
Ik zou bezorgt zijn als mijn hoster dat niet zou hebben... Zeker als deze niet upgradet naar de nieuwste versies.
xaban06zondag 4 maart 2012 @ 23:52
Waarom krijg ik de output van het volgende niet te zien? Het wordt weggeschreven naar de apache log, terwijl ik dat helemaal niet wil :) Het moet weggeschreven worden naar een array.

1
2
3
<?php
$arr 
system('/usr/bin/wget --spider http://www.nu.nl'$ret);
?>
GlowMousemaandag 5 maart 2012 @ 00:01
Dat komt omdat wget stderr gebruikt ipv stdout. Op http://stackoverflow.com/(...)n-the-browser-window staan wat oplossingen.
xaban06maandag 5 maart 2012 @ 00:13
quote:
0s.gif Op maandag 5 maart 2012 00:01 schreef GlowMouse het volgende:
Dat komt omdat wget stderr gebruikt ipv stdout. Op http://stackoverflow.com/(...)n-the-browser-window staan wat oplossingen.
Thanks!

Opgelost met stderr naar stdout:
2>&1
Mirelwoensdag 7 maart 2012 @ 13:27
EDIT: hij doet het wel, duurde gewoon een fucking uur voordat het aankwam :')

[ Bericht 17% gewijzigd door Mirel op 07-03-2012 14:45:29 ]
Crutchwoensdag 7 maart 2012 @ 17:14
Ik heb een array opgeslagen in een cookie $_COOKIE['cart'];
Waarin ik de items en aantallen opsla, bijvoorbeeld: Een winkelwagentje met 2 meloenen zou dan dit zijn:

setcookie("cart[meloenen]", "2", time() + (60*60*24));

Dat werkt, maar hoe flikker ik geheel $_COOKIE['cart'] weg?
Pakspulwoensdag 7 maart 2012 @ 17:25
Unset functie
GlowMousewoensdag 7 maart 2012 @ 17:43
Werkt setcookie("cart", NULL, 1) of setcookie("cart[]", NULL, 1)? Anders zou je door $_COOKIE['cart'] moeten loopen en voor elk element setcookie moeten aanroepen.
Yuri_Boykawoensdag 7 maart 2012 @ 17:56
Gisteren heb ik een boek gekocht op Bol.com en nadat je iets hebt aangekocht kom je op de pagina uit "Bedankt voor uw bestelling". Daar krijg je mogelijkheid om je aangekochte product te tweeten, delen etc. etc.

Nu heb ik hier al vaker overgelezen dat dit een effectieve functie is voor je webshop. Nu is het zo dat ik dit ook wil implemteren in onze webshop.

Hoe moeilijk is het? Hoeveel tijd kost het?

Het liefst wil ik dit uitbesteden.

Hier een voorbeeld. Uiteraard ziet het er gelikt uit in het echt, maar om het echte plaatje te tonen moet ik iets kopen en ik zie niet zo gauw een goedkoop product van ¤ 2,- op Bol.com om dit te laten zien.

B623v.jpg

Alvast bedankt!
GlowMousewoensdag 7 maart 2012 @ 17:59
Kijk naar AddThis.
Yuri_Boykawoensdag 7 maart 2012 @ 18:28
quote:
14s.gif Op woensdag 7 maart 2012 17:59 schreef GlowMouse het volgende:
Kijk naar AddThis.
Dat is niet echt wat ik bedoel. Ik heb een goedkoop product gevonden.

Zo ziet het eruit. Het is al helemaal voorgeprogrammeerd.

hVhB8.jpg
#ANONIEMwoensdag 7 maart 2012 @ 18:30
Dat is toch niet zo moeilijk te maken ?
Yuri_Boykawoensdag 7 maart 2012 @ 18:34
quote:
0s.gif Op woensdag 7 maart 2012 18:30 schreef Scorpie het volgende:
Dat is toch niet zo moeilijk te maken ?
Dat weet ik dus niet. Ik heb zelf geen enkele kennis op het gebied van programmeren.

Dus mijn vraag is ook, hoeveel tijd kost het iemand die er verstand van heeft en hoeveel zou het kunnen kosten om dat te laten maken zodat het ook daadwerkelijk goed werkt.
#ANONIEMwoensdag 7 maart 2012 @ 18:36
Alles meer dan een ochtend werk zou afzetterij zijn. Wss gebruikt je progger ook addthis en customized hij wat dingetjes en hop het werkt.
Yuri_Boykawoensdag 7 maart 2012 @ 18:43
quote:
0s.gif Op woensdag 7 maart 2012 18:36 schreef Scorpie het volgende:
Alles meer dan een ochtend werk zou afzetterij zijn. Wss gebruikt je progger ook addthis en customized hij wat dingetjes en hop het werkt.
Oke, waar kan ik iemand vinden die dit in onze webshop wilt implementeren? Ik heb momenteel geen progger. De webshop is wel zelf opgezet waar ik wel verstand van heb, maar alles wat met codes te maken heeft ben ik een totale noob in.
Crutchwoensdag 7 maart 2012 @ 18:48
quote:
14s.gif Op woensdag 7 maart 2012 17:43 schreef GlowMouse het volgende:
Werkt setcookie("cart", NULL, 1) of setcookie("cart[]", NULL, 1)? Anders zou je door $_COOKIE['cart'] moeten loopen en voor elk element setcookie moeten aanroepen.
Thanks again GM.

Zo kreeg ik 'm leeg:

1
2
3
4
5
6
7
<?php
foreach ($_COOKIE['cart'] as $k => $v) {
    
    
setcookie('cart['.$k.']'NULL1);

}
?>
#ANONIEMwoensdag 7 maart 2012 @ 19:02
quote:
0s.gif Op woensdag 7 maart 2012 18:43 schreef Yuri_Boyka het volgende:

[..]

Oke, waar kan ik iemand vinden die dit in onze webshop wilt implementeren? Ik heb momenteel geen progger. De webshop is wel zelf opgezet waar ik wel verstand van heb, maar alles wat met codes te maken heeft ben ik een totale noob in.
Geen idee, diensten mogen niet op Fok :P
#ANONIEMwoensdag 7 maart 2012 @ 19:58
quote:
0s.gif Op woensdag 7 maart 2012 18:43 schreef Yuri_Boyka het volgende:

[..]

Oke, waar kan ik iemand vinden die dit in onze webshop wilt implementeren? Ik heb momenteel geen progger. De webshop is wel zelf opgezet waar ik wel verstand van heb, maar alles wat met codes te maken heeft ben ik een totale noob in.
Misschien dat je iemand kan PMen, als dat wel mag.
Kan inderdaad niet AL te moeilijk zijn.
Yuri_Boykawoensdag 7 maart 2012 @ 20:56
quote:
0s.gif Op woensdag 7 maart 2012 19:58 schreef totalvamp het volgende:

[..]

Misschien dat je iemand kan PMen, als dat wel mag.
Kan inderdaad niet AL te moeilijk zijn.
Als ik weet wie hier de pro is en dit kan maken dan kan dat wel ja. Maar dat weet ik niet. :P
#ANONIEMwoensdag 7 maart 2012 @ 22:51
Waarschijnlijk degene die er iets van zeggen :)
Meer hints mag ik niet geven denk ik :p
Yuri_Boykadonderdag 8 maart 2012 @ 00:49
Een klein vraagje.

Op mijn product pagina heb ik normaal deze buttons:

ifc4gj.jpg

Toen heb ik de code verandert omdat ik een Hyves button erbij wil naar dit:

1
2
3
4
5
6
7
8
9
10
          <!-- AddThis Button BEGIN -->
          <div class="addthis_toolbox addthis_default_style ">
            <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
            <a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
            <a class="addthis_button_tweet"></a>
            <iframe src="http://www.hyves.nl/respect/button?url=http%3A%2F%2FWEBSITE.hyves.nl%2F&counterStyle=horizontal" style="border: medium none; overflow:hidden; width:120px; height:120px;" scrolling="no" frameborder="0" ></iframe>
            <div class="s_plusone"><g:plusone size="medium"></g:plusone></div>
          </div>
          <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=xa-4e20919036eba525"></script>
          <!-- AddThis Button END -->

En nu zien de buttons er zo uit:

333y6tk.jpg

Hoe krijg ik die buttons mooi achter elkaar?
Diaboxdonderdag 8 maart 2012 @ 01:36
Hoe ziet je HTML en CSS eruit?

Zou overigens sowieso die Hyves button niet op m'n site willen, maar dat ben ik :P

PS. Hoort eigenlijk thuis in een ander topic
#ANONIEMdonderdag 8 maart 2012 @ 01:48
Je kunt het in een <div style="float:left">code</div>
proberen te zetten. Als je layout daar niet van veranderd dan.
Anders moet je zoals hierboven gezegd, de html & css laten zien, al is dat meer voor het HTML/CSS topic.
Yuri_Boykadonderdag 8 maart 2012 @ 02:02
quote:
0s.gif Op donderdag 8 maart 2012 01:36 schreef Diabox het volgende:
Hoe ziet je HTML en CSS eruit?

Zou overigens sowieso die Hyves button niet op m'n site willen, maar dat ben ik :P

PS. Hoort eigenlijk thuis in een ander topic
Idd je hebt gelijk, ik plaats hem later wel als het moet.
F4T4L_3RR0Rvrijdag 9 maart 2012 @ 11:21
Stukje code:

mail("geadresseerde@domein.ext","Onderwerp",$bericht\r\n . "Verzonden naar: " . $ontvangers);

Moet er het volgende uit gooien:

Dit is het bericht
Verzonden naar: Kees


Zonder \r\n werkt het wel, maar ik wil er juist een nieuwe regel in hebben. :)
stefan1218vrijdag 9 maart 2012 @ 11:24
mail("geadresseerde@domein.ext","Onderwerp",$bericht. "<br>Verzonden naar: " . $ontvangers);
zoiets?
remi1986vrijdag 9 maart 2012 @ 11:24
quote:
0s.gif Op vrijdag 9 maart 2012 11:21 schreef F4T4L_3RR0R het volgende:
Stukje code:

mail("geadresseerde@domein.ext","Onderwerp",$bericht\r\n . "Verzonden naar: " . $ontvangers);

Moet er het volgende uit gooien:

Dit is het bericht
Verzonden naar: Kees


Zonder \r\n werkt het wel, maar ik wil er juist een nieuwe regel in hebben. :)
Kijk anders een naar phpmailer ... heb je veel meer mogelijkheden mee.

http://code.google.com/a/(...)ailer/downloads/list
F4T4L_3RR0Rvrijdag 9 maart 2012 @ 11:31
@stefan1218: Het mailtje moet in plain text worden verstuurt, dus zonder HTML tags.

@remi1986: Het gaat alleen om een enkel mailtje sturen als het script is afgewerkt. Phpmailer is dan een beetje overkill.

Het is echt alweer jaren geleden dat ik in PHP heb geprogrammeerd en ik ben het helemaal verleerd. :(
KomtTijd...vrijdag 9 maart 2012 @ 11:34
\r\n lijkt me ook geen onderdeel van de naam van een variable. Dat moet in de string.
F4T4L_3RR0Rvrijdag 9 maart 2012 @ 11:58
Ik heb het veranderd in:

1
2
3
<?php
mail
("geadresseerde@domein.ext","Onderwerp",$bericht "\n\n" "Verzonden naar: " $ontvangers);
?>

Nu werkt het wel. :)
xaban06vrijdag 9 maart 2012 @ 14:06
Kan iemand mij hiermee helpen? Ik ben een leek met regexp? Ik wil controleren of de ingevoerde waarde een correct youtube URL is.
Op het moment heb ik:
1
2
3
<?php
(preg_match('(http://www.youtube.com/watch\?v=[a-zA-Z0-9-_])'$videoLink)
?>

Echter het volgende matched, terwijl dat niet moet:
1
2
3
<?php
$videoLink 
'http://www.youtube.com/watch?v=Zu^%$4WXi:;trtgPRek';
?>

De regexp moet zijn:
- Altijd starten met: http://www.youtube.com/watch?v=
- Achter de v=, mag gebruikt worden:
- a-z, A-Z, 0-9 en underscore

Echter moet het volgende URL ook matchen:
- http://www. y outube.com/watch?v=FaNpWJY9SEs&feature=relmfu

Dus na de URL, is & toegestaan.
GlowMousevrijdag 9 maart 2012 @ 14:26
Je regexp mist de delimeter.

De url kan ook zo zijn:
http://www. y outube.com/watch?feature=relmfu&v=FaNpWJY9SEs

Je kunt zoiets doen:

http://www. y outube.com/watch(.*)(?|&)v=[a-zA-Z0-9-_])(&|$)

En er zijn ook nog urls als youtu.be :P
The_Terminatorvrijdag 9 maart 2012 @ 14:27
quote:
0s.gif Op vrijdag 9 maart 2012 14:06 schreef xaban06 het volgende:
Kan iemand mij hiermee helpen? Ik ben een leek met regexp? Ik wil controleren of de ingevoerde waarde een correct youtube URL is.
Op het moment heb ik:
[ code verwijderd ]

Echter het volgende matched, terwijl dat niet moet:
[ code verwijderd ]

De regexp moet zijn:
- Altijd starten met: http://www.youtube.com/watch?v=
- Achter de v=, mag gebruikt worden:
- a-z, A-Z, 0-9 en underscore

Echter moet het volgende URL ook matchen:
- http://www. y outube.com/watch?v=FaNpWJY9SEs&feature=relmfu

Dus na de URL, is & toegestaan.
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 
$videoLink 
'http://www.youtube.com/watch?v=Zu^%$4WXi:;trtgPRek';

print 
'test 1: ' preg_match('(^bhttp:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$)'$videoLink);

$videoLink 'http://www.youtube.com/watch?v=FaNpWJY9SEs';

print 
' test 2: ' preg_match('(^http:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$)'$videoLink);

$videoLink 'http://www.youtube.com/watch?v=FaNpWJY9SEs&feature=relmfu';

print 
' test 3: ' preg_match('(^http:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$)'$videoLink);
?>

Gejat van: http://stackoverflow.com/(...)alidation-with-regex
GlowMousevrijdag 9 maart 2012 @ 14:31
http://www.youtube.com/watch?oopsv=bQVoAWSP7k4
xaban06vrijdag 9 maart 2012 @ 14:35
quote:
0s.gif Op vrijdag 9 maart 2012 14:27 schreef The_Terminator het volgende:

[..]
[ code verwijderd ]

Gejat van: http://stackoverflow.com/(...)alidation-with-regex
Lijkt niet te werken:
# cat match.php
1
2
3
4
5
6
7
<?php

$videoLink 
'http://www.youtube.com/watch?v=WXi)(*&^%$#@34:;trt4';

print 
' test: ' preg_match('(^http:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=\w+)(?:\S+)?$)'$videoLink);

?>

# php match.php
test: 1
The_Terminatorvrijdag 9 maart 2012 @ 14:38
quote:
0s.gif Op vrijdag 9 maart 2012 14:35 schreef xaban06 het volgende:

[..]

Lijkt niet te werken:
# cat match.php
[ code verwijderd ]

# php match.php
test: 1
Raar... Ik heb het ook getest en kreeg dit terug: test 1: 0 test 2: 1 test 3: 1
GlowMousevrijdag 9 maart 2012 @ 14:40
\w zal wel van je locale afhangen
The_Terminatorvrijdag 9 maart 2012 @ 14:42
quote:
0s.gif Op vrijdag 9 maart 2012 14:40 schreef GlowMouse het volgende:
\w zal wel van je locale afhangen
Zou kunnen. Ik heb het nogmaals getest (nu wel de correcte link gepaste...) en hier werkt het zonder probleem.
xaban06vrijdag 9 maart 2012 @ 14:43
quote:
0s.gif Op vrijdag 9 maart 2012 14:40 schreef GlowMouse het volgende:
\w zal wel van je locale afhangen
Wat je locale ook is, tekens als '&^%$#@' kunnen daar toch nooit onder vallen?
xaban06vrijdag 9 maart 2012 @ 14:45
Ook met
1
2
3
<?php
setlocale
(LC_ALL"en_US.UTF-8");
?>
werkt het nog steeds niet correct.
GlowMousevrijdag 9 maart 2012 @ 14:47
je moet mijn posts beter lezen
The_Terminatorvrijdag 9 maart 2012 @ 14:47
quote:
0s.gif Op vrijdag 9 maart 2012 14:45 schreef xaban06 het volgende:
Ook met
[ code verwijderd ]

werkt het nog steeds niet correct.
Ik heb het op 3 servers getest; één met php 4, de andere php 5 en steeds dezelfde (correcte) uitkomst.
xaban06vrijdag 9 maart 2012 @ 14:48
quote:
8s.gif Op vrijdag 9 maart 2012 14:47 schreef GlowMouse het volgende:
je moet mijn posts beter lezen
Beter lezen niet, begrijpen wel, ik begrijp het dus niet :)
GlowMousevrijdag 9 maart 2012 @ 14:52
google, delimiter regexp, hoppakee
The_Terminatorvrijdag 9 maart 2012 @ 14:59
Zo moet die werken als het goed is:
1preg_match('(^bhttp:\/\/(?:www\.)?youtube.com\/watch\?(?=.*v=[a-zA-Z0-9-_]+)(?:\S+)?$)', $videoLink)
GlowMousevrijdag 9 maart 2012 @ 15:25
quote:
7s.gif Op vrijdag 9 maart 2012 14:52 schreef GlowMouse het volgende:
google, delimiter regexp, hoppakee
Mr.Fahrenheitzondag 11 maart 2012 @ 17:36
Oh heerlijk, regexp :P
xaban06zondag 11 maart 2012 @ 17:37
quote:
0s.gif Op zondag 11 maart 2012 17:36 schreef Mr.Fahrenheit het volgende:
Oh heerlijk, regexp :P
Nou, niet echt :P Loop er nog steeds mee te kloten
Mr.Fahrenheitzondag 11 maart 2012 @ 17:38
quote:
0s.gif Op zondag 11 maart 2012 17:37 schreef xaban06 het volgende:

[..]

Nou, niet echt :P Loop er nog steeds mee te kloten
http://gskinner.com/RegExr/

(Is dit al gepost?)
The_Terminatorzondag 11 maart 2012 @ 17:51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php 
$videoLink 
'http://www.youtube.com/watch?v=WXi)(*&^%$#@34:;trt4';

print 
'test 1: ' preg_match('%(?:youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i'$videoLink);

$videoLink 'http://www.youtube.com/watch?v=FaNpWJY9SEs';

print 
' test 2: ' preg_match('%(?:youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i'$videoLink);

$videoLink 'http://www.youtube.com/watch?v=FaNpWJY9SEs&feature=relmfu';

print 
' test 3: ' preg_match('%(?:youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i'$videoLink);

if(
preg_match('%(?:youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i'$videoLink$match)) { 
    print 
' test 4 (video id): ' .  $match[1];
}
?>

Bovenstaande zou moeten werken :P Het laaste voorbeeld trekt ook de ID uit de link :)

Output:
1test 1: 0 test 2: 1 test 3: 1 test 4 (video id): FaNpWJY9SEs

Van: http://stackoverflow.com/(...)atch/6382259#6382259

[ Bericht 65% gewijzigd door The_Terminator op 11-03-2012 18:14:07 ]
xaban06zondag 11 maart 2012 @ 18:19
quote:
0s.gif Op zondag 11 maart 2012 17:51 schreef The_Terminator het volgende:

[ code verwijderd ]

Bovenstaande zou moeten werken :P Het laaste voorbeeld trekt ook de ID uit de link :)

Output:
[ code verwijderd ]

Van: http://stackoverflow.com/(...)atch/6382259#6382259
Lijkt te werken, thanks!

Zal 'm even grondig testen :)
xaban06zondag 11 maart 2012 @ 20:13
Jammer, bovenstaande werkt ookal niet helemaal correct. Ik ga bijna een regexp boek aanschaffen :P

Test maar eens met
1
2
3
<?php
$videoLink 
'http://www.youtube.com/watch?v=yuhjgtrfgy!';
?>
#ANONIEMmaandag 12 maart 2012 @ 19:42
Vandaag gesolliciteerd bij een webbedrijf als lead developer :D gesprek ging lekker en kwam allemaal goed over. Hopelijk snel weer aan het werk!
Moet alleen even meer voorbeeldcode maken om ze te overtuigen (slechte ervaringen met programmeurs helaas). Dus ik ga een boekings systeem maken (gelijk voor een vriend zijn site). Dit zal waarschijnlijk ook Open Source worden(nog niet zeker) en ik zal het wat code posten om te zien wat FoK! ervan vindt.

Eerste regels van mijn script:
1
2
3
4
5
<?php

namespace Bookings
;

?>


[ Bericht 7% gewijzigd door #ANONIEM op 12-03-2012 19:42:32 ]
Pakspulmaandag 12 maart 2012 @ 20:28
quote:
0s.gif Op maandag 12 maart 2012 19:42 schreef totalvamp het volgende:
Vandaag gesolliciteerd bij een webbedrijf als lead developer :D gesprek ging lekker en kwam allemaal goed over. Hopelijk snel weer aan het werk!
Moet alleen even meer voorbeeldcode maken om ze te overtuigen (slechte ervaringen met programmeurs helaas). Dus ik ga een boekings systeem maken (gelijk voor een vriend zijn site). Dit zal waarschijnlijk ook Open Source worden(nog niet zeker) en ik zal het wat code posten om te zien wat FoK! ervan vindt.

Eerste regels van mijn script:
[ code verwijderd ]

Je bent ontslagen :')
#ANONIEMmaandag 12 maart 2012 @ 20:30
quote:
0s.gif Op maandag 12 maart 2012 20:28 schreef Pakspul het volgende:

[..]

Je bent ontslagen :')
Neee xD
gaat moeilijk als ik nog niet ben aangenomen ;)
Lightmaandag 12 maart 2012 @ 20:39
quote:
0s.gif Op maandag 12 maart 2012 19:42 schreef totalvamp het volgende:
Vandaag gesolliciteerd bij een webbedrijf als lead developer :D gesprek ging lekker en kwam allemaal goed over. Hopelijk snel weer aan het werk!
Moet alleen even meer voorbeeldcode maken om ze te overtuigen (slechte ervaringen met programmeurs helaas). Dus ik ga een boekings systeem maken (gelijk voor een vriend zijn site). Dit zal waarschijnlijk ook Open Source worden(nog niet zeker) en ik zal het wat code posten om te zien wat FoK! ervan vindt.

Eerste regels van mijn script:
[ code verwijderd ]

Jammer van die PHP-sluittag ?>, die is nergens voor nodig.
#ANONIEMmaandag 12 maart 2012 @ 22:18
quote:
0s.gif Op maandag 12 maart 2012 20:39 schreef Light het volgende:

[..]

Jammer van die PHP-sluittag ?>, die is nergens voor nodig.
was meer voor hier :) daarnaast maakt het niet heel veel uit of je het wel of niet doet.
Intrepiditymaandag 12 maart 2012 @ 23:38
quote:
0s.gif Op maandag 12 maart 2012 19:42 schreef totalvamp het volgende:
Vandaag gesolliciteerd bij een webbedrijf als lead developer :D gesprek ging lekker en kwam allemaal goed over. Hopelijk snel weer aan het werk!
Moet alleen even meer voorbeeldcode maken om ze te overtuigen (slechte ervaringen met programmeurs helaas). Dus ik ga een boekings systeem maken (gelijk voor een vriend zijn site). Dit zal waarschijnlijk ook Open Source worden(nog niet zeker) en ik zal het wat code posten om te zien wat FoK! ervan vindt.

Eerste regels van mijn script:
[ code verwijderd ]

Waar is de vendor-namespace? o|O

quote:
0s.gif Op maandag 12 maart 2012 22:18 schreef totalvamp het volgende:

[..]

was meer voor hier :) daarnaast maakt het niet heel veel uit of je het wel of niet doet.
Mwoah, het brengt wel een risico met zich mee: http://www.sitepoint.com/should-you-close-your-php-code-tags/
Ofyles2maandag 12 maart 2012 @ 23:49
quote:
0s.gif Op maandag 12 maart 2012 19:42 schreef totalvamp het volgende:
Vandaag gesolliciteerd bij een webbedrijf als lead developer :D gesprek ging lekker en kwam allemaal goed over. Hopelijk snel weer aan het werk!
Moet alleen even meer voorbeeldcode maken om ze te overtuigen (slechte ervaringen met programmeurs helaas). Dus ik ga een boekings systeem maken (gelijk voor een vriend zijn site). Dit zal waarschijnlijk ook Open Source worden(nog niet zeker) en ik zal het wat code posten om te zien wat FoK! ervan vindt.

Eerste regels van mijn script:
[ code verwijderd ]

Ik zou meteen een MVC-systeem meegeven, vlammen kan nooit kwaad.
Pakspuldinsdag 13 maart 2012 @ 07:57
quote:
0s.gif Op maandag 12 maart 2012 23:38 schreef Intrepidity het volgende:

[..]

Waar is de vendor-namespace? o|O

[..]

Mwoah, het brengt wel een risico met zich mee: http://www.sitepoint.com/should-you-close-your-php-code-tags/
Wat een risico.... als je gewoon netjes blijft bouwen is dat geen probleem. En anders heb je een reden om je code te verbeteren. Persoonlijk vind ik niet afsluiten een teken van luiheid.
#ANONIEMdinsdag 13 maart 2012 @ 08:52
quote:
0s.gif Op maandag 12 maart 2012 19:42 schreef totalvamp het volgende:
Vandaag gesolliciteerd bij een webbedrijf als lead developer :D gesprek ging lekker en kwam allemaal goed over. Hopelijk snel weer aan het werk!
Moet alleen even meer voorbeeldcode maken om ze te overtuigen (slechte ervaringen met programmeurs helaas). Dus ik ga een boekings systeem maken (gelijk voor een vriend zijn site). Dit zal waarschijnlijk ook Open Source worden(nog niet zeker) en ik zal het wat code posten om te zien wat FoK! ervan vindt.

Eerste regels van mijn script:
[ code verwijderd ]

Ik twijfel tussen een :') en een :D als reactie.
Sitethiefdinsdag 13 maart 2012 @ 10:23
quote:
1s.gif Op dinsdag 13 maart 2012 07:57 schreef Pakspul het volgende:

[..]

Wat een risico.... als je gewoon netjes blijft bouwen is dat geen probleem. En anders heb je een reden om je code te verbeteren. Persoonlijk vind ik niet afsluiten een teken van luiheid.
Ik vind het ook een redelijke dirty oplossing voor een probleem wat makkelijk te voorkomen is imho...
Tijndinsdag 13 maart 2012 @ 10:29
quote:
1s.gif Op dinsdag 13 maart 2012 07:57 schreef Pakspul het volgende:

[..]

Persoonlijk vind ik niet afsluiten een teken van luiheid.
Luiheid is een goede eigenschap voor programmeurs. De beste programmeurs zijn lui.

Luie programmeurs schrijven ook veiligere code trouwens:

#ANONIEMdinsdag 13 maart 2012 @ 14:32
quote:
0s.gif Op maandag 12 maart 2012 23:38 schreef Intrepidity het volgende:

[..]

Waar is de vendor-namespace? o|O

[..]

Mwoah, het brengt wel een risico met zich mee: http://www.sitepoint.com/should-you-close-your-php-code-tags/
Dat is geen risico, misschien als je werkt met notepad ofzo, maar elke goede IDE geeft aan dat er whitespace ergens is.

daarnaast zet ik nooit iets achter sluit tags (tenzij er html achter moet staan ofzo, maar dat is alleen met de view).

quote:
0s.gif Op maandag 12 maart 2012 23:49 schreef Ofyles2 het volgende:

[..]

Ik zou meteen een MVC-systeem meegeven, vlammen kan nooit kwaad.
Nouja ik moet dat dus gaan ontwikkelen, zit te denken aan code-igniter te gebruiken, maar die lopen voor mijn gevoel nog een beetje achter en het is best wel traag.

quote:
9s.gif Op dinsdag 13 maart 2012 08:52 schreef Scorpie het volgende:

[..]

Ik twijfel tussen een :') en een :D als reactie.
beide zijn goed :P

Het is wel fijn dat je zelf een beetje het hele MVC in elkaar kan gaan zetten. Dan kun je dingen tenminste op je eigen manier oplossen.
#ANONIEMdinsdag 13 maart 2012 @ 14:59
quote:
0s.gif Op dinsdag 13 maart 2012 14:32 schreef totalvamp het volgende:

[..]

Dat is geen risico, misschien als je werkt met notepad ofzo, maar elke goede IDE geeft aan dat er whitespace ergens is.

daarnaast zet ik nooit iets achter sluit tags (tenzij er html achter moet staan ofzo, maar dat is alleen met de view).

[..]

Nouja ik moet dat dus gaan ontwikkelen, zit te denken aan code-igniter te gebruiken, maar die lopen voor mijn gevoel nog een beetje achter en het is best wel traag.

[..]

beide zijn goed :P

Het is wel fijn dat je zelf een beetje het hele MVC in elkaar kan gaan zetten. Dan kun je dingen tenminste op je eigen manier oplossen.
Ja, want het wiel opnieuw uitvinden is altijd beter dan proven technology gebruiken.
Ofyles2dinsdag 13 maart 2012 @ 15:36
quote:
9s.gif Op dinsdag 13 maart 2012 14:59 schreef Scorpie het volgende:

[..]

Ja, want het wiel opnieuw uitvinden is altijd beter dan proven technology gebruiken.
Ik lees een artikel over MVC, pas de regels nauwkeurig toe en geef mijn eigen inbreng.

Niet echt het wiel opnieuw uitvinden, slechts een concept jatten en deze verfijnen.
#ANONIEMdinsdag 13 maart 2012 @ 16:06
quote:
0s.gif Op dinsdag 13 maart 2012 15:36 schreef Ofyles2 het volgende:

[..]

Ik lees een artikel over MVC, pas de regels nauwkeurig toe en geef mijn eigen inbreng.

Niet echt het wiel opnieuw uitvinden, slechts een concept jatten en deze verfijnen.
Je jat geen concept maar een pattern, en terwijl jij bezig bent dat te 'verfijnen' unzip ik een CakePHP, Symphony of andersoortig MVC framework en hop het werkt. Ik begin aan mijn data model, definieer wat classes en heb een view binnen no time werkend, terwijl je in je eigen MVC nog aan de basale dingen aan het coderen bent.

Soms is een eigen MVC framework bouwen leuk, nodig en nuttig, meestal is het onnodig tijd verdoen omdat anderen alles wat je bedacht hebt op dat gebied ook al hebben bedacht en meestal nog beter hebben geimplementeerd ook.
#ANONIEMdinsdag 13 maart 2012 @ 16:24
quote:
0s.gif Op dinsdag 13 maart 2012 16:06 schreef Scorpie het volgende:

[..]

Je jat geen concept maar een pattern, en terwijl jij bezig bent dat te 'verfijnen' unzip ik een CakePHP, Symphony of andersoortig MVC framework en hop het werkt. Ik begin aan mijn data model, definieer wat classes en heb een view binnen no time werkend, terwijl je in je eigen MVC nog aan de basale dingen aan het coderen bent.

Soms is een eigen MVC framework bouwen leuk, nodig en nuttig, meestal is het onnodig tijd verdoen omdat anderen alles wat je bedacht hebt op dat gebied ook al hebben bedacht en meestal nog beter hebben geimplementeerd ook.
Maar als je de kans krijgt is het bouwen ervan stukken beter omdat je dan weet hoe alles in elkaar steekt. Met CI Zend Symphony etc moet je eerst weer heel hun manier van programmeren overnemen, terwijl je het anders op je eigen manier kan doen.

Heel veel bedrijven hebben vaak hun eigen MVC of iets wat gebruik maakt van andere MVC libraries.
Ofyles2dinsdag 13 maart 2012 @ 16:39
quote:
0s.gif Op dinsdag 13 maart 2012 16:06 schreef Scorpie het volgende:

[..]

Je jat geen concept maar een pattern, en terwijl jij bezig bent dat te 'verfijnen' unzip ik een CakePHP, Symphony of andersoortig MVC framework en hop het werkt. Ik begin aan mijn data model, definieer wat classes en heb een view binnen no time werkend, terwijl je in je eigen MVC nog aan de basale dingen aan het coderen bent.

Soms is een eigen MVC framework bouwen leuk, nodig en nuttig, meestal is het onnodig tijd verdoen omdat anderen alles wat je bedacht hebt op dat gebied ook al hebben bedacht en meestal nog beter hebben geimplementeerd ook.
Toevallig heb ik ook wat MVC Frameworks gedownload en even op mijn USB-stick gezet. Dit in het geval dat ik er even niet meer uitkom.
#ANONIEMdinsdag 13 maart 2012 @ 16:44
quote:
0s.gif Op dinsdag 13 maart 2012 16:24 schreef totalvamp het volgende:

[..]

Maar als je de kans krijgt is het bouwen ervan stukken beter omdat je dan weet hoe alles in elkaar steekt.
En dat kan je met een MVC Framework niet omdat............?

quote:
Met CI Zend Symphony etc moet je eerst weer heel hun manier van programmeren overnemen, terwijl je het anders op je eigen manier kan doen.
En dat is slecht omdat............?

quote:
Heel veel bedrijven hebben vaak hun eigen MVC of iets wat gebruik maakt van andere MVC libraries.
En dat is relevant omdat.........?
#ANONIEMdinsdag 13 maart 2012 @ 16:45
quote:
0s.gif Op dinsdag 13 maart 2012 16:39 schreef Ofyles2 het volgende:

[..]

Toevallig heb ik ook wat MVC Frameworks gedownload en even op mijn USB-stick gezet. Dit in het geval dat ik er even niet meer uitkom.
Tja ik hou je niet tegen natuurlijk, ieder zijn eigen ding. Ik heb voor mezelf iig besloten dat gebruikmaken van frameworks veel meer voordelen dan nadelen oplevert dat ik zelf niet meer begin aan het bouwen van een framework, hoogstens een abstractielaag erbovenop.
urseldinsdag 13 maart 2012 @ 16:52
quote:
0s.gif Op dinsdag 13 maart 2012 16:45 schreef Scorpie het volgende:

[..]

Tja ik hou je niet tegen natuurlijk, ieder zijn eigen ding. Ik heb voor mezelf iig besloten dat gebruikmaken van frameworks veel meer voordelen dan nadelen oplevert dat ik zelf niet meer begin aan het bouwen van een framework, hoogstens een abstractielaag erbovenop.
Dat dus. Het is inderdaad leuk om eens mee te stoeien. Leuk dat je zelf weet hoe het MVC in elkaar steekt. Maar het is handiger hulp in te schakelen als diegene ook kennis heeft van het MVC.
#ANONIEMdinsdag 13 maart 2012 @ 18:08
quote:
0s.gif Op dinsdag 13 maart 2012 16:44 schreef Scorpie het volgende:

En dat kan je met een MVC Framework niet omdat............?
Kan wel maar moet je bergen met documentatie doorspitten.

quote:
En dat is slecht omdat............?
de manier waarop die frameworks momenteel werken achterhaald is. Hierdoor krijg je absurde classnames(vooral met Zend). En CI gaat niet goed om met sessies IMO.

quote:
En dat is relevant omdat.........?
Omdat het logisch is dat je niet afhankelijk bent van een externe partij die de software moet updaten, dus is het wel relevant als je bij een bedrijf gaat werken die een eigen CMS wilt ontwikkelen.
Diaboxwoensdag 14 maart 2012 @ 00:08
quote:
0s.gif Op dinsdag 13 maart 2012 18:08 schreef totalvamp het volgende:

[..]

Kan wel maar moet je bergen met documentatie doorspitten.
Wat mee spelen en je hebt het wel door hoor. Je bent een stuk meer tijd kwijt aan zelf 'n degelijk framework bouwen.
Chandlerwoensdag 14 maart 2012 @ 09:14
@Diabox; zelf een framework schrijven hoeft per definitie niet heel veel meer tijd te kosten hoor, want om een bestaand framework te begrijpen ben je ook aardig wat tijd kwijt! :)

Maar moet wel zeggen als je niet weet wat een framework is en er nog nooit mee gewerkt hebt (of gebruik van hebt gemaakt) is het toch nog best een opgave... heeft mij ruim een jaar gekost om een framework te schrijven die precies voldoet aan mijn eigen wensen en die wordt iedere maand ook nog steeds iets aangepast! :)

Eigen framework rules *)
#ANONIEMwoensdag 14 maart 2012 @ 09:18
Een jaar? Hell, in die tijd had je 5 projecten kunnen afmaken in een framework.
Chandlerwoensdag 14 maart 2012 @ 09:21
@Scorpie; yup, lekker als hobbie er mee wezen spelen. Voor mijn part had het 2 jaar gekost, boeiend. In de tussentijd heb ik ook andere websites gebouwd zonder mijn framework :) telt dat ook mee? :P
#ANONIEMwoensdag 14 maart 2012 @ 10:12
quote:
0s.gif Op woensdag 14 maart 2012 09:21 schreef Chandler het volgende:
@Scorpie; yup, lekker als hobbie er mee wezen spelen. Voor mijn part had het 2 jaar gekost, boeiend. In de tussentijd heb ik ook andere websites gebouwd zonder mijn framework :) telt dat ook mee? :P
Geen idee, ik gebruik frameworks dagelijks in professionele setting en prive setting.
#ANONIEMwoensdag 14 maart 2012 @ 16:38
quote:
11s.gif Op woensdag 14 maart 2012 09:18 schreef Scorpie het volgende:
Een jaar? Hell, in die tijd had je 5 projecten kunnen afmaken in een framework.
Maar nu begrijpt hij wel hoe frameworks werken, terwijl hij anders gewoon copy paste dingen aan het doen was en uiteindelijk alleen dat framework begreep. Terwijl hij nu makkelijker de structuur in meerdere kan zien.
#ANONIEMwoensdag 14 maart 2012 @ 17:05
quote:
0s.gif Op woensdag 14 maart 2012 16:38 schreef totalvamp het volgende:

[..]

Maar nu begrijpt hij wel hoe frameworks werken, terwijl hij anders gewoon copy paste dingen aan het doen was en uiteindelijk alleen dat framework begreep. Terwijl hij nu makkelijker de structuur in meerdere kan zien.
Dus je zegt dat mensen die met frameworks werken niet begrijpen hoe frameworks in het algemeen werken en dat je daarvoor eerst je eigen framework dient te maken? Lijkt me nogal een boude statement.
#ANONIEMwoensdag 14 maart 2012 @ 18:06
quote:
11s.gif Op woensdag 14 maart 2012 17:05 schreef Scorpie het volgende:

[..]

Dus je zegt dat mensen die met frameworks werken niet begrijpen hoe frameworks in het algemeen werken en dat je daarvoor eerst je eigen framework dient te maken? Lijkt me nogal een boude statement.
Ja dat is meestal het geval. Mensen die ik ken die met frameworks werken weten dan alleen hoe dat framework voor hun werkt. Ze weten niet de details over hoe het framework technisch in elkaar zit.
#ANONIEMwoensdag 14 maart 2012 @ 21:44
quote:
0s.gif Op woensdag 14 maart 2012 18:06 schreef totalvamp het volgende:

[..]

Ja dat is meestal het geval. Mensen die ik ken die met frameworks werken weten dan alleen hoe dat framework voor hun werkt. Ze weten niet de details over hoe het framework technisch in elkaar zit.
Dan werk je met prutsers. Ik ken niemand die op dat niveau acteert.
#ANONIEMwoensdag 14 maart 2012 @ 22:32
quote:
1s.gif Op woensdag 14 maart 2012 21:44 schreef Scorpie het volgende:

[..]

Dan werk je met prutsers. Ik ken niemand die op dat niveau acteert.
Ik ken ze... ik werk niet met ze.. meestal ben ik degene die hun troep moet opruimen in code. Dan doen ze dingen die nergens op slaan. Geloof mij er zijn zat sites waarvan de code eigenlijk van geen kant klopt.
Diaboxwoensdag 14 maart 2012 @ 22:39
quote:
0s.gif Op woensdag 14 maart 2012 22:32 schreef totalvamp het volgende:

[..]

Ik ken ze... ik werk niet met ze.. meestal ben ik degene die hun troep moet opruimen in code. Dan doen ze dingen die nergens op slaan. Geloof mij er zijn zat sites waarvan de code eigenlijk van geen kant klopt.
Eens, zijn heel veel prutsers op de markt helaas. Of niet helaas, blinken wij uit hehe.
#ANONIEMwoensdag 14 maart 2012 @ 22:56
quote:
0s.gif Op woensdag 14 maart 2012 22:39 schreef Diabox het volgende:

[..]

Eens, zijn heel veel prutsers op de markt helaas. Of niet helaas, blinken wij uit hehe.
Ik werkte bij een websitebedrijf wat gebruik maakte van russische programmeurs... Ik was zelf bugfixer daar. Nou de dingen die je soms tegenkomt... Er was een bedrijf dat klaagde omdat de btw uitrekeningen van een heel jaar niet klopte... Bleek dus dat het BTW script letterlijk 3x achter elkaar werd opgeroepen.

Onveilige post dingen waardoor makkelijk SQL injectie mogelijk was... Elke site had zijn eigen problemen omdat de basis (Xcart) bij elke website weer een andere versie was...
boem-dikkiewoensdag 14 maart 2012 @ 22:59
quote:
0s.gif Op dinsdag 13 maart 2012 18:08 schreef totalvamp het volgende:

de manier waarop die frameworks momenteel werken achterhaald is. Hierdoor krijg je absurde classnames(vooral met Zend). En CI gaat niet goed om met sessies IMO.

Wat een onzin.
#ANONIEMwoensdag 14 maart 2012 @ 23:04
quote:
7s.gif Op woensdag 14 maart 2012 22:59 schreef boem-dikkie het volgende:

[..]

Wat een onzin.
The Zend Framework uses a highly descriptive naming convention that results in long-winded class names such as Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive.

Niet lang genoeg :')? Sorrie, maar dit is totaal niet de bedoeling van hoe classnames moeten zijn.
boem-dikkiewoensdag 14 maart 2012 @ 23:05
Hoe moeten classnames zijn?

Alles-omschrijvend is, en dat zijn ze, als je met veel 'dezelfde' soort classes werkt krijg je als je die zelf moet opstellen ook lange namen, of onduidelijk namen die totaal niet meer omschrijven wat een class doet.
#ANONIEMwoensdag 14 maart 2012 @ 23:22
quote:
7s.gif Op woensdag 14 maart 2012 23:05 schreef boem-dikkie het volgende:
Hoe moeten classnames zijn?

Alles-omschrijvend is, en dat zijn ze, als je met veel 'dezelfde' soort classes werkt krijg je als je die zelf moet opstellen ook lange namen, of onduidelijk namen die totaal niet meer omschrijven wat een class doet.
En daar heb je het dus fout.
Namespaces moet je daarvoor gebruiken. De classnaam moet iets generieks zijn, maar de namespace zegt waar het staat/wat het is.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
//In bovenstaande scripts etc moet er ook een namespace staan
namespace Common\Text;

/**
* Commentaar blabla uitleg over class
*
*/
class CaseInsensitive {
   public function foo()
   { return 'Fooooo'; }
}

// Gebruik
$obj = \Zend\Search\Lucene\Analysis\Analyzer\Common\Text\CaseInsensitive;


[ Bericht 16% gewijzigd door #ANONIEM op 14-03-2012 23:23:07 ]
RenRen-donderdag 15 maart 2012 @ 09:49
Ik heb een contactformulier gejat van het internet, en eerst werkte hij gewoon. En nu niet meer. Ik weet niet echt hoe het komt want ik heb niets veranderd, behalve de filename, die ik gewoon overal heb gewijzigd.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if(isset($_POST['submit'])) {
   $to = 'Emailadres@email.com' ;
   $subject = 'Cup a Cake Recepten inzenden'; 
   $headers  = 'MIME-Version: 1.0' . "\r\n";
   $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
   $message = "<table><tr><td>Your Name</td><td>".$_POST['name']."</td></tr>
               <tr><td>E-Mail</td><td>".$_POST['email']."</td></tr>
               <tr><td>Contact No</td><td>".$_POST['contact']."</td></tr>
               <tr><td>Message</td><td>".$_POST['message']."</td>
               </tr></table>" ;
   mail($to, $subject, $message, $headers);
   header('Location: recepteninzenden.php');
}
?>
                    

Ook krijg ik bij het verzenden een error. Hierdoor denk ik dat hij na <td>, de code als tekst ziet. Ik zou alleen niet weten hoe dat komt. Enig idee als je de code ziet?
1Your Name".$_POST['name']." E-Mail".$_POST['email']." Contact No".$_POST['contact']." Message".$_POST['message']." " ; mail($to, $subject, $message, $headers); header('Location: contact.php'); } ?> 
Catch22-donderdag 15 maart 2012 @ 09:52
Wat voor error geeft hij?

En je mag echt de grootst mogelijk fout; userinput niet sanatizen.
RenRen-donderdag 15 maart 2012 @ 09:53
quote:
11s.gif Op donderdag 15 maart 2012 09:52 schreef Catch22- het volgende:
Wat voor error geeft hij?

En je mag echt de grootst mogelijk fout; userinput niet sanatizen.
Ik heb hem van het internet gejat, wat houdt dat in? :@
Gejat is een groot woord, het mocht.

De error die hij geeft is dus daar onderin de post. Niet echt een error, hij geeft gewoon een lijn code weer
Catch22-donderdag 15 maart 2012 @ 09:56
en als je die laatste 2 regels uitcommentarieert en echt message doet?
RenRen-donderdag 15 maart 2012 @ 09:59
Dan stuurt hij ze alsnog mee, met de commenttekens erbij.
Even eruit knippen
Catch22-donderdag 15 maart 2012 @ 10:00
1
2
3
4
5
6
7
8
9
10
<?php
  $message 
"<table><tr><td>Your Name</td><td>".$_POST['name']."</td></tr>
               <tr><td>E-Mail</td><td>"
.$_POST['email']."</td></tr>
               <tr><td>Contact No</td><td>"
.$_POST['contact']."</td></tr>
               <tr><td>Message</td><td>"
.$_POST['message']."</td>
               </tr></table>" 
;
echo 
$message;
  
// mail($to, $subject, $message, $headers);
//   header('Location: recepteninzenden.php');
?>
als je dit doet?
RenRen-donderdag 15 maart 2012 @ 10:01
quote:
11s.gif Op donderdag 15 maart 2012 10:00 schreef Catch22- het volgende:

[ code verwijderd ]

als je dit doet?
Nou ja, als ik ze eruit knip dan staat gewoon alles exclusief wat ik er net uit heb geknipt op de pagina
RenRen-donderdag 15 maart 2012 @ 10:03
quote:
11s.gif Op donderdag 15 maart 2012 10:00 schreef Catch22- het volgende:

[ code verwijderd ]

als je dit doet?
Ena ls ik dat doe, stuurt hij echt die comments gewoon mee. :') watisdeze.
_Flash_donderdag 15 maart 2012 @ 10:23
Dan zit er ergens een typefoutje. Puntcomma of php-tags verkeerd.

Sowieso zou ik het volgende doen:
- in plaats van direct $_POST te doen, eerst via $_REQUEST naar een variabele
- deze variabelen filteren op HTML-code
- bij inserten in database ook speciale karakters vervangen
- dan pas die variabele gebruiken voor de body van zo'n mail
RenRen-donderdag 15 maart 2012 @ 10:27
Ik kan geen puntcomma of php-tag ontdekken die verkeerd staat eigenlijk.

Ik vrees dat ik de rest niet ga proberen, want ik denk niet dat dat mij gaat lukken. Misschien dat ik over 3 weken meer php-kennis heb vergaard dat het dan lukt :') Maar voorlopig snap ik wel wat er staat, maar niet hoe ik dat moet uitvoeren.

Waarom is dat eigenlijk beter om te doen? Omdat veiliger?
stefan1218donderdag 15 maart 2012 @ 10:34
direct $_POST of $_GET gegevens gebruiken in je scripts is big nono

eerst $bla = $_POST['bla'];
dan kijken of de inhoud van $bla goed is
dan verwerken in het script
Sitethiefdonderdag 15 maart 2012 @ 10:38
Of de data nou in $bla of $_POST['bla'] veilig gemaakt wordt maakt niks uit. Wat wel handig is hieraan is dat je nu alles in $_POST als onveilig kunt beschouwen en alles in de safe gemaakte array als veilig. Maar dat is vooral voor de programmeur handig. PHP maakt het niks uit in welke array iets nu veilig gemaakt is.
RenRen-donderdag 15 maart 2012 @ 10:40
Mijn eisen zijn vrij laag hoor, het wordt niet echt gepubliceerd en als het werkt doe ik al een dansje. Beveiliging is echt iets voor latere zorg voor mij, als ik afgestudeerd ben mik ik alles er ook weer af, kunnen ze me ook niet spammen.
GlowMousedonderdag 15 maart 2012 @ 10:49
Eindigt de bestandsnaam op .php? Zoja, dan ondersteunt je host geen php meer.
The_Terminatordonderdag 15 maart 2012 @ 10:54
quote:
0s.gif Op donderdag 15 maart 2012 10:40 schreef RenRen- het volgende:
Mijn eisen zijn vrij laag hoor, het wordt niet echt gepubliceerd en als het werkt doe ik al een dansje. Beveiliging is echt iets voor latere zorg voor mij, als ik afgestudeerd ben mik ik alles er ook weer af, kunnen ze me ook niet spammen.
Beveiliging is niet je enige probleem hierin. In je huidige code zet je tekens die als HTML geïnterpreteerd kunnen worden niet om naar de corresponderende entities waardoor je opmaak eraan gaat zodra er bepaalde tekens voorkomen in de userinput.

Zie ook: http://php.net/manual/en/function.htmlentities.php
_Flash_donderdag 15 maart 2012 @ 10:54
quote:
0s.gif Op donderdag 15 maart 2012 10:40 schreef RenRen- het volgende:
Mijn eisen zijn vrij laag hoor, het wordt niet echt gepubliceerd en als het werkt doe ik al een dansje. Beveiliging is echt iets voor latere zorg voor mij, als ik afgestudeerd ben mik ik alles er ook weer af, kunnen ze me ook niet spammen.
Ah ok dan.
Kan je het hele script eens copy pasten?

En test even met het volgende script of je provider php ondersteunt:
<?php
echo "hello world";
?>

@The_Terminator
Dat is natuurlijk ook onderdeel van de beveiliging.
Zo te zien gaat het hem om het principe. Zijn code zou moeten werken lijkt me, ben benieuwd hoe het complete script inclusief form er uit ziet, wellicht zit ergens anders een typefout.
RenRen-donderdag 15 maart 2012 @ 10:56
quote:
0s.gif Op donderdag 15 maart 2012 10:49 schreef GlowMouse het volgende:
Eindigt de bestandsnaam op .php? Zoja, dan ondersteunt je host geen php meer.
:{
Dat zou kut zijn.

Wacht, ik ga even naar een andere pc, moment heren.
quote:
0s.gif Op donderdag 15 maart 2012 10:54 schreef The_Terminator het volgende:

[..]

Beveiliging is niet je enige probleem hierin. In je huidige code zet je tekens die als HTML geïnterpreteerd kunnen worden niet om naar de corresponderende entities waardoor je opmaak eraan gaat zodra er bepaalde tekens voorkomen in de userinput.

Zie ook: http://php.net/manual/en/function.htmlentities.php
Hier had ik dus echt nog nooit van gehoord :') Dat moet ik even lezen om te zien hoe ik dat toe kan passen.
RenRen-donderdag 15 maart 2012 @ 10:56
quote:
0s.gif Op donderdag 15 maart 2012 10:54 schreef _Flash_ het volgende:

[..]

Ah ok dan.
Kan je het hele script eens copy pasten?

En test even met het volgende script of je provider php ondersteunt:
<?php
echo "hello world";
?>

@The_Terminator
Dat is natuurlijk ook onderdeel van de beveiliging.
Zo te zien gaat het hem om het principe. Zijn code zou moeten werken lijkt me, ben benieuwd hoe het complete script inclusief form er uit ziet, wellicht zit ergens anders een typefout.
Ik ben er zo een met een vagina. Tot zo O+
_Flash_donderdag 15 maart 2012 @ 10:58
Oh zo een.. :)
Sitethiefdonderdag 15 maart 2012 @ 11:01
quote:
0s.gif Op donderdag 15 maart 2012 10:56 schreef RenRen- het volgende:

[..]

Ik ben er zo een met een vagina. Tot zo O+
Oh, jij schrijft ook kutcode ;) ;) :P :P ?
RenRen-donderdag 15 maart 2012 @ 11:10
quote:
0s.gif Op donderdag 15 maart 2012 11:01 schreef Sitethief het volgende:

[..]

Oh, jij schrijft ook kutcode ;) ;) :P :P ?
Nee dat deed het mannetje op het internet die deze code schreef :(

Oké, nu staat hij op mijn echte server, ik heb mijn formulier ingevuld en krijg ik:

1Warning: Cannot modify header information - headers already sent by (output started at /cupacake/process_recepteninzenden.php:12) in /cupacake/process_recepteninzenden.php on line 24

Eigenlijk is de bedoeling dat je die hele pagina niet ziet :{ maar dat hij een loop maakt naar een 'bedankt voor het bericht'-pagina.

Goed, dit krijg ik in mijn email:
quote:
Your Name
E-Mailllll Ben
Contact No
Message
Wat gek is, want ik had wel in alle velden iets in heb gevuld.

De code zoals hij in process_receptenverzenden.php staat:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if(isset($_POST['submit'])) {
   $to = '.@hotmail.com' ;
   $subject = 'Cup a Cake Recepten inzenden'; 
   $headers = 'MIME-Version: 1.0' . "\r\n";
   $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
   $message = "<table><tr><td>Your Name</td><td>".$_POST['name']."</td></tr>
               <tr><td>E-Mailllll</td><td>".$_POST['email']."</td></tr>
               <tr><td>Contact No</td><td>".$_POST['contact']."</td></tr>
               <tr><td>Message</td><td>".$_POST['message']."</td>
               </tr></table>" ;
  mail($to, $subject, $message, $headers);
  header('Location: verzonden_recepteninzenden.php');
}
?>


[ Bericht 0% gewijzigd door RenRen- op 15-03-2012 11:28:41 ]
The_Terminatordonderdag 15 maart 2012 @ 11:15
quote:
0s.gif Op donderdag 15 maart 2012 11:10 schreef RenRen- het volgende:

[..]

Nee dat deed het mannetje op het internet die deze code schreef :(

Oké, nu staat hij op mijn echte server, ik heb mijn formulier ingevuld en krijg ik:
[ code verwijderd ]

Eigenlijk is de bedoeling dat je die hele pagina niet ziet :{ maar dat hij een loop maakt naar een 'bedankt voor het bericht'-pagina.

Goed, dit krijg ik in mijn email:

[..]

Wat gek is, want ik had wel in alle velden iets in heb gevuld.

De code zoals hij in process_receptenverzenden.php staat:
[ code verwijderd ]

Die header fout wordt veroorzaakt doordat er al output wordt verzonden voordat de header() functie wordt aangeroepen: header('Location: verzonden_recepteninzenden.php');

Waarschijnlijk staat er een spatie voor je php code of wordt er ergens anders via print of echo iets verzonden waardoor de headers al zijn verzonden.

Het probleem dat de ingevoerde gegevens niet in de mail terechtkomen kan worden veroorzaakt doordat je form de methode GET gebruikt om de gegevens te verzenden en jij ze uit de POST array probeert te halen. Om dit uit te kunnen zoeken zou je ook de code van je formulier waar de gebruiker de gegevens invoert moeten posten.

Je kunt eventueel checken of er überhaupt iets wordt verzonden dmv: print_r($_REQUEST);
Sitethiefdonderdag 15 maart 2012 @ 11:15
quote:
0s.gif Op donderdag 15 maart 2012 11:10 schreef RenRen- het volgende:

[..]

Nee dat deed het mannetje op het internet die deze code schreef :(

Oké, nu staat hij op mijn echte server, ik heb mijn formulier ingevuld en krijg ik:
[ code verwijderd ]

Eigenlijk is de bedoeling dat je die hele pagina niet ziet :{ maar dat hij een loop maakt naar een 'bedankt voor het bericht'-pagina.

Goed, dit krijg ik in mijn email:

[..]

Wat gek is, want ik had wel in alle velden iets in heb gevuld.

De code zoals hij in process_receptenverzenden.php staat:
[ code verwijderd ]

quote:
header() is used to send a raw HTTP header. See the » HTTP/1.1 specification for more information on HTTP headers.

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
_Flash_donderdag 15 maart 2012 @ 11:18
Ok het versturen gaat goed. Kennelijk blijven die velden in de mail leeg vanwege een foutje in het voorliggende formulier.

Kan je die code ook eens posten?
RenRen-donderdag 15 maart 2012 @ 11:24
quote:
0s.gif Op donderdag 15 maart 2012 11:15 schreef The_Terminator het volgende:

[..]

Die header fout wordt veroorzaakt doordat er al output wordt verzonden voordat de header() functie wordt aangeroepen: header('Location: verzonden_recepteninzenden.php');

Waarschijnlijk staat er een spatie voor je php code of wordt er ergens anders via print of echo iets verzonden waardoor de headers al zijn verzonden.

Het probleem dat de ingevoerde gegevens niet in de mail terechtkomen kan worden veroorzaakt doordat je form de methode GET gebruikt om de gegevens te verzenden en jij ze uit de POST array probeert te halen. Om dit uit te kunnen zoeken zou je ook de code van je formulier waar de gebruiker de gegevens invoert moeten posten.

Je kunt eventueel checken of er überhaupt iets wordt verzonden dmv: print_r($_REQUEST);
Oke. Ik weet niet of ik het allemaal begrijp maar ik ga een poging wagen :)
- Moet die header dan hogerop in de code? Zodat hij eerder wordt uitgevoerd?

Ik heb alle spaties en white spaces gewoon weggehaald (op de enters na iedere lijn na) .
De code die ik postte was alle PHP-code op de pagina, verder alleen een head en een body, meer niet. Als dat weg moet hoor ik het wel :Y

Code van het formulier:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<form name="contact" method="POST" action="process_recepteninzenden.php">
                    <table width="456" border="0" cellpadding="0" cellspacing="0">
                       <tr>
                          <td height="28" class="contactformulier" valign="top">Naam</td>
                          <td><input name="Naam" class="contactformulier" type="text"></td>
                       </tr>
                       <tr>
                          <td height="28" class="contactformulier"  valign="top">E-mailadres</td>
                          <td><input name="email" class="contactformulier" type="text" onsubmit="return ValidateRequiredFields();"></td>
                       </tr>
                       <tr>
                          <td height="28" class="contactformulier"  valign="top">Naam recept</td>
                          <td><input name="Naam recept" class="contactformulier" type="text"></td>
                       </tr>
                       <tr>
                          <td height="28" class="contactformulier_textarea"  valign="top">Recept</td>
                          <td><textarea rows="8" cols="50" name="Recept" class="contactformulier_textarea" /></textarea></td>
                       </tr>
                       <tr>
                          <td> </td>
                          <td valign="top" align="center"><button type="image" value="Verstuur" name="submit" class="verzendknop">Verstuur</button></td>
                       </tr>
                    </table>
                    </form>

En nu kijken naar dat stukje wat jij stuurde.
quote:
0s.gif Op donderdag 15 maart 2012 11:18 schreef _Flash_ het volgende:
Ok het versturen gaat goed. Kennelijk blijven die velden in de mail leeg vanwege een foutje in het voorliggende formulier.

Kan je die code ook eens posten?
Zie hierboven

Edit:
Oh dit gebeurt:
1Warning: Cannot modify header information - headers already sent by (output started at /home/deb36484/domains/irenkapetrarca.com/public_html/cupacake/process_recepteninzenden.php:11) in /home/deb36484/domains/irenkapetrarca.com/public_html/cupacake/process_recepteninzenden.php on line 23
_Flash_donderdag 15 maart 2012 @ 11:31
Die header-melding is niet zo'n probleem. Dat komt doordat er of een spatie o.i.d. nog vóór die header in de output-HTML naar voren komt. Staat er toevallig een witregel voor de openings <?php tag?

Of check anders het bestandsformaat eens. Deze moet zonder zogenaamde BOM-header zijn. Sommige editors doen dit standaard verkeerd.

Dat de velden in je mail leeg zijn komt door de naamgeving. Je gebruikt in het form wel de namen "Naam", "email", "Naam recept" maar in het verzendscript staan nog "name", "contact" etc.

Deze moeten gelijk aan elkaar zijn. En het is beter om geen spatie te gebruiken in zo'n name.

Het $_POST['naam'] commando haalt de waarde op van de input in het formulier met name='naam'. Die naamgeving moet dus kloppen.
The_Terminatordonderdag 15 maart 2012 @ 11:32
quote:
0s.gif Op donderdag 15 maart 2012 11:24 schreef RenRen- het volgende:

[..]

Oke. Ik weet niet of ik het allemaal begrijp maar ik ga een poging wagen :)
- Moet die header dan hogerop in de code? Zodat hij eerder wordt uitgevoerd?

Ik heb alle spaties en white spaces gewoon weggehaald (op de enters na iedere lijn na) .
De code die ik postte was alle PHP-code op de pagina, verder alleen een head en een body, meer niet. Als dat weg moet hoor ik het wel :Y

Code van het formulier:
[ code verwijderd ]

En nu kijken naar dat stukje wat jij stuurde.

[..]

Zie hierboven

Edit:
Oh dit gebeurt:
[ code verwijderd ]

De ontbrekende data komt doordat de namen van je velden verschillen met de sleutels die je uit de POST array probeert te halen.

Een input met name="Naam" verwijst naar $_POST['Naam'] en niet naar $_POST['name']

Als die body tag die je noemt wordt weergegeven voordat de header() functie wordt uitgevoerd dan zit daar het probleem. Er mag geen enkele uitvoer naar de browser zijn voordat je de header() functie uitvoert.
RenRen-donderdag 15 maart 2012 @ 11:34
quote:
0s.gif Op donderdag 15 maart 2012 11:31 schreef _Flash_ het volgende:
Die header-melding is niet zo'n probleem. Dat komt doordat er of een spatie o.i.d. nog vóór die header in de output-HTML naar voren komt. Staat er toevallig een witregel voor de openings <?php tag?

Of check anders het bestandsformaat eens. Deze moet zonder zogenaamde BOM-header zijn. Sommige editors doen dit standaard verkeerd.

Dat de velden in je mail leeg zijn komt door de naamgeving. Je gebruikt in het form wel de namen "Naam", "email", "Naam recept" maar in het verzendscript staan nog "name", "contact" etc.

Deze moeten gelijk aan elkaar zijn. En het is beter om geen spatie te gebruiken in zo'n name.
Ik heb alles helemaal tegen elkaar gezet, de php staat direct na de body-tag, geen spatie of iets.
Dat BOM kan het probleem zijn, ik zal het eruit halen en kijken of dat werkt :o

Oh. Dat is stom van me. :') Goh, even veranderen. Dankje!

Bedankt voor de moeite ook iedereen.
quote:
0s.gif Op donderdag 15 maart 2012 11:32 schreef The_Terminator het volgende:

[..]

De ontbrekende data komt doordat de namen van je velden verschillen met de sleutels die je uit de POST array probeert te halen.

Een input met name="Naam" verwijst naar $_POST['Naam'] en niet naar $_POST['name']
Ook bedankt. Echt stom van me :')
RenRen-donderdag 15 maart 2012 @ 11:37
*O* OPGELOST. Ik had dus niet door dat ik dat soort dingen niet kan doen, het werkt! Heeeel erg bedankt iedereen O+
_Flash_donderdag 15 maart 2012 @ 11:38
Graag gedaan. Waar kunnen we de recepten inzien of opsturen?
RenRen-donderdag 15 maart 2012 @ 11:42
quote:
0s.gif Op donderdag 15 maart 2012 11:38 schreef _Flash_ het volgende:
Graag gedaan. Waar kunnen we de recepten inzien of opsturen?
Ik stuur je even een DM :Y Als anderen het ook willen zien, DM even :)

Het is nog lang niet af hoor, voor mij is dit een enorme onderneming. (Jullie gaan denk ik lachen om wat ik moet doen, maar ik vind het heel ingewikkeld), zo moet ik informatie uit de database gaan uitlezen, zitten er in de recepten stappen met afbeeldingen die op meerdere plekken terug gaan komen, daar moet ik ook nog een oplossing voor vinden. Maar daar ben ik nu dus nog mee bezig wat je gaat zien is allemaal statisch. Behalve het formulier :+
_Flash_donderdag 15 maart 2012 @ 11:57
Thanks, mooie site.
Als je nog wat tips wilt voor de beveiliging of om spam te voorkomen (je gaat veel spam krijgen met zo'n formulier) dan moet je het maar laten weten :)
The_Terminatordonderdag 15 maart 2012 @ 11:57
quote:
0s.gif Op donderdag 15 maart 2012 11:37 schreef RenRen- het volgende:
*O* OPGELOST. Ik had dus niet door dat ik dat soort dingen niet kan doen, het werkt! Heeeel erg bedankt iedereen O+
Mooi!

Ik heb nog wel een suggestie als zijnde een verbetering van je huidige invoer-verwerking:
1
2
3
<?php
$input_naam 
= isset($_POST['name']) ? htmlentities($_POST['name']) : '';
?>

De $input_naam variable kun je vervolgens in je mail gebruiken:
1<td>Your Name</td><td>".$input_naam."</td>

Hierdoor weet je zeker dat bijzondere tekens goed verwerkt worden en dat je geen waarschuwingen krijgt indien een een element niet bestaat in de POST array.
_Flash_donderdag 15 maart 2012 @ 11:59
Ennnn slotje! ;-)