Farenji | zaterdag 16 februari 2008 @ 13:41 | |||||
![]() cd niet bijgeleverd 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 ![]() Vorige delen: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 Zie ook: Tutorials: Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP | ||||||
Chandler | zaterdag 16 februari 2008 @ 14:04 | |||||
Laatste post:quote:Je hebt helemaal gelijk ![]() Nu het volgende dan ![]()
zoeken van 2008-jan-12 t/m 2008-feb-12 alleen klopt deze data niet. Als ik zoek vanaf zoeken van 2008-jan-02 t/m 2008-feb-12 dan krijg ik alle referers, de eerste referer is van 12-feb-08 ![]() | ||||||
Farenji | zaterdag 16 februari 2008 @ 14:46 | |||||
Je doet hier bijna hetzelfde. Je krijgt hier alleen maar records terug van 12 jan en 12 feb 2008 uit. Alle andere dagen worden door je AND uitgesloten. Het is nogal lastig om termijnen te zoeken als je dag, maand en jaar apart opslaat. Je zit al gauw met where clauses van meters lang. Maak er gewoon een date field van, daarmee kun je veel makkelijker zoeken:
| ||||||
SuperRembo | zaterdag 16 februari 2008 @ 15:04 | |||||
Als het datum is, sla het dan ook als datum op, of als timestamp. Maar als je dat niet wil veranderen:
| ||||||
JortK | zaterdag 16 februari 2008 @ 15:15 | |||||
Ook weer present ![]() | ||||||
Chandler | zaterdag 16 februari 2008 @ 17:21 | |||||
quote:Je hebt gelijk, maar je voorbeeld werkt perfect! ![]() | ||||||
PiRANiA | zaterdag 16 februari 2008 @ 19:19 | |||||
quote:hoi! | ||||||
Likkende_Lassie | zaterdag 16 februari 2008 @ 19:27 | |||||
Ik heb de volgende query:
totalprice zou hier de totale prijs moeten geven inclusief de btw (deze kan per item verschillen!). Dit doet hij goed, totdat 1 van de items een ander btw percentage heeft..... hoe komt! ![]() | ||||||
Scriptha | zaterdag 16 februari 2008 @ 19:37 | |||||
Hoe implementeer ik een getInstance method (voor singleton design pattern) in abstracte class, zodat die bruikbaar is voor child classes? | ||||||
JortK | zaterdag 16 februari 2008 @ 19:39 | |||||
quote:doe ook eens een sum op je VAT + 100 gedeelte ? | ||||||
Xcalibur | zaterdag 16 februari 2008 @ 19:45 | |||||
quote:wat gaat er precies fout bij een ander btw percentage? Daarnaast vind ik het niet handig om dit in je query uit te rekenen ![]() | ||||||
Likkende_Lassie | zaterdag 16 februari 2008 @ 19:48 | |||||
Ok opgelost, niet de SUM bij de VAT + 100 hoor ![]() Heb hem helemaal vooraan de soms gezet:
Waarom is dat niet handig om die in de query uit te rekenen? Want ik moet alleen een totaalbedrag hebben..., meer niet | ||||||
JortK | zaterdag 16 februari 2008 @ 19:58 | |||||
quote:Ik doe dat soort dingen ook zoveel mogelijk in SQL, want dan hoef ik niet EN in SQL de data op te halen EN te gaan rekenen in SQL. Geen performance issue ofzo maar gewoon gemakkelijk ![]() | ||||||
Likkende_Lassie | zaterdag 16 februari 2008 @ 20:00 | |||||
Sinds kort probeer ik zoveel als mogelijk in SQL te doen, anders moet ik nog een while in php maken etc.... scheelt me zo 10 regels code! | ||||||
SuperRembo | zaterdag 16 februari 2008 @ 20:12 | |||||
quote:Denk je wel aan de afrondingsverschillen? ![]() | ||||||
Tarabass | zaterdag 16 februari 2008 @ 20:20 | |||||
quote:Ook hoi! | ||||||
JortK | zaterdag 16 februari 2008 @ 20:28 | |||||
quote:Niet geheel onbelangrijk bij BTW ![]() | ||||||
Likkende_Lassie | zaterdag 16 februari 2008 @ 20:31 | |||||
euhm, ik krijg gewoon een getal terug, wat ik door number_format($waarde, 2) haal... | ||||||
Thomass | zaterdag 16 februari 2008 @ 20:36 | |||||
quote: ![]() | ||||||
Likkende_Lassie | zaterdag 16 februari 2008 @ 21:00 | |||||
Wat moet ik er dan volgens jou mee doen? ![]() | ||||||
Thomass | zaterdag 16 februari 2008 @ 21:03 | |||||
| ||||||
Likkende_Lassie | zaterdag 16 februari 2008 @ 21:12 | |||||
kan ook...maakt niks uit he | ||||||
Farenji | zaterdag 16 februari 2008 @ 21:30 | |||||
quote:Door een class te maken met een private variable $instance, een private constructor die een nieuwe instance maakt en die in $instance zet, en een functie getInstance die checkt of $instance gedefinieerd is, zo niet de constructor aanroept, en zo wel $instance teruggeeft. | ||||||
MDevil | zaterdag 16 februari 2008 @ 21:41 | |||||
Wie kan mij helpen?quote:Zie ook mijn topic: [PHP/SQL]PDO_MYSQL werkt niet? | ||||||
Likkende_Lassie | zaterdag 16 februari 2008 @ 21:51 | |||||
Thomass, als ik volgens jou iets fout doe in mijn berekeningen, zeg het me dan aub ![]() [ Bericht 0% gewijzigd door Likkende_Lassie op 17-02-2008 08:44:34 ] | ||||||
Darkomen | zondag 17 februari 2008 @ 15:44 | |||||
ff snel een klein vraagje, op een site van een klant van me (is van server verhuisd) worden speciale tekens niet goed weergegeven. Nu weet ik dat het hier pas is langsgekomen maar ik kan het zo snel niet vinden, iemand die dat nog weet? | ||||||
YellowBanana | zondag 17 februari 2008 @ 15:48 | |||||
MySQL is een crappy db of niet? | ||||||
YellowBanana | zondag 17 februari 2008 @ 15:49 | |||||
quote:Hangt toch van je charset af? | ||||||
JortK | zondag 17 februari 2008 @ 16:05 | |||||
quote: ![]() | ||||||
PiRANiA | zondag 17 februari 2008 @ 16:19 | |||||
quote:hangt er vanaf waarvoor je het gebruikt ![]() over algemeen issie prima ![]() | ||||||
Farenji | zondag 17 februari 2008 @ 17:05 | |||||
quote:Ja, waarschijnlijk encoding problemen. Die treden op als de content-type die de server meestuurt een andere is dan waarin de data is opgeslagen in de database of waarin de bestanden zijn opgeslagen. | ||||||
Darkomen | maandag 18 februari 2008 @ 10:24 | |||||
! tnx, dat ga ik ff opzoeken een aanpassen. | ||||||
colourAgga | maandag 18 februari 2008 @ 16:47 | |||||
Let ook nog even op de collation's van je database en de connection type van je database ![]() ![]() ![]() | ||||||
Swetsenegger | maandag 18 februari 2008 @ 21:53 | |||||
Heeft mysql een round functie die floats kan afronden naar 5 tallen? dus 28,63 wordt 28,65 en 28,61 wordt 28,60 | ||||||
SuperRembo | maandag 18 februari 2008 @ 23:27 | |||||
Daar zal MySQL waarschijnlijk geen functie voor hebben, maar met een gewone round functie kan het ook: Round(x / 5) * 5, of Round(x / 0.05) * 0.05 | ||||||
saban | dinsdag 19 februari 2008 @ 16:46 | |||||
Is hier een makkelijkere/snellere oplossing voor? | ||||||
hornage | dinsdag 19 februari 2008 @ 17:31 | |||||
Ik heb ff een vraagje over de mail() functie van php. Ik kreeg laatst een mail teruggestuurd van de smtp server omdat er een é in het onderwerp stond. De mail gaf ik aan dat ik het moest encoden volgens RFC 2822 en dat ik het dan kon versturen. Die RFC heeft blijkbaar iets met MIME mail te maken etc, maar dit hoef ik allemaal niet. Ik wil gewoon dat het ook mogelijk is om zulke karakters in mijn onderwerp te hebben. Is er een encode functie die mijn subject kan encoden zodat dit gaat werken? | ||||||
hornage | dinsdag 19 februari 2008 @ 17:36 | |||||
quote:Als ik al een functie zou maken voor het checken of een getal even is zou ik dat zo doen:
Maar eigenlijk vind ik een functie hiervoor wat overdreven. Een check op % 2 == 0 is ook leesbaar zat vind ik altijd. | ||||||
Light | dinsdag 19 februari 2008 @ 18:31 | |||||
quote:Iets kortere functie:
| ||||||
Thomass | dinsdag 19 februari 2008 @ 19:11 | |||||
quote:Micro optimalisatie ![]()
| ||||||
Swetsenegger | dinsdag 19 februari 2008 @ 23:17 | |||||
quote:Werkte perfect. Kan je mysql ook ranges laten selecteren? Ik weet de 'wahere id in (1,10,15) clausule, maar als ik nu alle ID's tussen 5 en 50 wil? | ||||||
Swetsenegger | dinsdag 19 februari 2008 @ 23:20 | |||||
![]() | ||||||
Chandler | woensdag 20 februari 2008 @ 07:50 | |||||
of where id >=5 and id <= 50 ![]() Vraagje, vanaf welke PHP versie bestaat PHP_EOL? | ||||||
Xcalibur | woensdag 20 februari 2008 @ 08:43 | |||||
quote:wat is het? Op php.net weten ze nog wat niks namelijk ![]() | ||||||
Chandler | woensdag 20 februari 2008 @ 08:59 | |||||
het is een constant ![]() | ||||||
SuperRembo | woensdag 20 februari 2008 @ 10:03 | |||||
PHP_EOL (string) Available since PHP 4.3.10 and PHP 5.0.2 | ||||||
qu63 | woensdag 20 februari 2008 @ 10:13 | |||||
quote:ja! | ||||||
Chandler | woensdag 20 februari 2008 @ 11:59 | |||||
quote:Je wordt vriendelijk bedankt! ![]() | ||||||
hornage | woensdag 20 februari 2008 @ 13:03 | |||||
quote:Niemand heeft gereageerd op mijn vraag jammer genoeg, maar hierbij nog even de functie die ik na lang zoeken heb kunnen vinden:
| ||||||
Likkende_Lassie | woensdag 20 februari 2008 @ 20:40 | |||||
Ik heb een vraag betreffende het volgende: In $description staat de beschrijving van iets. In deze tekst kunnen productnamen worden opgehaald, ik wil dit als volgt doen: $description = 'BLA BLA BLA BLA [[PRODUCT_ID]] BLA BLA BLA'; Hoe kan ik [[PRODUCT_ID]] (is elke keer dus een andere ID ![]() | ||||||
CraZaay | woensdag 20 februari 2008 @ 21:06 | |||||
quote:Je zult een patroon moeten vinden waar je een regex of string replacement op los kunt laten. | ||||||
Xcalibur | donderdag 21 februari 2008 @ 08:38 | |||||
quote:ja, zo zag die er ook al uit ![]() Waar is het voor, want de documentatie op php.net is nogal summier zeg maar..... ? | ||||||
WyriHaximus | donderdag 21 februari 2008 @ 11:00 | |||||
@JortK -> Ga uit eindelijk toch maar voor CakePHP denk ik ![]() | ||||||
JortK | donderdag 21 februari 2008 @ 11:12 | |||||
quote:Waarom ? | ||||||
WyriHaximus | donderdag 21 februari 2008 @ 11:33 | |||||
quote:Om een paar redenen, CI schijnt toch aardig terug te lopen developement terwijl ze vol op bezig zijn met cake. Met cake heb ik meer het gevoel dat ik echt een framework heb voor me database en MVC model. Terwijl CI toch een hoop meer dingen standaard mee levert. De problemen die ik dacht te hebben met cake is al wat voor en daar ben ik heel erg blij mee want dat scheelt mij een tering zooi werk en een nieuwe framework leren ![]() ![]() | ||||||
CraZaay | donderdag 21 februari 2008 @ 14:28 | |||||
CI heeft toch ook een prima MVC-scheiding? Maar iedereen moet zelf weten wat 'ie gebruikt uiteraard. Ik heb verschillende grote sites gebouwd met CI naar tevredeneid iig. | ||||||
WyriHaximus | donderdag 21 februari 2008 @ 15:01 | |||||
quote:Bedoelde dat CI toch meer extra's heeft en cake maar bare is ![]() | ||||||
Chandler | donderdag 21 februari 2008 @ 20:10 | |||||
quote:PHP_ENDOFLINE ![]() Oftewel een \r\n of \r of \'n | ||||||
Likkende_Lassie | vrijdag 22 februari 2008 @ 07:29 | |||||
quote:Ben nu aan het kijken naar de functie preg_replace_callback(); | ||||||
CraZaay | vrijdag 22 februari 2008 @ 08:40 | |||||
Even los van de implementatie; zit er een rode draad in? Als je de ene keer de string "fiets auto 1233 fok" hebt waaruit je 1233 wilt hebben, en de andere keer "kat koe melk" waarvan je koe wilt hebben, dan wordt het lastig uiteraard ![]() | ||||||
Likkende_Lassie | vrijdag 22 februari 2008 @ 14:20 | |||||
Kijk elke keer komt er een idnummer (wat weer uit de productne database wordt gehaald) voor in de tekst. Dus bv: bblablablal [[3012]] blablablabla Ik moet dan 3012 terug krijgen en [[3012]] moet worden vervangen door het geen wat ik wil. Maar 3012 kan ook iets anders zijn! snappi? ![]() Ik kan natuurlijk ook een mysql query elke keer laten uitvoeren, die een str_replacement elke keer doet, en kijkt of een ID in die tekst voorkomt... maar dat moet ook anders op te lossen zijn lijkt me. Dus dat als er [[ ]] in staat, hij pas gaat kijken | ||||||
saban | vrijdag 22 februari 2008 @ 14:38 | |||||
quote:Dat is dus wat je nodig hebt. Daarop moet je gaan preggen ![]() | ||||||
Resco | vrijdag 22 februari 2008 @ 18:36 | |||||
quote:Inderdaad, lijkt me vrij standaard. Even doorlezen: http://nl2.php.net/preg_replace | ||||||
Chandler | zondag 24 februari 2008 @ 10:07 | |||||
Even een vraagje, wil in een query zoeken op records ouder dan 60 dagen met datetime format, heb me een breuk gezocht maar kon niets logisch en begrijpbaars vinden dat werkte ![]() | ||||||
CraZaay | zondag 24 februari 2008 @ 10:36 | |||||
Geen idee of dit efficienter kan, maar kijk eens naar http://dev.mysql.com/doc/(...)-time-functions.html ![]() | ||||||
super-muffin | zondag 24 februari 2008 @ 11:15 | |||||
quote:Ik vroeg het me ook af. Dit werkt wel aardig geloof ik. ![]()
En nu ik: Wat is de veiligste manier om een blijf ingelogd functie te maken? User Id onthouden in combinatie met IP en dat ook weer controleren? | ||||||
Tarabass | zondag 24 februari 2008 @ 11:41 | |||||
quote:Username en (uiteraard encrypted) wachtwoord opslaan in cookie, die de user dan via de browser kan laten onthouden? | ||||||
#ANONIEM | zondag 24 februari 2008 @ 12:26 | |||||
quote:Geen goed idee. Als iemand het cookie dan weet te jatten, dan kan die daarmee inbreken zolang het wachtwoord gelijk blijft. Of je het nu encrypted of niet in de cookie zet maakt dus zelfs nauwelijks iets uit. ![]() Je kunt beter een soort van Session ID in de cookie opslaan, die maar beperkt geldig is. Bijvoorbeeld een uur, of totdat je uitlogt, of totdat je de volgende keer inlogt. [ Bericht 5% gewijzigd door #ANONIEM op 24-02-2008 12:28:23 ] | ||||||
CraZaay | zondag 24 februari 2008 @ 12:30 | |||||
In ieder geval niets wat zonder toegang tot de database te herleiden is tot een gebruiker. Dus ook geen userid ofzo. Als je geen sessie id's wilt gebruiken sla dan desnoods een hash van de username ofzo op (en dezelfde hash in de db uiteraard). User id + IP zou ideaal zijn, kun je in je cookie gewoon ff het id met 1 ophogen en als iemand anders inloggen ![]() | ||||||
Tarabass | zondag 24 februari 2008 @ 12:32 | |||||
quote:Ik heb even gekeken en je hebt inderdaad gelijk. Zelf doe ik dit inderdaad met het Userid plus wachtwoord opslaan in het cookie. Hoe ik dan bij de username kom ![]() Mijn excuses voor het op het verkeerde been zetten ![]() Verder laat ik het pas verlopen na een jaar. Op veel websites waar ik kom verloopt de cookie met het sluiten van de browser, maar vindt het als gebruiker dan vrij irritant overkomen. | ||||||
Xcalibur | zondag 24 februari 2008 @ 12:39 | |||||
dat klinkt meer als een sessie dan als een cookie? | ||||||
SuperRembo | zondag 24 februari 2008 @ 12:43 | |||||
quote:Dat is nog steeds niet veilig. Het enige wat je in een cookie moet zetten is een sessie-id. | ||||||
#ANONIEM | zondag 24 februari 2008 @ 12:49 | |||||
quote:Alleen user-ID en wachtwoord in een cookie opslaan is net zo onveilig, want ook deze combinatie is in principe oneindig lang geldig. Dat de cookie misschien een vervaldatum heeft doet er niet toe, want die is slechts een hint voor de webbrowser en voegt dus geen veiligheid toe. Kortom: je moet in je cookie een gegeven (controlenummer) opslaan, dat je ook op de server ergens noteert. En dit gegeven moet op de server een beperkte geldigheid hebben. SuperRembo: UserID + SessionID is toch net zo veilig? Of doe ik nu ook dom? [ Bericht 8% gewijzigd door #ANONIEM op 24-02-2008 12:51:19 ] | ||||||
CraZaay | zondag 24 februari 2008 @ 13:05 | |||||
quote:Een "session cookie" dan ![]() | ||||||
SuperRembo | zondag 24 februari 2008 @ 14:19 | |||||
quote:Je zet alleen de session-id in de cookie, dus geen user-id. Meer heb je niet nodig. | ||||||
Xcalibur | zondag 24 februari 2008 @ 18:34 | |||||
quote:waarom zou je daar zelf moeilijk mee doen, als je het PHP ook lekker zelf kan laten doen? ![]() | ||||||
super-muffin | zondag 24 februari 2008 @ 19:07 | |||||
quote:Maar op basis van wat moet ik het genereren? Of maakt dat niet zo veel uit? | ||||||
CraZaay | zondag 24 februari 2008 @ 19:47 | |||||
quote:Wie zegt iets over zelf doen? Wat jij bedoelt is een "session cookie", en dat is dus ook gewoon een soort cookie. Daar ging het me vooral om ![]() | ||||||
qu63 | zondag 24 februari 2008 @ 19:49 | |||||
ben een soort van bezig met een image upload en resize script, alleen mn host staat maar 16MB als memory_limit toe. Nu 'crasht' het script dus steeds omdat hij dus geen gehuegen meer heeft. Heeft PHP echt zoveel geheugen nodig om een plaatje te uploaden, resize naar max 600px breed of hoog, en resize naar max 200px breed of hoog? | ||||||
CraZaay | zondag 24 februari 2008 @ 20:10 | |||||
Ja, en wel meer ook waarschijnlijk. Ik moest laatst om een XML-file te kunnen parsen met parse_to_struct() (ofzo) een gig reserveren ![]() | ||||||
qu63 | zondag 24 februari 2008 @ 20:15 | |||||
quote:damn ![]() de instellingen bij one.com kunnen niet gewijzigd worden, dus ik ben de lul geloof ik ![]() | ||||||
PiRANiA | zondag 24 februari 2008 @ 20:44 | |||||
quote:nog een one.commer ![]() Het klopt, ze kunnen volgens mij niet veranderd worden... Je kan het ze vragen, de helpdesk is er toch altijd... Tot nu toe ben ik zelf nog niet tegen beperkingen aan gelopen, behalve dat ik geen CRONJOBS kan installen... | ||||||
SuperRembo | zondag 24 februari 2008 @ 20:51 | |||||
quote:Een plaatje van 3000x2000 pixels kan zo 3000x2000x3 = 18MB aan geheugen gebruiken. Knip het plaatje in 4 stukken, resize die stuk voor stuk, plak ze daarna weer aan elkaar. En als dat nog niet genoeg is moet je meer stukken gebruiken ![]() Volgende probleem: hoe knip je een plaatje in stukken zonder het in z'n geheel in het geheugen te laden? | ||||||
Tarabass | zondag 24 februari 2008 @ 21:01 | |||||
quote:Wat bedoel je daar mee, zelf laten doen? | ||||||
qu63 | zondag 24 februari 2008 @ 21:08 | |||||
quote:helpdesk gevraagd, en dat kan dus niet ![]() en php draait in safe_mode, dus linux-apps gebruiken werkt ook niet ![]() | ||||||
qu63 | zondag 24 februari 2008 @ 21:10 | |||||
quote:klint goed, maar idd: quote:psies, weet je hoe? ![]() | ||||||
Light | zondag 24 februari 2008 @ 22:47 | |||||
quote:Je kunt ook nog kleinere plaatjes uploaden ![]() | ||||||
qu63 | maandag 25 februari 2008 @ 00:02 | |||||
quote:Dat is ook een optie idd. ps, je homepage: Fatal error: Call to undefined function input_name_to_filter() in /sites/arjanonline.net/www/blog/include/compat.inc.php on line 99 | ||||||
Tarabass | maandag 25 februari 2008 @ 08:54 | |||||
quote:Of het plaatje via html kleiner maken en dan een screenshot maken met php, als dat kan ![]() | ||||||
CraZaay | maandag 25 februari 2008 @ 09:03 | |||||
Of gewoon een host zoeken waar je wél kunt doen wat je wilt zonder kunstgrepen en/of de interactie aan te passen ![]() | ||||||
The_Terminator | maandag 25 februari 2008 @ 21:26 | |||||
Vraagje ![]() Moet je bij het maken van een index eerst de oude droppen of wordt de al beschikbare automatisch overschreven? Mijn FokSearch database wordt namelijk trager en trager na het indexeren van meer woorden, in het begin hielp het indexeren nog wel maar ik merk nu eigenlijk geen verschil als ik het opnieuw indexeer. | ||||||
Xcalibur | maandag 25 februari 2008 @ 21:37 | |||||
quote:PHP heeft een prima session management om je ingelogd te houden... je moet wel een goede reden hebben als je dat niet wilt gebruiken en je eigen systeem te bouwen ![]() Maar ik heb het idee dat die hele discussie eigenlijk ergens anders over gaat dan ik denk, dus nevermind ![]() | ||||||
qu63 | maandag 25 februari 2008 @ 22:02 | |||||
quote:Helaas zal dat niet gaan. Niet mijn eigen site, wel een site die ik aan het maken ben ![]() | ||||||
Farenji | maandag 25 februari 2008 @ 22:04 | |||||
quote:Indexes op mysql tabellen geven wel snelheidswinst maar ze zijn niet zaligmakend. Je kan maar zoveel met indexes doen, maar er zijn tig redenen voor een trage search. Het kan aan niet optimale code of queries aan jouw kant liggen. Of misschien ligt het echt alleen aan de hoeveelheid data of de manier waarop die opgeslagen wordt. Dat kun je wellicht efficienter maken door je data anders op te slaan, minder data op te slaan, of desnoods een datamart of meta index (een index van een index) van je data maken. Maar misschien dat je eens kan beginnen met hoe je datamodel eruitziet en wat voor soort indexes op welke columns je gebruikt. | ||||||
ErikN | maandag 25 februari 2008 @ 22:21 | |||||
Vraagje, Weet iemand een manier om dubbele MySQL records te verwijderen. Ik heb een tabel met ongeveer 120.000 records. Sommige records zijn dubbel, met uitzondering van een unieke ID. Is het mogelijk om dubbele records te verwijderen met een query? Een alternatief is een PHP script, maar die gaat waarsch. piepen bij 120.000 records... | ||||||
The_Terminator | maandag 25 februari 2008 @ 22:26 | |||||
quote:Opzich is het niet traag, meestal doet het script er 0,1 sec of nog minder over om iets te vinden. Het gaat mij erom dat ik merk dat het steeds trager begint te worden, en ik ben bang dat het na verloop van tijd alleen maar achteruitgaat met de snelheid. Ik heb gewoon topics aan woorden gekoppeld via een losse tabel. Als iemand naar een woord zoekt dan wordt dat woord in de database opgezocht, dat woord bevat weer een ID dat weer in een andere tabel wordt opgezocht en in die tabel staan de topics waar het woord voorkomt en hoe vaak het voorkomt (om de relevantie te bepalen). Vervolgens haal ik de titel, TS, topicid en datum van het topic uit een losse tabel en dat wordt op de pagina geprint. Kan me eigenlijk niets beter bedenken dan bovenstaande. | ||||||
CraZaay | maandag 25 februari 2008 @ 22:31 | |||||
quote:Waarom zou die piepen bij 120.000 records? Zoveel is dat toch niet? Ik zou zo geen query weten overigens. | ||||||
ErikN | maandag 25 februari 2008 @ 22:32 | |||||
quote:Mijn PHP import scripts kunnen maximaal 10.000 per keer aan (op mijn brakke ontwikkel PC). | ||||||
ErikN | maandag 25 februari 2008 @ 22:34 | |||||
+ ik weet dat het kan. Heb er ook al wel wat over gelezen. Alleen begrijp er niet veel van nog... | ||||||
Farenji | maandag 25 februari 2008 @ 22:37 | |||||
quote:Dan is niet alleen je PC brak. | ||||||
Farenji | maandag 25 februari 2008 @ 22:47 | |||||
quote:Wat voor indexes gebruik je precies, en van wat voor type zijn die? En hoe match je op de woorden, doe je dat letterlijk (where field = "blaat"), met een LIKE of met een fulltext search? | ||||||
WyriHaximus | maandag 25 februari 2008 @ 23:02 | |||||
quote:Ja of wel, afaik kan PHP niet maar geheugen assignen dan de hoeveelheid RAM die je hebt. Tenminste daar liep ik tegen aan toen ik aan het kutten was met een bitmap in een array stoppen (NIET DOEN!!!) ![]() | ||||||
The_Terminator | maandag 25 februari 2008 @ 23:55 | |||||
quote:Ik heb de woorden tabel geindexeerd en de verwijzing ernaar in de andere tabel ook. Het is gewoon het standaard type, ik doe dat op de volgende manier:
Verder gebruik ik idd gewoon where, en de search kan naar meerdere woorde zoeken, dat kan zowel met een OR of AND operator. Het script zoekt eerst naar het woord in de database en voert dat voor elk woord uit en daar komen dan topicnummers voor terug. Vervolgens worden de gevonden topics in een array gezet en krijgen ze een bepaalde score. Als een woord vaker voorkomt in een bepaald topic dan wordt die score verhoogd. Vervolgens sorteer ik die array en komen de meest relevante topics bovenaan te staan, als datum als sorteervolgorde is gekozen dan worden gewoon de topics met het grootste of kleinste topicnr. bovenaan gezet. Vervolgens kijkt het script of alle opgegeven woorden (als AND is gebruikt) voorkomen in een bepaald topic en worden de resultaten die doorkomen op de pagina geprint. Bij OR worden gewoon alle resultaten geprint. | ||||||
Chandler | dinsdag 26 februari 2008 @ 08:43 | |||||
quote:Je kunt een script toch na xxx records 3 seconden laten wachten het script middels header weer aanroepen en verder gaan waar je gebleven bent? zo draai ik cronjobs voor databases met meer dan 1 milj records! | ||||||
Xcalibur | dinsdag 26 februari 2008 @ 09:08 | |||||
Ik denk dat een FULLTEXT search wel sneller is dan een WHERE / LIKE? Chandler: codevoorbeeldje? ![]() | ||||||
Farenji | dinsdag 26 februari 2008 @ 09:53 | |||||
quote:Je hebt natuurlijk altijd geheugenbeperkingen maar dat ligt ook aan de implementatie. Met 1 image die je wil verwerken heb je weinig keus maar als je bijv een db import draait dan moet je natuurlijk niet die hele import eerst in je geheugen lezen en daarna pas wegschrijven. Als je dit netjes per record itereert dan kost het nauwelijks geheugen. Ik maak zelf regelmatig scripts voor tabellen met miljoenen rows, geen enkel probleem. | ||||||
WyriHaximus | dinsdag 26 februari 2008 @ 10:55 | |||||
quote:Je moet natuurlijk wel je script fatsoenlijk bouwen idd. Maar me punt was meer dat het aan ze bak kon liggen (niet waarschijnlijk). Aan de andere kant heb ik hier een oude P3 met 196MB RAM staan als thuis servertje die scripts draait waar rustig 90.000 reccords door heen worden geschoten dus het moet een aardige brakke dev bak zijn dan ![]() | ||||||
Chandler | dinsdag 26 februari 2008 @ 15:08 | |||||
quote:In stappen. session_start select * from tabel LIMIET $_SESSION['start'], 250 $_SESSION['start'] = $_SESSION['start'] + 250; sleep(300); header("location: zelfde script"); ![]() | ||||||
Farenji | dinsdag 26 februari 2008 @ 16:43 | |||||
quote:Dit klinkt als heel veel losse stappen. Wat ik zou doen is mysql het zware werk laten doen: een dergelijke zoekmethode kun je volgens mij prima vangen in 1 of 2 queries die je opbouwt aan de hand van de argumenten (zoekwoorden, sorteervolgorde, AND/OR). Mysql is oha veel efficienter in sorteren van resultaten dan je zelf ooit kan doen in php. Er zijn ook vele verschillende sorteeralgoritmes, de een efficienter dan de ander, en de een is ook geschikter voor een bepaalde taak dan de ander, je moet maar net de juiste kiezen. Mysql zal meestal de best (beschikbare) methode gebruiken. Het zou goed kunnen dat daar je bottleneck ligt. Als je dan die ene query ook nog zo efficient mogelijk maakt (EXPLAIN is je vriend - hiermee zie je of je indexes ook optimaal gebruikt worden) dan kom je volgens mij aardig in de buurt van optimaal zoeken. | ||||||
Xcalibur | dinsdag 26 februari 2008 @ 17:49 | |||||
quote:is op zich wel simpel he, eigenlijk ![]() Waarom zit die sleep() er nou nog in? | ||||||
Chandler | dinsdag 26 februari 2008 @ 18:22 | |||||
om je script te pauzeren, echter kun je dan daarvoor beter als je een mysql connectie hebt gemaakt deze sluiten met mysql_close of je doet een refresh middels javascript! | ||||||
saban | dinsdag 26 februari 2008 @ 18:30 | |||||
quote:Waarom wil je er een pauze in ? Je pakt toch max 250 tegelijk, waarom de pauze? | ||||||
Xcalibur | dinsdag 26 februari 2008 @ 18:36 | |||||
Ik snap dat die sleep erin zit om het ding te pauzeren, maar (zoals Saban terecht vraagt) waarom de pauze? | ||||||
Chandler | dinsdag 26 februari 2008 @ 20:37 | |||||
waarom niet saban, je gunt de server zo even wat meer ademruimte, zekers handig als je op een shared server zit ![]() | ||||||
CraZaay | dinsdag 26 februari 2008 @ 22:21 | |||||
quote:Je gunt die server helemaal niets, aangezien iedere actie pas wordt gestart als de vorige is afgerond. Het kan een server echt niets schelen of 'ie continu door moet of 3 seconden rust krijgt. | ||||||
PiRANiA | woensdag 27 februari 2008 @ 12:22 | |||||
Ik heb een vraagje. Ik wil van een tabel `data` de laatste 30 rijen halen. Ik heb er een timestamp bij. Dit meot dus met LIMIT. Maar hoe moet het als ik de laatste 30 wil EN de volgorde wil behouden? | ||||||
Dzy | woensdag 27 februari 2008 @ 12:52 | |||||
Welke volgorde? | ||||||
CraZaay | woensdag 27 februari 2008 @ 13:36 | |||||
ORDER BY timestamp DESC, LIMIT 30 ![]() Geeft de 30 rows met de hoogste timestamps, van hoog naar laag. | ||||||
saban | woensdag 27 februari 2008 @ 13:45 | |||||
quote:Of je je script nou nu aanroept of over 3 seconde, wat maakt dat uit? Ik weet wat de sleep command doet, maar ik zie er geen voordeel in. | ||||||
Farenji | woensdag 27 februari 2008 @ 15:43 | |||||
Servers regelen hun eigen ademruimte wel door middel van kernel scheduling. En dat kan ie beter als de belasting van processen een beetje constant is, niet als het proces om de zoveel tijd opeens stilvalt en opeens weer vol doorgaat. Het werkt alleen averechts, zo'n sleep. | ||||||
Chandler | woensdag 27 februari 2008 @ 16:18 | |||||
Die sleep mag je idd vergeten, maar het script stoppen en dan na bv 3-5 seconden weer aanroepen lijkt mij beter voor de server, zelfde als 10000 emails in 1x versturen, dat vind een server ook niet leuk ![]() ![]() | ||||||
CraZaay | woensdag 27 februari 2008 @ 16:26 | |||||
Waarom zou een server dat iets kunnen schelen? Hij hoeft echt niet even af te koelen tussendoor hoor ![]() | ||||||
PiRANiA | woensdag 27 februari 2008 @ 16:38 | |||||
quote:SELECT * FROM `scores` WHERE `naam`='$speler' ORDER BY `tijd` ASC limit 30 er achter en hij neemt de laatste 30? | ||||||
Farenji | woensdag 27 februari 2008 @ 16:42 | |||||
quote:Dat ligt aan een maximum aantal mails per keer dat in de mailserverconfig ingesteld. Dat heeft niks met belasting te maken. Een server gaat niet kapot van belasting, volgens mij dicht je die dingen iets te veel menselijke eigenschappen toe ![]() | ||||||
PiRANiA | woensdag 27 februari 2008 @ 16:42 | |||||
Voor de duidelijkheid, dit is er wat er in mijn tabel staat (fictief): 1 2 3 4 5 6 7 8 9 het vetgedrukte is wat ik wil hebben... | ||||||
PiRANiA | woensdag 27 februari 2008 @ 16:52 | |||||
quote:lama, ik heb het al gefikst: quote: | ||||||
CraZaay | woensdag 27 februari 2008 @ 17:29 | |||||
quote:Nee, de eerste 30. Je wilt DESC ipv ASC gebruiken om van hoog naar laag te sorteren. | ||||||
Xcalibur | woensdag 27 februari 2008 @ 17:35 | |||||
Volgens mij is de truuk dat je het met een subquery doet ofzo...? Dit is al vaak gevraagd trouwens, Google moet het antwoord wel weten ![]() | ||||||
Farenji | woensdag 27 februari 2008 @ 18:15 | |||||
Gewoon in DESC opvragen en de volgorde van de resultaten in je php code omdraaien, dat is het makkelijkste. | ||||||
CraZaay | woensdag 27 februari 2008 @ 18:37 | |||||
Precies, bovenstaande code geeft al een array terug. Even array_reverse() erover en klaar. | ||||||
Xcalibur | woensdag 27 februari 2008 @ 19:04 | |||||
ja, maar het in je query doen is mooier ![]() | ||||||
PiRANiA | woensdag 27 februari 2008 @ 20:02 | |||||
quote:maar lukt dat ook met het result direct van de query? | ||||||
CraZaay | woensdag 27 februari 2008 @ 20:07 | |||||
quote:Maar een subquery hiervoor is vast niet efficienter als het over 30 records gaat, maar dat zou je kunnen benchmarken ![]() | ||||||
CraZaay | woensdag 27 februari 2008 @ 20:08 | |||||
quote:Nee, want dat is een resource waar je zo niets mee kan (het directe resultaat van mysql_query()). PHP moet er nog wel een array van maken. | ||||||
PiRANiA | woensdag 27 februari 2008 @ 20:20 | |||||
quote:ja idd, maar dat wordt lastig denk ik. Of je moet er een quote:in gooien maar dat lijkt me niet echt efficient ![]() | ||||||
PiRANiA | woensdag 27 februari 2008 @ 20:21 | |||||
quote:leest mijn 1e post ![]() | ||||||
CraZaay | woensdag 27 februari 2008 @ 20:23 | |||||
quote:Je wilt de tijd dus niet op chronologische volgorde van laag naar hoog, en dan de 30 records met de hoogste waarde? Dat is namelijk wat mijn code doet ![]() | ||||||
PiRANiA | woensdag 27 februari 2008 @ 20:39 | |||||
quote:k...maar ik had het inmiddels al gefikst hoor ![]() | ||||||
#ANONIEM | woensdag 27 februari 2008 @ 20:39 | |||||
quote:Zou een array_revert op een array met 30 elementen langzamer zijn dan een hele extra query? | ||||||
PiRANiA | woensdag 27 februari 2008 @ 20:41 | |||||
quote:het gaat vooral om dat hele fetchen er voor... maar ik cache de pagina binnenkort toch, dus dan maakt het niet zo veel meer uit ![]() | ||||||
Tarabass | woensdag 27 februari 2008 @ 21:29 | |||||
Ik was me een beetje aan het verdiepen in template engines. Sommige groot, sommige klein, maar vond ze over het algemeen omslachtig. Bovendien moet alles geparsed worden. Tijdens mijn zoektocht kwam ik dit artikel tegen. Wat vinden jullie van zijn stelling en class? Dus een template-class of een template-engine? | ||||||
CraZaay | woensdag 27 februari 2008 @ 22:16 | |||||
quote:Het artikel is 5 jaar oud he, voor de duidelijkheid. Template engines zijn uit, MVC is in. | ||||||
Light | woensdag 27 februari 2008 @ 22:25 | |||||
quote:Is dat niet te combineren dan, templates en MVC? | ||||||
CraZaay | woensdag 27 februari 2008 @ 22:28 | |||||
quote:De "V" in MVC staat voor view, templates dus ![]() | ||||||
Geqxon | donderdag 28 februari 2008 @ 01:05 | |||||
Call me crazy, maar kan het zijn dat in de recente versies van MySQL je niet meer rekensommen kan toepassen in een UPDATE statement? Dus zo van " `Sort` = `Sort` + 1 " ? | ||||||
CraZaay | donderdag 28 februari 2008 @ 08:01 | |||||
quote:Het lijkt me heeeeeel sterk ![]() | ||||||
Geqxon | donderdag 28 februari 2008 @ 08:23 | |||||
Dan ben ik crazy. Ik neem aan dat dit dan handig via PHP moet? | ||||||
Light | donderdag 28 februari 2008 @ 08:50 | |||||
quote:Krijg je een mysql foutmelding dan? En over welke recente versie heb je het? Zo'n update werkt iig wel in MySQL 5.0.45. | ||||||
Xcalibur | donderdag 28 februari 2008 @ 09:30 | |||||
Lijkt me dat dat gewoon moet werken ![]() | ||||||
Geqxon | donderdag 28 februari 2008 @ 10:33 | |||||
Ik heb mijn systeembeheerder eens schop gegeven. Het nadeel van in huis je eigen intranet hosten, niemand neemt de moeite om de software eens te updaten. ![]() Gaat nu prima zo. Ik kreeg net een error die afaik iets was van "Column not found" oid. | ||||||
Tarabass | donderdag 28 februari 2008 @ 10:56 | |||||
quote:Dat het artikel zo oud was wist ik. Dat MVC in is wist ik niet en heb daar ook nog nooit van gehoord. Ik ga me inlezen en kom wellicht met vragen terug ![]() Heeft iemand nog tips voor wat ik hiervoor kan downloaden en wat een goeie Model-View-Controller is? | ||||||
Geqxon | donderdag 28 februari 2008 @ 11:10 | |||||
Wat een goede MVC is? MVC is een methode, een manier om iets te ontwikkelen. Niet iets dat je als een framework of engine zomaar even download. ![]() | ||||||
CraZaay | donderdag 28 februari 2008 @ 11:12 | |||||
De meest gebruikte MVC-frameworks voor PHP zijn Code Igniter en CakePHP. | ||||||
Xcalibur | donderdag 28 februari 2008 @ 11:14 | |||||
is Sort geen gereserveerd woord toevallig? Ik gebruik altijd sortorder voor zo'n kolom.... Edit: dit gaat dus over Geqxon z'n sorteerprobleem... ik had een paar posts op de nieuwe pagina over het hoofd gezien ![]() | ||||||
Tarabass | donderdag 28 februari 2008 @ 11:14 | |||||
quote:Oké, maar zijn er goeie voorbeelden of tutorials te downloaden waaruit ik het kan leren en zelf kan doen? Ik moet toch ergens beginnen ![]() | ||||||
Geqxon | donderdag 28 februari 2008 @ 11:15 | |||||
quote:Och, ik gebruik backticks. Gaat prima zo. ![]() | ||||||
Dzy | donderdag 28 februari 2008 @ 11:17 | |||||
Heb je wel eens met zo'n framework gewerkt tarabass? Als je even in cakephp duikt is het snel duidelijk hoe zo'n MVC werkt, daar wordt je geforceerd zo te werken. Very OOP ![]() | ||||||
Geqxon | donderdag 28 februari 2008 @ 11:24 | |||||
Zelf beken ik met schaamte dat ik nog met een template engine werk. | ||||||
Tarabass | donderdag 28 februari 2008 @ 11:41 | |||||
quote:Nee, dat niet. Ik heb de cakephp nu gedownload en moet nu naar mn werk, maar zal vanavond eens die "learn-sectie" van hun site doornemen. Bedankt voor de tips tot dusver ![]() | ||||||
WyriHaximus | donderdag 28 februari 2008 @ 11:44 | |||||
quote:Niks mis mee toch? Ga zelf eem template engine bouwen voor het MVC framework wat ik gebruik (CakePHP) ![]() | ||||||
Geqxon | donderdag 28 februari 2008 @ 11:52 | |||||
quote:Mijn huidige systeem werkt eigenlijk als volgt: Reguliere file: -Handlen van user-events ($_GET / $_POST) -Ophalen van data uit database en in de $output array stoppen -Template file includen Template file: -Een template class starten, en daar stukje bij beetje HTML aan voeden door de opgehaalde data te verwerken -Een HTML template file inladen en parsen (dingen als {title} e.d.) -De door PHP gegenereerde HTML stukken aan de HTML template file toevoegen -GZIP-pen -Aan de browser doorgeven. Ik zou het heel tof vinden om ook met frameworks aan de slag te gaan, maar dat gaat toch iets te veel boven mijn pet. | ||||||
CraZaay | donderdag 28 februari 2008 @ 12:09 | |||||
quote:En waar gebruik je de views dan voor? Ik ben niet bekend met Cake (wel met Code Igniter), maar views zijn toch al templates? | ||||||
Chandler | donderdag 28 februari 2008 @ 12:14 | |||||
Ik gebruik geen MCV's juist omdat ik wil weten wat mijn code doet en het liefst zelf alles van a-z maak (met soms een beetje hulp van FOK ![]() | ||||||
CraZaay | donderdag 28 februari 2008 @ 12:33 | |||||
Als je het MVC-model gebruikt, al dan niet i.c.m. een MVC-framework, moet je natuurlijk ook weten wat je code doet. Het wiel opnieuw uitvinden of je eigen model a la MVC ontwikkelen is mateloos inefficient uiteraard. PHP'ers hebben daar kennelijk toch een handje van, terwijl de rest van de wereld (andere talen) wel al jaaaaaren frameworks gebruiken naar volle tevredenheid. | ||||||
Farenji | donderdag 28 februari 2008 @ 12:39 | |||||
quote:MVC is een manier om je applicatie te structureren, het is geen framework, het is geen software. Het is een aantal richtlijnen voor de architectuur: je scheidt je applicatie op in 3 logische basisblokken: model (datamodel en objectmodel), view (de interface voor de gebruiker) en de controller (die view en model aan elkaar koppelt). Hoe je dat doet is aan jezelf, je kan het van a tot z zelf opbouwen, je kan er verschillende losse modules voor gebruiken of je kan een compleet framework als Cake of Catalyst of wat dan ook voor gebruiken. En in webapplicaties bestaat die view meestal gewoon uit een template engine. Het is onzin om te beweren dat template engines "uit" zouden zijn. En MVC is zelf trouwens ook al zo oud als de weg naar rome. | ||||||
CraZaay | donderdag 28 februari 2008 @ 13:06 | |||||
quote:Natuurlijk wordt een view ook door een template engine gehaald, er moet immers variabele data in. Maar das imo iets anders dan bijv. een Smarty. En natuurlijk is MVC zo oud als de weg naar Rome, maar wordt het daar een slechter concept door? Het probleem wat ik bloot bedoelde te leggen met de traditionele template engines is dat PHP'ers daardoor alsnog een ratjetoe van code maken met alles door elkaar (database, logica, etc) om vervolgens alleen voor het tonen een template engine te gebruiken. MVC is absoluut "in", in de betekenis dat het steeds meer gebruikt wordt en je er (imo) nettere code door krijgt die beter te begrijpen is voor derden (convention over configuration enzo). | ||||||
WyriHaximus | donderdag 28 februari 2008 @ 13:14 | |||||
quote:Idd. Alleen mis ik wat dingen, mogelijkheden en opties vandaar dat ik er een eigen systeem voor ga bouwen om dat af te handelen ![]() | ||||||
CraZaay | donderdag 28 februari 2008 @ 13:20 | |||||
Ah, interessant. Zoals welke opties? Ben niet nieuwsgierig ![]() | ||||||
super-muffin | donderdag 28 februari 2008 @ 13:47 | |||||
quote:het is MVC, Model View Controller, en het is wat anders dan een framework waar mee jij het verward. Het is een design pattern. ![]() Ik gebruik ook een MVC voor een project waar ik mee bezig ben, en ik heb alle code van A - Z zelf geschreven. Frameworks als CakePHP en CodeIgniter zijn frameworks gebaseerd op het MVC pattern. | ||||||
Farenji | donderdag 28 februari 2008 @ 14:26 | |||||
quote:Ik heb niet gezegd dat MVC een slecht concept is, integendeel, ik ben een grote fan van MVC. Maar wat is Smarty anders dan een template engine? quote:Tja, ook als je een framework zoals cake gebruikt kan je er een ranzig onbegrijpelijk teringzooitje van maken. Je hebt ook wat ervaring nodig om je applicatie goed te kunnen ontwerpen, onafhankelijk van wat voor taal, framework, design model of techniek je ook gebruikt. Ik heb in het verleden met praktisch dezelfde software die ik nu nog wel gebruik, ook dingen gemaakt waarvan de tranen nu in mijn onderbroek springen. Dingen als MVC ga je pas echt gebruiken als je de nadelen ervaart van een niet goed ontworpen applicatie - als je een ratjetoe met alles door elkaar moet onderhouden, debuggen of uitbreiden zie je het belang en de logica van iets als MVC vanzelf wel in. | ||||||
CraZaay | donderdag 28 februari 2008 @ 14:59 | |||||
quote:Niets, dat is precies wat ik bedoelde. Het is enkel een template engine die je alsnog een ranzige structuur toestaat. quote:Dat ben ik met je eens, al vind ik wel dat een framework gebruiken er iig voor zorgt dat de conventies gevolgd worden en het (hopelijk) allemaal minder ranzig wordt ![]() | ||||||
WyriHaximus | donderdag 28 februari 2008 @ 15:22 | |||||
quote:Toch niet? ![]() | ||||||
Farenji | donderdag 28 februari 2008 @ 16:26 | |||||
quote:Ik heb ook wel eens engines gebruikt waar je alleen variabeles in kwijt kan. Dan blijven je templates lekker schoon en begrijpelijk (fijn voor de grafici ![]() ![]() | ||||||
super-muffin | zaterdag 1 maart 2008 @ 20:09 | |||||
Hoe kan ik RGB waardes omrekenen naar HEX? ![]() | ||||||
Geqxon | zaterdag 1 maart 2008 @ 20:15 | |||||
quote: Een beetje creatief zijn met base_convert. Of dechex. ![]() | ||||||
Arjan321 | zaterdag 1 maart 2008 @ 20:15 | |||||
bin2hex? | ||||||
Geqxon | zaterdag 1 maart 2008 @ 20:17 | |||||
RGB is toch 0-255 0-255 0-255? Decimaal dus? | ||||||
broodmonkeh | zaterdag 1 maart 2008 @ 20:29 | |||||
Korte vraag , jullie weten vast het antwoord wel:
Krijgt als output: <a href='&p=2'>. Als ik $_SERVER['PHP-SELF'] bijv. echo dan krijg ik: www.pagina.nl/index.php?blaat=blaat . Hoe kan het dat ie hem niet weergeeft bij mijn link? | ||||||
Thomass | zaterdag 1 maart 2008 @ 20:33 | |||||
quote:RGB = drie getallen, niets meer en niets minder. En of je de waarden nou opschrijft als 255, 0xFF of als 0377 het blijven gewoon drie getallen tussen de 0 en de 255. | ||||||
Thomass | zaterdag 1 maart 2008 @ 20:34 | |||||
quote:In je code staat PHP_SELF en in wat je eronder schrijft PHP-SELF Ook gebruik je in je code " en in wat je eronder schrijft ' probeer is $_SERVER['PHP_SELF'], zou moeten werken | ||||||
broodmonkeh | zaterdag 1 maart 2008 @ 21:06 | |||||
quote:Ik ga maar is slapen ![]() | ||||||
Qunix | zondag 2 maart 2008 @ 03:16 | |||||
edit [ Bericht 77% gewijzigd door Qunix op 02-03-2008 03:28:14 ] | ||||||
Geqxon | zondag 2 maart 2008 @ 03:21 | |||||
mod_rewrite. Of multiviews. Google er maar eens op voor tutorials. ![]() | ||||||
Chandler | zondag 2 maart 2008 @ 11:58 | |||||
Vraagje: hoe bereken je snel de datums van: gisteren, huidige week, vorige week, laatste 2 weken, huidige maand, laatste maand, laatste kwartaal en laatste jaar? Ik heb al gezocht naar een logische en praktische manier maar kwam helaas met lappen code te zitten. Liefst zie ik het als time maar dan zonder berekende uren, minuten en seconden. Iemand een idee? en dan nog een vraag, ik heb nu een database formaat met apparte velden voor jaar, maand, dag, dagv/dweek. maar vraag mij af of ik dit met een gewone datetime ook snel kan uitlezen? bv uit 2008-01-05 welke dag v/d week het is of alles uit week 4 uilezen ![]() [ Bericht 30% gewijzigd door Chandler op 02-03-2008 12:48:40 ] | ||||||
Geqxon | zondag 2 maart 2008 @ 13:24 | |||||
http://nl2.php.net/manual/en/function.strtotime.php ?
| ||||||
saban | zondag 2 maart 2008 @ 13:30 | |||||
quote:Handig functie ![]() | ||||||
Chandler | zondag 2 maart 2008 @ 14:29 | |||||
zeer handig geqxon ![]() | ||||||
warezguy05 | dinsdag 4 maart 2008 @ 19:22 | |||||
ik heb een probleempje met het volgende. onderstaande code moet ervoor zorgen dat, elke keer wanneer een bezoeker een bepaalde pagina opent, er 3 random foto's getoond worden.
het werkt op zich prima..maar op één punt gaat het scriptje de mist in: wanneer bij het random selecteren van de foto's toevallig het element met key 0 uit de array $images geselecteerd wordt, en daarna wordt gecontroleerd of deze foto/dit element al een keer geselecteerd is, dan beschouwt hij deze specifieke foto als 'reeds geselecteerd'. alleen als element met key 0 geselecteerd wordt als foto 3 dan wordt hij wel zonder problemen getoond. weet iemand waar het foutje zit? ik kom er zelf niet uit ![]() [ Bericht 4% gewijzigd door warezguy05 op 04-03-2008 19:29:03 ] | ||||||
ralfie | dinsdag 4 maart 2008 @ 20:14 | |||||
je doet echt veel te moeilijk, php heeft een speciale functie voor random acties op arrays, bijv
| ||||||
warezguy05 | dinsdag 4 maart 2008 @ 20:24 | |||||
quote:ah kijk..dat wist ik als beginner nog niet. maar het werkt fantastisch dus bedankt! ![]() | ||||||
Likkende_Lassie | dinsdag 4 maart 2008 @ 20:40 | |||||
Ralfie, waarom echo " " doen en niet echo ' ' ? ![]() | ||||||
Geqxon | dinsdag 4 maart 2008 @ 21:06 | |||||
quote:Persoonlijke voorkeur? Multiline? Snelheid? Parsen van variabelen? ![]() | ||||||
Likkende_Lassie | dinsdag 4 maart 2008 @ 21:10 | |||||
Ik zie vaak dat mensen een dubbele quote gebruiken, maar vervolgens in de hele HTML slashes moeten gebruiken, er onhandig lijkt me toch?? | ||||||
Geqxon | dinsdag 4 maart 2008 @ 21:30 | |||||
quote:Het mooiste is nog altijd een sprintf in combinatie met single-quotes. ![]() | ||||||
Likkende_Lassie | dinsdag 4 maart 2008 @ 21:42 | |||||
Ook dat heb ik vaak gezien, maar nooit gebruikt, terwijl ik al een poosje script, misschien eens handig voor me om naar te kijken! Maar zit er nog verschil in een enkele of een dubble quote, behalve dan dat je direct een $string dr in kan zetten? Dat los ik gewoon op door bv.. echo 'blablabla '.$string.' blablabla'; ![]() | ||||||
Farenji | dinsdag 4 maart 2008 @ 21:45 | |||||
Enkele quotes is sneller, omdat die niet geparsed hoeven te worden. | ||||||
Geqxon | dinsdag 4 maart 2008 @ 21:54 | |||||
Direct een variabele in een string vind ik imho behoorlijk bah.
Als het dan toch moet, vind ik dit het netste. | ||||||
Likkende_Lassie | dinsdag 4 maart 2008 @ 21:56 | |||||
quote:Waarom zou iemand het eigenlijk zo willen? Kan me ff niet zo snel een reden bedenken.... Farenji, logische reden ja ![]() | ||||||
Geqxon | dinsdag 4 maart 2008 @ 22:01 | |||||
quote:Zo dat ik de statische HTML en de dynamische variabelen in een enkel oogopslag kan onderscheiden. Daarnaast heb je geen ranzige constructies als het aan elkaar plakken van strings (nogmaals : mijn mening), en kun je ook data 'parsen'. Als ik geen %s maar %d had gedaan, dan zou op die plek enkel en alleen een integer kunnen staan. Makkelijk bij bijvoorbeeld 'index.php?id=%d'. ![]() | ||||||
Geqxon | dinsdag 4 maart 2008 @ 22:03 | |||||
Een voorbeeld van hoe ik op deze wijze een query netjes kan maken:
| ||||||
Thomass | dinsdag 4 maart 2008 @ 22:32 | |||||
quote:Alsof dat ook maar iets uitmaakt, het feit dat je gewoon variabelen tussen tekst door kan typen is toch geweldig handig? Een beetje editor zorgt dan ook gelijk voor normale highlighting zodat het goed opvalt.. | ||||||
Likkende_Lassie | dinsdag 4 maart 2008 @ 22:33 | |||||
ok direct een stuk veiliger dus.. ? Dit is trouwens hoe ik al mn querys check, veilig volgens jullie?
| ||||||
Likkende_Lassie | dinsdag 4 maart 2008 @ 22:34 | |||||
quote:Ja dat is wel handig, maar ik zelf zou het niet doen als ik een document met veel html zou hebben... | ||||||
CraZaay | dinsdag 4 maart 2008 @ 22:49 | |||||
quote:Voor het codevoorbeeld dat je geeft zijn nou precies de dubbele quotes bedoeld. | ||||||
CraZaay | dinsdag 4 maart 2008 @ 22:51 | |||||
quote:Dat maakt iets uit ja. En daarnaast is het gewoon netter. Ieder bedrijf wat ik ken heeft in hun coding standard opgenomen hoe je enkele en dubbele quotes moet gebruiken, en da's dus altijd enkele quotes tenzij er een variabele (e.d.) in moet die geparsed moet worden. | ||||||
Geqxon | dinsdag 4 maart 2008 @ 22:56 | |||||
quote:Voor een SQL query kan ik "mysql_real_escape_string" aanraden. | ||||||
Geqxon | dinsdag 4 maart 2008 @ 23:01 | |||||
Verder:
quote:Doe mij maar:
| ||||||
Likkende_Lassie | dinsdag 4 maart 2008 @ 23:04 | |||||
line 5 ? ![]() Doe mij maar:
![]() | ||||||
Geqxon | dinsdag 4 maart 2008 @ 23:05 | |||||
quote:Ik reageerde op: quote: | ||||||
CraZaay | dinsdag 4 maart 2008 @ 23:15 | |||||
Doe het maar gewoon hoe het hoort:
| ||||||
Geqxon | dinsdag 4 maart 2008 @ 23:19 | |||||
quote:En wat als je je systeem ooit multilingual wilt maken? ![]() | ||||||
Light | dinsdag 4 maart 2008 @ 23:32 | |||||
quote:Het typt ook sneller, omdat je geen Shift nodig hebt ![]() | ||||||
CraZaay | dinsdag 4 maart 2008 @ 23:34 | |||||
quote:Dan moet je voordat je gaat bouwen eens goed nadenken en alleen sprintf() gebruiken waar het nodig is. Ik doelde hier vooral op het gebruik van single en double quotes en de error die jij kreeg, omdat je geen gebruik maakte van {}. | ||||||
Geqxon | woensdag 5 maart 2008 @ 00:05 | |||||
Ieder zo zijn ding. Ik zweer bij printf's en sprintf's. Heerlijk dat ik HTML structuur en data gescheiden kan houden, en ook dat ik geen redundantie heb als ik met placeholders werk. Heeft er mogelijk ook mee te maken dat ik veel in C zit de laatste tijd. | ||||||
CraZaay | woensdag 5 maart 2008 @ 00:14 | |||||
quote:HTML hoort überhaupt niet in een PHP string thuis, daar heb je templates voor. Hoe je de veriabelen voor in de templates vult bijvoorbeeld, daar ging het om. Daarnaast is het te pas en te onpas gebruiken van sprintf() nou ook niet direct efficiënter om te parsen dan een simpele string afaik. Maar idd, to each his own ![]() | ||||||
SuperRembo | woensdag 5 maart 2008 @ 08:48 | |||||
quote:Voor een SQL query kan ik "PDO" aanraden. | ||||||
Likkende_Lassie | woensdag 5 maart 2008 @ 20:50 | |||||
ziet dr goed uit, het gebruik hiervan maakt t in 1 keer helemaal veilig ? Wat vind je verder van mijn bovenstaande functie ? | ||||||
Farenji | woensdag 5 maart 2008 @ 21:32 | |||||
quote:Ik zou hem nooit gebruiken als ik jou was. Kijk eens goed naar wat eringaat en eruitkomt. Dat is compleet inconsequent: een 0 of de string "0" geeft NULL, een boolean false ook maar een boolean true geeft "1". Dat gaat geheid problemen opleveren; meestal is een 0 gewoon 0 en wil je absoluut niet dat die als NULL de database ingaat. En WTF doet die die() daar? ![]() | ||||||
CraZaay | woensdag 5 maart 2008 @ 21:45 | |||||
Waarom zou je nooit een NULL value in je database willen stoppen (even los van deze functie)? | ||||||
Farenji | woensdag 5 maart 2008 @ 22:27 | |||||
quote:Er zijn genoeg redenen om een NULL in je db te stoppen, maar NULL is heel wat anders dan 0 of "0". | ||||||
CraZaay | woensdag 5 maart 2008 @ 22:37 | |||||
quote:Doh ![]() | ||||||
Likkende_Lassie | woensdag 5 maart 2008 @ 23:21 | |||||
foutje van die die(); daar was ik nog wat aan t testen.... Farenji, hoe zou jij hem bouwen? NULL gebruik ik eigenlijk bij elk veld in de database....altijd handig ![]() | ||||||
Likkende_Lassie | donderdag 6 maart 2008 @ 00:23 | |||||
Hee om nog even terug te komen op de functie printf, wat als je nou 2 keer een waarde wilt herhalen, hoe doe je dat? Moet je dan een nieuwe printf starten? | ||||||
Geqxon | donderdag 6 maart 2008 @ 00:26 | |||||
quote:Je kunt het doen als:
of met placeholders:
| ||||||
Likkende_Lassie | donderdag 6 maart 2008 @ 00:40 | |||||
kijk dan zou met placeholders al weer iets aantrekkelijker vinden ![]() | ||||||
WyriHaximus | donderdag 6 maart 2008 @ 08:13 | |||||
quote:Placeholders zijn zeker als je multilang gaat werken erg aantrekkelijk ![]() | ||||||
Farenji | donderdag 6 maart 2008 @ 09:18 | |||||
quote:Niet. Ik gebruik daar altijd placeholders voor. Die functie is compleet overbodig.Maar als je het toch handmatig wil doen: het enige wat van belang is dat je quotes escape't. En dat is precies wat mysql_real_escape doet. Al dat gegoochel met uitzoeken van type is niet nodig, als je een variabele als string behandelt dan zorgt php zelf wel voor de conversie. Niet dat dat altijd even consequent gebeurt maar dat is een ander verhaal. quote:Lang niet altijd. Soms wil je wel eens een left join doen, en wil je onderscheid kunnen maken tussen records die niet matchen en records die wel matchen maar waar velden gewoon leeg zijn. Als je dan NULL in je db hebt staan voor een leeg veld kun je dat onderscheid niet meer maken en ben je de sjaak. | ||||||
Likkende_Lassie | donderdag 6 maart 2008 @ 14:54 | |||||
Waarom zou je onderscheid willen maken met een leeg veld of een veld met NULL... ? | ||||||
JortK | donderdag 6 maart 2008 @ 14:57 | |||||
quote:Ik heb dezelfde vraag ![]() | ||||||
SuperRembo | donderdag 6 maart 2008 @ 15:38 | |||||
quote:Als je een varchar of text veld leeg wil laten dan kan je er meestal wel een lege string in zetten, maar bij andere veld types heb je niet altijd een logische default waarde. Een bedrag van 0.00 hoeft niet overeen te komen met een niet ingevuld bedrag. Verder kan het nodig zijn als een veld onderdeel is van een foreign key. | ||||||
qu63 | donderdag 6 maart 2008 @ 16:58 | |||||
Hoe kan ik alles printen wat de browser meestuurd? kan je meer krijgen dan met
? dit heb ik namelijk geprobeerd, maar er komt niks naar boven waar ik mijn locatie uit kan vissen.. iemand tips? Ik probeer namelijk een beetje te begrijpen hoe 9292ov.nl weet waar ik ben als ik met mn mobiel de site bekijk :+ | ||||||
CraZaay | donderdag 6 maart 2008 @ 17:03 | |||||
quote:Door je IP te matchen in 1 of andere database. | ||||||
JortK | donderdag 6 maart 2008 @ 17:08 | |||||
IP2location ![]() | ||||||
qu63 | donderdag 6 maart 2008 @ 17:09 | |||||
quote:Grappig dat ik steeds een wisselend ip-adres heb als ik met mn mobiel online kom ![]() of zorgt knp/hi er voor dat het adres wat ik krijg in die buurt 'geregistreerd' is ofzo? anders toch maar eens testen als ik weer eens in de trein of zuto zit en een stuk ga rijden ![]() | ||||||
qu63 | donderdag 6 maart 2008 @ 17:19 | |||||
de 2 links in dit topic geven Amersfoort en Dussun (Noord-Brabant) aan. Mijn huidige locatie is Bussum, Noord-Holland. de eerste zit er dus hemelsbreed 35km naast, en van die 2e wil ik he tniet eens weten ![]() ip2location zal het dus niet zijn ![]() | ||||||
qu63 | donderdag 6 maart 2008 @ 17:23 | |||||
en via wap.mobiel.9292ov.nl geeft ie aan dat ik vanaf mijn huidige locatie naar mijn postcode kan lopen, en het ov dus niet nodig heb. Dus duidelijk geen ip2location, of ze hebben een veeeeeel uitgebreidere database | ||||||
CraZaay | donderdag 6 maart 2008 @ 17:24 | |||||
Ah, via je mobiel. Dan zullen ze het Cell ID gebruiken neem ik aan van de zendmasten in je buurt. Zoals de "locate me" functie op de iPhone. Geen idee hoe je script die uit kan lezen, maar er zijn databases te vinden van de Cell ID's in Nederland (geen idee hoe dekkend die zijn, wellicht dat 9292OV betaalt voor die data). | ||||||
Geqxon | donderdag 6 maart 2008 @ 18:31 | |||||
Dat is waarschijnlijk iets als Navizon. Maar hoe wap.mobiel.9292ov.nl aan je CellID komt?? | ||||||
qu63 | donderdag 6 maart 2008 @ 18:40 | |||||
quote:precies, ik hoopte dus uit te kunnen vinden hoe mn CellID meegstuurd wordt, maar dmv print_r($_server) lukt het dus niet.. | ||||||
qu63 | donderdag 6 maart 2008 @ 18:44 | |||||
quote:Dat stond ook in mn vraag ja ![]() | ||||||
PiRANiA | donderdag 6 maart 2008 @ 19:06 | |||||
http://www.google.com/gmm/mylocation.html Google doet het ook. bij de pagina staat een filmpje hoe ze het doen ![]() | ||||||
qu63 | donderdag 6 maart 2008 @ 19:21 | |||||
quote:ik weet wel hoe het werkt, alleen wil ik weten hoe en wanneer zn mn cell-id 'uitlezen'. Mijn telefoon moet het toch op de een of andere manier meezenden ![]() | ||||||
Chandler | donderdag 6 maart 2008 @ 20:30 | |||||
quote:Lekker prijzig ![]() | ||||||
__Saviour__ | donderdag 6 maart 2008 @ 21:42 | |||||
Ik wil dynamische tekst over een plaatje kunnen zetten, zoals sommigen bijv. een counter hebben in hun avatar. Maar dan dat ik ook grootte en font e.d. kan instellen. Is daar ergens een mooi duidelijk voorbeeldscript of tutorial van? | ||||||
PiRANiA | donderdag 6 maart 2008 @ 21:45 | |||||
quote:GD is wat je zoekt... Een tutorial is vast wel te vinden ![]() | ||||||
PiRANiA | donderdag 6 maart 2008 @ 21:45 | |||||
http://www.sitemasters.be/?pagina=tutorials/tutorials&cat=4&id=260 | ||||||
__Saviour__ | donderdag 6 maart 2008 @ 21:59 | |||||
ah, daarmee gaat het wel lukken. Bedankt | ||||||
h.henkie | vrijdag 7 maart 2008 @ 00:32 | |||||
Misschien een rare vraag. Maar ik heb de volgende code
Nu word de data vanaf de bovenkant tot de onderkant van de database in gelezen en weergegeven. Maar ik wil eigenlijk dat het andersom word gedaan. Dus de laatste invoer als eerste weergeven en de eerste invoer als laatste word weergegeven. Hoe doe ik dat? | ||||||
Geqxon | vrijdag 7 maart 2008 @ 00:35 | |||||
| ||||||
h.henkie | vrijdag 7 maart 2008 @ 01:00 | |||||
quote:En dank je wel. ![]() | ||||||
commentator | vrijdag 7 maart 2008 @ 20:12 | |||||
ik heb een klein probleempje en hoop dat iemand hier de oplossing heeft aangezien ik t ff niet gevonden krijg ik heb een tabel nummer type 002234 bocht 013457 staaf 145976 driehoek 145976 staaf 145976 wit enz nu is de vraag hoe krijg ik de nummers eruit die zowel van het type wit als het type staaf zijn? | ||||||
broodmonkeh | vrijdag 7 maart 2008 @ 20:25 | |||||
SELECT * FROM tabel WHERE type = 'wit' OR type = 'staaf' zoiets? | ||||||
SuperRembo | vrijdag 7 maart 2008 @ 20:41 | |||||
Je hebt n voorwaarden waaraan moet worden voldaan. Je haalt alle regels op die aan een van de voorwaarden voldoen. Dan groepeer je op id en hou je alleen de id's over die aan precies n voorwaarden voldoen.
| ||||||
SuperRembo | vrijdag 7 maart 2008 @ 20:45 | |||||
quote:Dan krijg je ook de regels die alleen aan 'wit' of alleen aan 'staaf' voldoen. | ||||||
commentator | vrijdag 7 maart 2008 @ 20:48 | |||||
quote:dat is niet van en maar van of quote:maar dan nog is het niet zo dat er altijd drie van zijn dat kan ook 10 dingen bevatten en dan zoek ik toch alleen van de twee dingen uit het voorbeeld [ Bericht 48% gewijzigd door commentator op 07-03-2008 21:10:30 ] | ||||||
SuperRembo | vrijdag 7 maart 2008 @ 22:36 | |||||
quote:Hoe bedoel je dat? Moet het precies voldoen aan de voorwaarden of tenminste aan de voorwaarden? Als een item de types 'wit', 'staaf' en 'driehoek' bevat zoals nummer 145976 uit je voorbeeld, als je dan zoekt op 'wit' en 'staaf', wil je dan nummer 145976 terugkrijgen of niet? | ||||||
commentator | vrijdag 7 maart 2008 @ 23:32 | |||||
idd, als ik zoek op wit en staaf dan wil ik dat nummer terug krijgen (en maar 1keer dus) ook al komt het nummer met weet ik wat voor types nog voor | ||||||
SuperRembo | zaterdag 8 maart 2008 @ 00:45 | |||||
quote:In dat geval kan je die query die ik gaf gebruiken. | ||||||
GioStyle | maandag 10 maart 2008 @ 20:03 | |||||
Ik heb mijn site iets aangepast en verder ingevuld. Het principe werkt gewoon alleen ik krijg 1 foutmelding. quote:Het gaat om het volgende stukje code:
Ik snap dat hij die code aangeeft omdat die pagina nog niet in de array voorkomt. Maar hoe kan ik die fout mooi omzeilen? :) | ||||||
Chandler | maandag 10 maart 2008 @ 20:22 | |||||
Ik heb een klein probleempje maar kan het niet vinden, zit er al 20 minuten naar te kijken maar zie het niet.
Bovenstaande stukje heb ik nu gecommend met /* en */ maar als ik deze verwijder krijg ik de volgende fout Parse error: syntax error, unexpected '}' in D:\www\Bedrijf\www.ipcounter.nl\stat_counters.php on line 232 en regel 232 is de laatste regel in het voorbeeld.. Iemand een idee? | ||||||
mcDavid | maandag 10 maart 2008 @ 20:32 | |||||
quote:Dan help ik je hier maar gelijk ![]() Ik heb nog niet echt php-ervaring, maar lees dit ff: http://www.w3schools.com/php/php_switch.asp Zoals ik het begrijp zou hij als een pagina niet bestaat gewoon de default pagina moeten weergeven. Bestaat die wel? | ||||||
super-muffin | maandag 10 maart 2008 @ 20:41 | |||||
quote:Check je haakjes eens. En heb je wel eens gehoord van else if()? ;)
| ||||||
SuperRembo | maandag 10 maart 2008 @ 21:06 | |||||
quote:Wat doen die backticks daar? ![]() ![]() | ||||||
qu63 | maandag 10 maart 2008 @ 21:38 | |||||
quote:(n)iemand? of is dit een van de grote geheimen op het internet? ![]() | ||||||
Geqxon | maandag 10 maart 2008 @ 21:58 | |||||
quote: sssssst. | ||||||
qu63 | maandag 10 maart 2008 @ 22:06 | |||||
quote:dus moet ik alleen zelf nog uitvinden hoe ik $data juist gevuld krijg? ik weet wel dat er proggies voor zijn die op mn telefoon draaien, maar niet of dat ook via php kan.. | ||||||
Light | maandag 10 maart 2008 @ 23:19 | |||||
quote:
Er zijn dan ook nog andere opties om het overzichtelijker te houden, maar da's voor later. | ||||||
droomkoningin | maandag 10 maart 2008 @ 23:43 | |||||
ik heb een contactformulier, het draait op meerdere websites zonder problemen... nu heb ik het geplaatst op www.mijndomeinnaam.nl bij een nieuwe hoster en het werkt niet meer zoals het hoort ![]() als ik de ontvanger instel als bijv: info@mijndomeinnaam.nl dan wordt het formulier netjes verstuurd naar dit adres. maar als ik de ontvanger instel als: info@anderedomeinnaam.nl dan komt de mail niet aan... ik krijg ook geen foutmelding als ik hetzelfde formulier gebruik op een website bij een andere hoster werkt het prima, dus met het script zelf zal niks mis zijn. heeft iemand een idee waar dit aan kan liggen? van de helpdesk van de nieuwe hoster ben ik tot nu toe nog niet wijzer geworden helaas ![]() | ||||||
mcDavid | dinsdag 11 maart 2008 @ 00:19 | |||||
Waarschijnlijk draait je host PHP safe mode. Voor zover ik het begrijp gaat dat (ivm veiligheidsoverwegingen) moeilijk doen als je script andere domeinen probeert te benaderen. Maar meer weet ik er ook niet van, dus google het eens of wacht op iemand die er meer vanaf weet | ||||||
saban | dinsdag 11 maart 2008 @ 00:24 | |||||
Zolang de afzender domein hetzelfde is als de domein waar het op draait zou het moeten werken. Lijkt me erg stug dat je niet mag mailen naar andere domeinen ![]() | ||||||
saban | dinsdag 11 maart 2008 @ 00:29 | |||||
quote:Waarom heb je na default nog een break? Waarom doe je geen include 'file.php' maar ('file.php') ? | ||||||
Thomass | dinsdag 11 maart 2008 @ 01:46 | |||||
quote:
is dit misschien iets voor je? :) | ||||||
Chandler | dinsdag 11 maart 2008 @ 07:38 | |||||
quote:Ik was nog niet klaar met coden hé ![]() ![]() quote: ![]() ![]() | ||||||
WyriHaximus | dinsdag 11 maart 2008 @ 08:30 | |||||
quote:Oe interesant straks maar eens goed naar kijken ![]() | ||||||
CraZaay | dinsdag 11 maart 2008 @ 08:45 | |||||
quote:Dan zou ik toch voor de optie van Light gaan ipv deze gevaarlijke methode. Een bezoeker kan zo dus ieder .php bestand includen, zowel op het file system als remote. | ||||||
CraZaay | dinsdag 11 maart 2008 @ 08:48 | |||||
quote:Omdat 'ie dat overzichtelijker vindt denk ik? In de meeste coding standards is het gangbaar om haakjes te gebruiken voor functies. | ||||||
Farenji | dinsdag 11 maart 2008 @ 09:18 | |||||
quote:Heb je geen andere smtp host die je kan gebruiken? Misschien eentje van je hoster? Je gebruikt nu waarschijnlijk localhost en die staat blijkbaar ingesteld dat die geen mail voor jou naar buiten relay't. | ||||||
Light | dinsdag 11 maart 2008 @ 09:32 | |||||
quote:Er zijn meer opties natuurlijk, en veilig combineren kan ook.
| ||||||
CraZaay | dinsdag 11 maart 2008 @ 11:28 | |||||
quote:Daar zeg ik ook niets van, ik zei alleen dat het ene codevoorbeeld wat gewoon include wat een user wil onveilig is en niet op die manier klakkeloos overgenomen moet worden. | ||||||
Thomass | dinsdag 11 maart 2008 @ 12:50 | |||||
quote:Dan moeten users eerst weten wat de namen en paden zijn van de php bestanden, daarbuiten gebruik ik dit zelf ook maar zet ik er eerst een directory voor waarin mijn php bestanden staan, die directory weet de user niet en krijgen ze ook niet te weten en van die directory kunnen ze tevens geen index opvragen. Overigens denk ik dat degene die dit vroeg een 'dummy' is op het gebied van php etc. en zal het dus écht niet veel uitmaken voor wat betreft security op zijn website | ||||||
Farenji | dinsdag 11 maart 2008 @ 13:01 | |||||
quote:Ook voor dummies is security belangrijk. Security is niet een leuke optie voor geavanceerde programmeurs, maar een vereiste voor alle programmeurs. Op het moment dat je publiekelijk toegankelijke webapplicaties maakt moeten die veilig zijn, net zoals je een veilige auto moet hebben op het moment dat je je op de snelweg begeeft. En hoe eerder je dat leert, hoe beter. Een belangrijke grondregel: alle userinput is *per definitie nooit te vertrouwen*. | ||||||
CraZaay | dinsdag 11 maart 2008 @ 13:30 | |||||
quote:"Security through obscurity" is geen security. Jij zet er wellicht een dir voor, maar je voorbeeld zou prima gebruikt kunnen worden om een bestand op een externe server te includen, etc. Dat wil je liever niet ivm Cross Site Scripting bijvoorbeeld. Ik kan dan op mijn site wat HTML plempen, zorgen dat een user naar een bepaalde URL gaat waar ik die HTML include op jouw manier, vervolgens het JS cookie uitlezen en met een form posten naar mijn site. En da's slechts één mogelijke toepassing ![]() | ||||||
Tarabass | dinsdag 11 maart 2008 @ 13:55 | |||||
Ik zit met een probleempje. Ik ben bezig met een blog-pagina waar op de 'frontpage' het begin van het blogitem weergegeven wordt (dus bijv. max 100 karakters) en waarbij het hele bericht te lezen is via een link 'Lees verder', die aan het einde van de 100 karakters wordt weergegeven. Nu heb ik het voor elkaar om dus de gehele tekst te strippen op 100 karakters en na honderd karakters de link 'Lees verder' neer te zetten. Maar daarbij worden dus woorden in het midden afgekapt, wat erg lelijk is. Hoe kan ik er voor zorgen dat de string afgekapt wordt op de laatste spatie voor de max van 100 karakters en die vervangen woord door drie puntjes, zodat er altijd hele woorden worden weergegeven? | ||||||
qu63 | dinsdag 11 maart 2008 @ 14:09 | |||||
quote:$bericht = stripslashes($row['Inhoud1'])." ".stripslashes($row['Inhoud2'])." ".stripslashes($row['Inhoud3']); $bericht = strip_tags($bericht); $excerpt = preg_replace('#^((\w+\W*){0,15}).*?$#s', '\1', $bericht); echo " <td class=\"ber_\">".$excerpt."... <a href=\"message.php?id=".$row['ID']."\">Lees verder!</a></td>\n"; Zo heb ik het in mijn geval gedaan ![]() eerste 15 woorden dus | ||||||
mcDavid | dinsdag 11 maart 2008 @ 14:26 | |||||
quote:volgens mij kun je hier wel wat mee: http://www.w3schools.com/php/func_string_strrpos.asp Als je die vanaf positie 100 laat zoeken naar een spatie, geeft 'ie de positie waar je je bericht af moet kappen. | ||||||
CraZaay | dinsdag 11 maart 2008 @ 15:06 | |||||
quote:En hoe zorg je ervoor dat die 15 woorden geen 300 karakters bevatten? ![]() | ||||||
qu63 | dinsdag 11 maart 2008 @ 15:17 | |||||
quote:Ik tik(te) de berichten zelf ![]() | ||||||
Thomass | dinsdag 11 maart 2008 @ 15:25 | |||||
quote:Hoe dan in dit voorbeeld:
| ||||||
CraZaay | dinsdag 11 maart 2008 @ 15:56 | |||||
Da's wel ff iets anders dan je eerdere codevoorbeeld he ![]() ![]() | ||||||
Farenji | dinsdag 11 maart 2008 @ 16:02 | |||||
quote:Dan komt er zometeen een slimmerik die script.php?p=../../../../andere/map/geheimscript.php opvraagt. Of stel je eens voor dat het script zelf op deze manier wordt geinclude... ik weet eigenlijk niet hoe php hier mee omgaat maar het kan best dat dit je server (tijdelijk) op zijn bek trekt. Je kan om dit te voorkomen beter ook checken op bijv dat er alleen letters en cijfers in de bestandsnaam mogen zitten (bijv met een regular expression). Zo niet, fallback naar "home". | ||||||
Thomass | dinsdag 11 maart 2008 @ 16:02 | |||||
quote:Mja ok, op deze manier doe ik het (ongeveer), sowieso kun je volgens mij geen externe dingen includen en al helemaal niks buiten public_html (of heb ik het fout hier?), en wat er aan php geinclude kan worden kunnen ze ook op de normale manier bij, door het pad in te typen in de url balk enzo.. Maargoed wellicht heb je gelijk (tis alleen zoveel gedoe als je nieuwe paginas maakt ![]() | ||||||
Tarabass | dinsdag 11 maart 2008 @ 16:43 | |||||
quote:Bedankt voor je input, maar hier heb ik weinig aan. Bovendien vind ik je code nogal langdradig, en zou je misschien zoiets moeten proberen, en dan met een countertje of whatever als $no == 15 is:
Wat natuurlijk gewoon meedenken is want ik ben ook maar een naab ;) | ||||||
CraZaay | dinsdag 11 maart 2008 @ 16:53 | |||||
quote:Ja, daar ga je redelijk de mist in ![]() PHP kan gewoon overal komen waar je rechten hebt op het filesystem, dus afhankelijk van de server config kun je meestal ook hoger komen dan public_html. Daarnaast kun je met include ook gewoon pagina's laden van http://www.example.com/ bijvoorbeeld. Zoals ik al eerder zei kun je zo dus exploits krijgen, omdat je als je direct naar dat externe adres gaat niet met Javascript op jouwdomein.nl kunt komen, maar als je de JS include en draait op jouwdomein.nl dus wel ![]() | ||||||
Geqxon | dinsdag 11 maart 2008 @ 17:01 | |||||
Als je lui bent: Je kunt ook alle files in de directory waar het draaiende .PHP bestand staat scannen, en enkel die toelaten. Met bijvoorbeeld in_array of array_key_exists. | ||||||
Tarabass | dinsdag 11 maart 2008 @ 17:15 | |||||
quote:Bedankt voor je input. Ik heb even een snippet gemaakt, als het nog beter of korter kan hoor ik het graag natuurlijk. Ik zal de regel even met jullie delen:
![]() | ||||||
CraZaay | dinsdag 11 maart 2008 @ 17:28 | |||||
Niet getest, maar zou volgens mij ook moeten werken (jouw code snap ik niet eens, zoiets kun je echt beter over meerdere vars verspreiden als je over een maand nog wilt weten wat het deed).
Zoek de eerste spatie na 100 karakters en gebruik de positie daarvan -1 (anders krijg je een string incl. de spatie) als length binnen substr(). | ||||||
splendor | woensdag 12 maart 2008 @ 12:18 | |||||
Ik heb een aantal vragen mbt de taal instellen op een website. Als ik in php de headers overschrijf, moet ik dan Accept-language hebben of Content-language? De een is een respons en de ander een request header, maar vanuit waaruit bekeken dan? Doet de bezoeker van de site een aanvraag en is de php pagina die terug wordt gestuurd een respons? En verder heb ik de taal van de website ook nog in de meta tag gedefinieerd, moet het nog ergens anders? Doel van dit alles is dat ik een engels en nederlands gedeelte op mijn website heb ( www.site.nl/nl/ en www.site.nl/en/ ) en ik wil dat o.a. google het zo goed mogelijk indexeert. Nog meer tips zijn welkom! ![]() | ||||||
Geqxon | woensdag 12 maart 2008 @ 13:24 | |||||
"Accept-language" is de bezoeker die zegt zo van ... "Hey! Doe mij maar een Nederlandse pagina!", en "Content-language" is de server die een pagina afgeeft zo van "Hey! Dit is een Nederlandse pagina!". ![]() De taal in de meta-tag is makkelijk voor Google, evenals de taal in de HTML tag als je XHTML gebruikt. Maar ook daar kan de client gebruik van maken. | ||||||
CraZaay | woensdag 12 maart 2008 @ 13:30 | |||||
De accept-language is dus de request, en de content-language de respons ![]() | ||||||
splendor | woensdag 12 maart 2008 @ 13:41 | |||||
Okee bedankt, dan moet ik dus de content-language instellen. ![]() Ik gebruik geen xhtml, dus dan moet ik even kijken waar het lang= attribuut allemaal gebruikt mag worden van html4.01. Is het overigens niet zo dat de meta tag in principe overbodig wordt, wanneer je het al in de header vermeld? Want het is een http-equiv. Of geeft google meer prioriteit aan de meta dan aan de header? (in dit geval dan) | ||||||
Geqxon | woensdag 12 maart 2008 @ 13:58 | |||||
Lees anders Day 7: Identifying your language van A Dive Into Accessibility maar eens door, daar staat exact wat jij zoekt. ![]() |