Game on!quote:Op dinsdag 31 juli 2007 00:13 schreef wobbel het volgende:
Ik wil graag beginnen met PHP en Ajax...lijkt me wel lachen enzo
Nu ben ik op zoek naar een soort memoblok in Ajax, PHP en MySQL. Dus gewoon een text-area waar je wat typt en dan het dan gewoon opgeslagen wordt zonder dat ik op een submit knop hoef te drukkenLijkt me echt ideaal, want dan kan ik me browser afsluiten en later weer openen en dan staat het er gewoon weer (omdat het uit de DB wordt gehaald)
Ik zoek dus eigenlijk een klein kant en klaar script zodat ik beetje met Ajax kan knutselen
Voor online gebruik, of puur lokaal? De enige goed werkende manier om dit te doen is door elke keer als je een toets drukt het op te slaan, maar dat vreet enorm.quote:Op dinsdag 31 juli 2007 00:13 schreef wobbel het volgende:
Ik wil graag beginnen met PHP en Ajax...lijkt me wel lachen enzo
Nu ben ik op zoek naar een soort memoblok in Ajax, PHP en MySQL. Dus gewoon een text-area waar je wat typt en dan het dan gewoon opgeslagen wordt zonder dat ik op een submit knop hoef te drukkenLijkt me echt ideaal, want dan kan ik me browser afsluiten en later weer openen en dan staat het er gewoon weer (omdat het uit de DB wordt gehaald)
Ik zoek dus eigenlijk een klein kant en klaar script zodat ik beetje met Ajax kan knutselen
Bijna goedquote:Op dinsdag 31 juli 2007 01:20 schreef Geqxon het volgende:
[..]
Voor online gebruik, of puur lokaal? De enige goed werkende manier om dit te doen is door elke keer als je een toets drukt het op te slaan, maar dat vreet enorm.
Dan ben je alleen wel data kwijt als je te snel afsluit. Dan kun je net zo goed met een onblur werken.quote:Op dinsdag 31 juli 2007 07:51 schreef WyriHaximus het volgende:
[..]
Bijna goed. Je kunt er een vertraging van een seconde inbouwen na de laatste keypress voordat je de AJAX call maakt. Zo zit er altijd minstens een seconde tussen zodat het niet enorm vreet, maar word het wel vaak geupdate in je backend
.
Dan maak je er 1/4 seconde vanquote:Op dinsdag 31 juli 2007 08:19 schreef Geqxon het volgende:
[..]
Dan ben je alleen wel data kwijt als je te snel afsluit. Dan kun je net zo goed met een onblur werken..
Maar goed, zoals ik al zei: Dat is dus de enige goedwerkende manier. Als je het anders gaat doen is de kans groot dat je data kwijt bent, en de hele functie van de applicatie weg is.
quote:Op dinsdag 31 juli 2007 08:32 schreef Mordreth het volgende:
tvptje
Dat is inderdaad een goede, een timer die om de 250 ms kijkt of er iets veranderd is, en zo ja > Submit.quote:Op dinsdag 31 juli 2007 08:31 schreef WyriHaximus het volgende:
[..]
Dan maak je er 1/4 seconde van. Na het typen en maximaal 5 seconde tussen 2 save acties
. En misschien met indicatortje er bij van of het veilig is om af te sluiten
. De kans dat iemand binnen die 1/4 van een seconde weet af te sluiten is vrij klein
. Sowieso moet je je verbindingen gaan reguleren anders ga je een behoorlijke rotzooi aan nutteloze overhead krijgen aan AJAX calls die eingelijk direct al weer nutteloos worden doordat je direct er na een volgende toets indrukt en de volgende call alweer triggerd
. (Geloof me dat wil je niet
.)
Je kunt toch ook onunload gebruiken? Dan sla je alles op op het moment dat het window afgesloten wordt of de pagina verlaten wordt.quote:Op dinsdag 31 juli 2007 08:31 schreef WyriHaximus het volgende:
[..]
Dan maak je er 1/4 seconde van. Na het typen en maximaal 5 seconde tussen 2 save acties
. En misschien met indicatortje er bij van of het veilig is om af te sluiten
. De kans dat iemand binnen die 1/4 van een seconde weet af te sluiten is vrij klein
. Sowieso moet je je verbindingen gaan reguleren anders ga je een behoorlijke rotzooi aan nutteloze overhead krijgen aan AJAX calls die eingelijk direct al weer nutteloos worden doordat je direct er na een volgende toets indrukt en de volgende call alweer triggerd
. (Geloof me dat wil je niet
.)
Maar je kan er ook een server mee onderuit trekken als je niet uit kijkt.quote:Op dinsdag 31 juli 2007 09:37 schreef Geqxon het volgende:
Veel AJAX calls zijn overigens geen enkel probleem. Zelf kan in binnen een seconden of drie 50 calls afhandelen.
Yeah, het mooie daar van is dat je de server niet zwaar belastquote:Op dinsdag 31 juli 2007 09:37 schreef Geqxon het volgende:
[..]
Dat is inderdaad een goede, een timer die om de 250 ms kijkt of er iets veranderd is, en zo ja > Submit.
Het kan alleen, zoals SuperRembo als zegt, kan je er vrij gemakkelijk een server me onderuit halenquote:Op dinsdag 31 juli 2007 09:37 schreef Geqxon het volgende:
Veel AJAX calls zijn overigens geen enkel probleem. Zelf kan in binnen een seconden of drie 50 calls afhandelen. In mijn situatie: Je klikt op een vakje, in een array word een XML-object aangemaakt, je vraagt een PHP pagina op, die rommelt wat in de database, en vervolgens krijgt de user een XML bestand terug met de instructies die Javascript af moet handelen. In dit geval het blauw oplichten van het vakje. Voor de grap een javascript actie gemaakt die alle 50 vakjes in 1 keer veranderd, en na ongeveer 3 seconde waren ze allemaal opgelicht. Was wel grappig om te zien, dat ze allemaal op een rijtje van kleur switchte.
Ja dat kan ook maar dan moet je AJAX call wel snel genoeg zijnquote:Op dinsdag 31 juli 2007 10:00 schreef doka het volgende:
[..]
Je kunt toch ook onunload gebruiken? Dan sla je alles op op het moment dat het window afgesloten wordt of de pagina verlaten wordt.
quote:Op dinsdag 31 juli 2007 10:11 schreef SuperRembo het volgende:
[..]
Maar je kan er ook een server mee onderuit trekken als je niet uit kijkt.
Op het moment dat het document afgesloten wordt moet je een niet-synchrone call doen, dan wordt je document altijd opgeslagen. Dan hoef je zelfs in principe verder helemaal geen calls te doen tijdens het editten van de text. Hoewel je het voor de zekerheid beter wel kunt doen.quote:Op dinsdag 31 juli 2007 10:28 schreef WyriHaximus het volgende:
Ja dat kan ook maar dan moet je AJAX call wel snel genoeg zijn. Geeft je iig een stuk minder zekerheid dan met times outs zoals hier boven beschreven staat
.
Hmm werkt die ook nog op het moment dat de unload word getriggerd doordat je je browser afsluit?quote:Op dinsdag 31 juli 2007 10:38 schreef doka het volgende:
[..]
Op het moment dat het document afgesloten wordt moet je een niet-synchrone call doen, dan wordt je document altijd opgeslagen. Dan hoef je zelfs in principe verder helemaal geen calls te doen tijdens het editten van de text. Hoewel je het voor de zekerheid beter wel kunt doen.
Dat weet ik niet eigenlijk...quote:Op dinsdag 31 juli 2007 10:41 schreef WyriHaximus het volgende:
[..]
Hmm werkt die ook nog op het moment dat de unload word getriggerd doordat je je browser afsluit?
Ik heb er voor de grap een controller achter gehangen die een tekstbestand inleest. Als mijn hostingsprovider meewerkt zal ik hem uploaden.quote:Op dinsdag 31 juli 2007 10:41 schreef Geqxon het volgende:
Ik ben iets te ver doorgeschoten met mijn voorbeeld:
Download
Disclaimer: Het kan beter, sneller, anders, maar dit doet wat het moet doen.
En als je echt zekerheid wilt, dan maak je voor elke AJAX-call een nieuw XML-object aan.
Leuk beginnetje... alleen er moet toch nog best veel gebeuren om het echt goed te laten werken.quote:Op dinsdag 31 juli 2007 13:21 schreef Geqxon het volgende:
[..]
Edit: Toegepast voorbeeld
Heb ik toch zomaar per ongeluk een MVC model toegepast.
Proof of concept.quote:Op dinsdag 31 juli 2007 14:59 schreef SuperRembo het volgende:
[..]
Leuk beginnetje... alleen er moet toch nog best veel gebeuren om het echt goed te laten werken.![]()
Jep, onkeydown. Wat je eventueel kunt doen is naar het verschil tussen de vorige update kijken, gecombineerd met de datum van de laatste update. Dat hij pas update als er al een seconde lang geen updates meer zijn.quote:Op dinsdag 31 juli 2007 15:26 schreef SuperRembo het volgende:
Dit kreng update zelfs als je er gewoon met de pijltjes doorheen navigeert
True true, maar als je al zo ver bent kun je de rest toch ook wel even fixen?quote:Op dinsdag 31 juli 2007 16:30 schreef JeRa het volgende:
Wat maakt het uit of het werkt of niet, het is een proof of concept. De bugs eruithalen kun je zelf alsnog doen
Ik zal zometeen de v10.3 ultimate deluxe versie uploaden.quote:Op dinsdag 31 juli 2007 17:33 schreef Chandler het volgende:
[..]
True true, maar als je al zo ver bent kun je de rest toch ook wel even fixen?
Niet dat ik het nodig ben oid
Je form op een iframe richten en met een AJAX call om de zoveel tijd kijken of het al binnen is en ondertussen een progress bar laten zienquote:Op dinsdag 31 juli 2007 18:17 schreef wobbel het volgende:
Hehe dat was idd m'n bedoeling. Ik merk wel dat je hiervoor een redelijke kennis van JS moet hebben(en die heb ik atm nog niet)
Trouwens, is het ook mogelijk om bijv. een file te uploaden met AJAX (een MP3 bijv.)? Normaal gesproken als je een POST doet met een groot bestand als upload blijft alles wit (pagina blijft voor je gevoel laden).
Je kan dan met AJAX een file uploaden, een mooi laadbalkje weergeven en vervolgens evt. wat gegevens over de upload weergevenen dat ook nog eens zonder de hele pagina te herladen
ja idd, al laat je ze iets fakes zien dan trappen ze er vaak genoeg inquote:Op dinsdag 31 juli 2007 18:28 schreef GVRuud het volgende:
Mijn Safari wordt er inderdaad niet vrolijk van als je m tussentijds wilt afsluiten. Maargoed.. Als je zelf niet de mogelijkheid hebt om bij je provider die maximale upload limiet op te schroeven....
Ps. Ik kan dus wel een mooi voortgangsbalkje laten zien, en daar wachten mensen meestal wel braaf op.
Ja maar ik moet het zelf ook gebruiken dus wil wel weten of ik nog naar de koffiepot kan lopenquote:Op dinsdag 31 juli 2007 18:34 schreef WyriHaximus het volgende:
ja idd, al laat je ze iets fakes zien dan trappen ze er vaak genoeg in.
Internal Server Errorquote:
Waarom maak je de call niet op het moment dat enig ander event afgaat? Dus indien de focus van het veld af word gehaald door de gebruiker (al dan niet afsluiten e.d)quote:Op dinsdag 31 juli 2007 08:31 schreef WyriHaximus het volgende:
[..]
Dan maak je er 1/4 seconde van. Na het typen en maximaal 5 seconde tussen 2 save acties
. En misschien met indicatortje er bij van of het veilig is om af te sluiten
. De kans dat iemand binnen die 1/4 van een seconde weet af te sluiten is vrij klein
. Sowieso moet je je verbindingen gaan reguleren anders ga je een behoorlijke rotzooi aan nutteloze overhead krijgen aan AJAX calls die eingelijk direct al weer nutteloos worden doordat je direct er na een volgende toets indrukt en de volgende call alweer triggerd
. (Geloof me dat wil je niet
.)
Iets zegt mij dat het goed fout gaat als je een asymetrische functie aanroept op het moment dat je je browser afsluit. Daarnaast is deze manier voor de gebruiker beter, want zodra dat lampje groen word, is het 100% zeker dat het bestand opgeslagen is. (immers, PHP stuurt Javascript hier aan om het lampje groen op te laten lichten, wat hij doet zodra de schrijfactie succesvol is).quote:Op dinsdag 31 juli 2007 18:41 schreef Scorpie het volgende:
[..]
Waarom maak je de call niet op het moment dat enig ander event afgaat? Dus indien de focus van het veld af word gehaald door de gebruiker (al dan niet afsluiten e.d)
Misschien, maar om nou voor elke toetsaanslag een call te doen is ook overkill mijns inzien.quote:Op dinsdag 31 juli 2007 18:45 schreef Geqxon het volgende:
[..]
Iets zegt mij dat het goed fout gaat als je een asymetrische functie aanroept op het moment dat je je browser afsluit. Daarnaast is deze manier voor de gebruiker beter, want zodra dat lampje groen word, is het 100% zeker dat het bestand opgeslagen is. (immers, PHP stuurt Javascript hier aan om het lampje groen op te laten lichten, wat hij doet zodra de schrijfactie succesvol is).
Je kunt ook gewoon altijd naar de koffiepot lopen dan weet je zeker dat het klaar is als je terug komtquote:Op dinsdag 31 juli 2007 18:37 schreef GVRuud het volgende:
[..]
Ja maar ik moet het zelf ook gebruiken dus wil wel weten of ik nog naar de koffiepot kan lopen
quote:Op dinsdag 31 juli 2007 18:41 schreef Scorpie het volgende:
[..]
Waarom maak je de call niet op het moment dat enig ander event afgaat? Dus indien de focus van het veld af word gehaald door de gebruiker (al dan niet afsluiten e.d)
Wat Geqxon zegt dusquote:Op dinsdag 31 juli 2007 18:45 schreef Geqxon het volgende:
[..]
Iets zegt mij dat het goed fout gaat als je een asymetrische functie aanroept op het moment dat je je browser afsluit. Daarnaast is deze manier voor de gebruiker beter, want zodra dat lampje groen word, is het 100% zeker dat het bestand opgeslagen is. (immers, PHP stuurt Javascript hier aan om het lampje groen op te laten lichten, wat hij doet zodra de schrijfactie succesvol is).
Volgens mij ging daar de hele discussie dus ook over hoe dat het beste aan te pakkenquote:Op dinsdag 31 juli 2007 18:52 schreef Scorpie het volgende:
[..]
Misschien, maar om nou voor elke toetsaanslag een call te doen is ook overkill mijns inzien.
Hebben we het eigenlijk nog over hetzelfde![]()
Met als voorbeeld de proof of concept, die om de seconde kijkt of er een toets gedrukt is, en zo ja, de data submit.quote:Op dinsdag 31 juli 2007 18:54 schreef WyriHaximus het volgende:
[..]
Volgens mij ging daar de hele discussie dus ook over hoe dat het beste aan te pakken.
Moet bekennen dat ik ook wel ietsjes sneller typquote:Op dinsdag 31 juli 2007 19:07 schreef WyriHaximus het volgende:
rofl hoe snel denkje dat sommige hier kunnen typen? Best wel ff heel wat sneller dat 10 per seconde. Dan is misschien 50 op ze minst een beter idee
.
1 2 3 4 5 | { if (timerSet()) clearTimer(); setTimer(saveChanges, 1000); } |
Ik krijg hier in Safari3 een foutmeldingquote:Op woensdag 1 augustus 2007 00:30 schreef SuperRembo het volgende:
#$&(@^($&*^( hij werkt niet in IE6... nou ja, komt later nog wel een keer.
Ik wou de lol niet verpesten.quote:Op woensdag 1 augustus 2007 00:33 schreef Tijn het volgende:
[..]
Ik krijg hier in Safari3 een foutmelding
Mewh Safari is iig op windows gaarquote:Op woensdag 1 augustus 2007 00:33 schreef Tijn het volgende:
[..]
Ik krijg hier in Safari3 een foutmelding
Op de laatste switch schiet hij de default in:quote:Op woensdag 1 augustus 2007 00:36 schreef WyriHaximus het volgende:
[..]
Mewh Safari is iig op windows gaar :'). Maar wat is je fout melding dan kunnen we het fixen ;).
1 2 3 | this.field.className = "error"; window.status = "Unknow action '"+ data.action +"'"; |
We zouden niet durfenquote:
ResponseXML is misschien wel puik, maar door xml lopen met javascript is dat zeker niet.quote:Op woensdag 1 augustus 2007 00:32 schreef Geqxon het volgende:
Nee, jij met je eval op de reponseText
ResponseXML is puik.
Jep. Ik loop nu alle tags genaamd "type" door, wat alleen in een simpel XML bestand zal werken, waar er enkel acties in staan.quote:Op woensdag 1 augustus 2007 08:39 schreef SuperRembo het volgende:
Je hebt wel element.getElementsByTagName() en element.childNodes, maar daar houdt het zo'n beetje op. Je hebt geen xpath support, geen selectNodes().
1 2 3 | $result = mysql_query("UPDATE t_nieuws SET nieuws_titel = '".$titel."', nieuws_bericht = '".$bericht."', nieuws_actief = '".$actief."', nieuws_extern = '".$extern."', nieuws_intern = '".$intern."' WHERE nieuws_id = '".$id."';") or die(mysql_error()); ?> |
Update hij niet ofzo?quote:Op woensdag 1 augustus 2007 11:56 schreef Qunix het volgende:
Ik heb weer een query probleem. Dit maal Update.
[ code verwijderd ]
Er is geen mysql error en hij komt daar, ook zijn de vars gevuld. Doe ik hier iets fout?
Nog nietquote:Op woensdag 1 augustus 2007 11:59 schreef WyriHaximus het volgende:
[..]
Update hij niet ofzo?
Haal de ; aan het eind eens weg.
of
Haal anders de ' eens weg om je ID in je WHERE.
* WyriHaximus is met C# aan het knokken om naar een MySQL server te connecten
Doe anders eens een die(myqsl_error); op de regel er onderquote:Op woensdag 1 augustus 2007 12:00 schreef Qunix het volgende:
[..]
Nog niet
Hij wilt hem niet uitvoeren.
Had ik al gedaan maar mocht niets baten.quote:Op woensdag 1 augustus 2007 12:03 schreef WyriHaximus het volgende:
[..]
Doe anders eens een die(myqsl_error); op de regel er onder. En plaats desnoods de query zelf hier
. (Ipv je code.)
Geef de query eens.quote:Op woensdag 1 augustus 2007 12:07 schreef Qunix het volgende:
[..]
Had ik al gedaan maar mocht niets baten.
Zonder ; en zonder ' bij WHERE had je geprobeert toch? phpmyadmin split op ; namelijk. Niks mis met je query verderquote:Op woensdag 1 augustus 2007 12:31 schreef Qunix het volgende:
[..]
Jup. Want opvragen doet hij het.
Ik heb eerst een query die alles opvraagt, dat doet het wel.
Dan kan iemand het bewerken en zal opnieuw in de database geplaatst worden.
Query:
UPDATE t_nieuws SET nieuws_titel = 'Welkom', nieuws_bericht = 'Dit is het eerste nieuwsbericht - nu ook bewerkt', nieuws_actief = '1', nieuws_extern = '1', nieuws_intern = '1' WHERE nieuws_id = '1';
Wat ook zeer vaag is is dat ik de variabelen vervangen heb met tekst (zoals hierboven) en in phpMyAdmin gedaan. Hij doet het daar wel.
Laat anders PHP de uit te voeren query echoën, c/p deze naar PHPMyAdmin en kijk of het verwachtte resultaat wordt geleverd. Als dit het geval is weet je in elk geval dat je niet naar je geconstrueerde query moet kijkenquote:Op woensdag 1 augustus 2007 12:31 schreef Qunix het volgende:
[..]
Wat ook zeer vaag is is dat ik de variabelen vervangen heb met tekst (zoals hierboven) en in phpMyAdmin gedaan. Hij doet het daar wel.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | $user = array("ID" => 3, "Username" => "Geqxon"); updateUser($user); function updateUser($user){ $sql = "UPDATE users SET "; foreach ($user as $prop=>$value){ $sql .= $prop . " = '".mysql_real_escape_string($value)."' ,"; } $sql = substr($sql,0,(strlen($sql)-1)); $sql .= " WHERE ID = ".mysql_real_escape_string($user["ID"])." LIMIT 1"; if (!empty($user["ID"])){ if (mysql_query($sql)){ return true; } } return false; } ?> |
Dan heb je dus een 1 op 1 relatie met je tabellen.quote:Op woensdag 1 augustus 2007 12:42 schreef Geqxon het volgende:
Voor dergelijke update querys gebruik ik zelf trouwens arrays:
[ code verwijderd ]
Bij mij hebben ze dezelfde namen, of zit er iig een systeem in. Maar goed, elke row uit een database gaat bij mij rechtstreeks een assoc. array in, en blijf ik er vanaf. Vandaar dat mijn namen identiek zijn ,simpelweg omdat ik ze nergens zelf definieër.quote:Op woensdag 1 augustus 2007 12:46 schreef Scorpie het volgende:
[..]
Dan heb je dus een 1 op 1 relatie met je tabellen.
Ik noem mijn tabellen toch anders dan dat ik mijn vars e.d in PHP noem, dus voor mij zou dat niet zo`n geslaagde actie zijn![]()
Zie een pagina als een Objectquote:Op woensdag 1 augustus 2007 13:48 schreef Qunix het volgende:
Ik moet nu een pagina systeem maken.
Iedere pagina op de website moet aanpasbaar zijn.
De tekst en titel.
Hoe zou ik dit het beste kunnen maken?
Iemand een idee? Ik heb nog nooit zoiets gezien of gemaakt namelijk.
Bvd
Mime-type. Even googlen.quote:Op woensdag 1 augustus 2007 18:09 schreef wobbel het volgende:
Wat is de beste manier om een geupload bestand te controleren op een bestandstype?
Op extensie bijv, maar die is echt supermakkelijk te faken
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 | $source_dir = "maartel"; $files = array(); $extensions = array("jpeg", "jpg", "gif", "png"); if($dir = @opendir($source_dir)){ while (($file = readdir($dir)) != false){ $pathinfo = pathinfo($file); $extension = strtolower($pathinfo["extension"]); if(in_array($extension, $extensions)){ $files[] = $file; } } closedir($dir); } if (!empty($files)){ // PICK RANDOM $file = $files[ mt_rand(0, (count($files)-1) ) ]; $pathinfo = pathinfo($file); // DISPLAY ICON $content = file_get_contents($file); header("Content-type: image/" . $pathinfo["extension"]); header("Content-length: " . strlen($content)); echo $content; } ?> |
En al je plaatjes zijn verder wel in orde?quote:Op woensdag 1 augustus 2007 22:09 schreef Maartel het volgende:
[afbeelding]
nope, ik kreeg bij de eerste 10 keer f5en al 3 rode kruisjes![]()
ooh dank u voor 't antwoord...er moesten " " om de DZ_DOCUM blaat dingenquote:Op woensdag 1 augustus 2007 22:18 schreef Geqxon het volgende:
[..]
En al je plaatjes zijn verder wel in orde?
Jep..quote:Op woensdag 1 augustus 2007 22:18 schreef Geqxon het volgende:
[..]
En al je plaatjes zijn verder wel in orde?
oef oef kutjes ^^quote:Op woensdag 1 augustus 2007 22:23 schreef Maartel het volgende:
[..]
Jep..
zie de hele lijst hier:
http://www.pinksoap.nl/maartel/list.php
De inhoud is een kwestie van smaak natuurlijk,maar technisch is alles in orde![]()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class MessageBar { function showScroll ( ) { $wippen = "<marquee>Kontneuken</marquee>"; return $wippen; } } $messagebar = new MessageBar; ?> |
1 2 3 4 5 | include ( "functies.php" ); $messagebar->showScroll ( ); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class MessageBar { var $output_message; function MessageBar($message) { $this->output_message = $message; } function setMessage($message){ $this->$output_message = $message; } function showScroll (){ return "<marquee>" . $this->output_message . "</marquee>"; } } $msb = new MessageBar("Hallo"); echo $msb->showScroll(); ?> |
Totaal nutteloosquote:Op woensdag 1 augustus 2007 22:57 schreef Geqxon het volgende:
Zoals ik het zelf zou doen:
[ code verwijderd ]
Is een stuk beter in elkaar gezet, ipv. de enigszins nutteloze class.
Niet verkeerd voor mijn eerst geschreven class. Het verbaasd mij zelfs dat het werkt.quote:Op woensdag 1 augustus 2007 23:02 schreef WyriHaximus het volgende:
[..]
Totaal nutteloos. Ow en het is $this->var ipv $this->$var
.
quote:Op woensdag 1 augustus 2007 23:04 schreef Geqxon het volgende:
[..]
Niet verkeerd voor mijn eerst geschreven class. Het verbaasd mij zelfs dat het werkt.
Nu je het zegt, zo heb ik wel eens $bla1 tot en met $bla5 aangemaakt. Vraag mij niet waarom, dat is uit de armere tijden.quote:Op woensdag 1 augustus 2007 23:08 schreef WyriHaximus het volgende:
[..]
![]()
Je kunt het wel zo gebruiken. Stel $var heeft 'bla' als content. Als je dan $$var = 'doh'; doet dan maak je de var $bla met 'doh' als inhoud aan
. (Weet niet of je het al wist maar dan weet je het nu iig
.)
't Is al half geantwoord, maar simpelweg omdat je het niet printquote:Op woensdag 1 augustus 2007 22:56 schreef wobbel het volgende:
Oke...de pagina "functies.php" ziet er zo uit:
[ code verwijderd ]
de pagina "test.php" ziet er zo uit:
[ code verwijderd ]
waarom geeft die een lege pagina terug?
Zucht, ik kan dit soort simpele dingen niet eens meer
Of self::$var :pquote:Op woensdag 1 augustus 2007 23:02 schreef WyriHaximus het volgende:
[..]
Totaal nutteloos :P. Ow en het is $this->var ipv $this->$var :).
Waarom dan geen php5? Neemt overigens niet weg dat 't maar een nutteloze functie is :')quote:Op woensdag 1 augustus 2007 22:57 schreef Geqxon het volgende:
Zoals ik het zelf zou doen:
[ code verwijderd ]
Is een stuk beter in elkaar gezet, ipv. de enigszins nutteloze class.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class MessageBar { private $output_message; public function __construct($message) { $this->output_message = $message; } public function setMessage($message){ $this->output_message = $message; } pubilc function showScroll (){ return '<marquee>' . $this->output_message . '</marquee>'; } } $msb = new MessageBar('Hallo'); echo $msb->showScroll(); ?> |
Omdat ik nog nooit met classes in PHP gewerkt heb.quote:Op donderdag 2 augustus 2007 00:14 schreef DorentuZ het volgende:
[..]
Of self::$var :p
[..]
Waarom dan geen php5? Neemt overigens niet weg dat 't maar een nutteloze functie is
[ code verwijderd ]
Houd er trouwens rekening mee dat een single quote ( ' ) niet hetzelfde is als een double-quote ( " ). Een single quote is sneller, omdat vanuit wordt gegaan dat het alleen tekst is. In een double quote kunnen ook newlines, tabs, variablen, etc staan.quote:Op donderdag 2 augustus 2007 00:18 schreef Geqxon het volgende:
[..]
Omdat ik nog nooit met classes in PHP gewerkt heb.
Leuk om te zien dat het dus nog beter kan, dit is voor mij easy peasy.
Ja PHP word steeds volwassenerquote:Op donderdag 2 augustus 2007 00:18 schreef Geqxon het volgende:
[..]
Omdat ik nog nooit met classes in PHP gewerkt heb.
Leuk om te zien dat het dus nog beter kan, dit is voor mij easy peasy.
Register globals? Ik ontwikkel dagelijks voor osCommerce, in de versie waar ik op werk heb ik daar nog weinig van gemerkt.quote:Op donderdag 2 augustus 2007 08:31 schreef WyriHaximus het volgende:
Word het ook, PHP4 -> PHP5 is al traag. Daarnaast ligt het ook aan wat de community maakt. osCommerce is een bagger product wat nog steeds erg veel gebruikt word. Maar wel op register_globals draait. Helaas nog erg vaak gebruikt word. Is misschien een kut voorbeeld maar dit soort dingen houden wel de overgang tegen.
Omdat het de taak van de constructor is om het object in eerste instantie aan te maken (en de variabelen in te vullen), en het de taak van de setter is om in een later stadium de boodschap te wijzigen. Ik begrijp dat je op deze manier redundatie hebt, dus ik begrijp waar je het over hebt.quote:Op donderdag 2 augustus 2007 08:57 schreef Scorpie het volgende:
Waarom word er in de constructor eigenlijk niet de setter aangeroepen in die messagebar class?
De laatste milestone (2.2 afaik) heeft nog steeds register globals nodigquote:Op donderdag 2 augustus 2007 09:30 schreef Geqxon het volgende:
[..]
Register globals? Ik ontwikkel dagelijks voor osCommerce, in de versie waar ik op werk heb ik daar nog weinig van gemerkt.
Mij staat inderdaad wel bij dat ik daar standaard wel geklooi mee had, ik gok dat ik een geupdate versie draai.
Dan gok ik dat ik inderdaad een verbeterde versie heb. Ik moet zeggen dat ik het niet een geweldig product vind, maar ook weer niet gigantisch kut. Zoals ik zei, ik werk er dagelijks mee, develop er veel mee, en met name de database en de hoofdfuncties zitten goed in elkaar.quote:Op donderdag 2 augustus 2007 09:32 schreef WyriHaximus het volgende:
[..]
De laatste milestone (2.2 afaik) heeft nog steeds register globals nodig. Maar volgens mij zijn er idd mensen die het opgepakt hebben en flink verbeterd hebben ondertussen
.
Werk er zeer weinig mee en het is gelukkig een 1 malige opdrachtquote:Op donderdag 2 augustus 2007 09:34 schreef Geqxon het volgende:
[..]
Dan gok ik dat ik inderdaad een verbeterde versie heb. Ik moet zeggen dat ik het niet een geweldig product vind, maar ook weer niet gigantisch kut. Zoals ik zei, ik werk er dagelijks mee, develop er veel mee, en met name de database en de hoofdfuncties zitten goed in elkaar.
Ik kan trouwens aanraden om er gelijk BTS (Basic Template System) op te zetten.
1 2 | FROM forumberichten |
Round() is je beste vriendquote:Op donderdag 2 augustus 2007 16:17 schreef GSMboy het volgende:
Iemand had mij per MSN ooit geholpen met deze query.
je kan hiermee dus het percentage zien van posts in het forum van het totaal.
[ code verwijderd ]
Maar nu geeft hij bijv. aan:
96,6343
Hoe gaan we dit afronden in deze query op 1 decimaal.
Op 5 decimalen vind ik ook weer overdreven
ROUND($getal, 1)quote:Op donderdag 2 augustus 2007 17:37 schreef GSMboy het volgende:
en hoe verwerken we dat in de query, dat hij afrond op 1 decimaal?
Je doet ook geen while of for loopquote:Op donderdag 2 augustus 2007 18:00 schreef BaggerUser het volgende:
raar probleempje...
if($i <= 4)
{
echo'hoi';
$i++;
}
hij echo'd wel hoi.. maar hij verhoogd $i niet ?..
$i blijft de hele tijd op 1 staan... rara ?
het staat dus in een while lus, hadi k er niet bij gezegd... moment:quote:Op donderdag 2 augustus 2007 18:02 schreef Scorpie het volgende:
[..]
Je doet ook geen while of for loop![]()
for($i=0;$i<=4;$i++)
{
echo "hoi";
}
of
while($i<=4)
{
echo "hoi";
$i++;
}
Jij bent echt te lui :{quote:Op donderdag 2 augustus 2007 18:10 schreef GSMboy het volgende:
[..]
Liefst in de query. Hoe doen we dat?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | if($i <= 4) { echo'hoi'; $i++; } echo $i; echo mysql_result($res, 0)."<br />"; $_SESSION['gedeeld'] = "TRUE"; $i++; ?> |
klopt maar hij zet hem bij geen van beid eomhoog.. vandaar dat ik op een gegeven moment overal $i++; had staan... snap er niks van! theoretisch zou het gewoon omhoog moeten die $i ...quote:Op donderdag 2 augustus 2007 18:16 schreef Scorpie het volgende:
BaggerUser:
[ code verwijderd ]
Zo zet je iig 2x de waarde van $i omhoog, zowel in de $i <= 4 gedeelte als helemaal onderaan.
Dat is sowieso fout.
Weet je zeker dat je query een resultaat opleverd?quote:Op donderdag 2 augustus 2007 18:19 schreef BaggerUser het volgende:
[..]
klopt maar hij zet hem bij geen van beid eomhoog.. vandaar dat ik op een gegeven moment overal $i++; had staan... snap er niks van! theoretisch zou het gewoon omhoog moeten die $i ...
1 |
Dat sowieso.quote:Op donderdag 2 augustus 2007 18:28 schreef DorentuZ het volgende:
[..]
Weet je zeker dat je query een resultaat opleverd?
Ik weet ff niet of dit nu ook als boolean wordt gezien, maar imo kan je beter 1 of true gebruiken.
Nee, het lukte niet, ik had ee ROUND() verkeerd geplaatstquote:Op donderdag 2 augustus 2007 18:14 schreef JortK het volgende:
[..]
Jij bent echt te lui
[ code verwijderd ]
1 |
die heten backticksquote:Op donderdag 2 augustus 2007 19:13 schreef GVRuud het volgende:
misschien `` eromheen zetten (geen enkele quotes maar dat ding dat op je tilde ~ toets zit)
Whehe.quote:Op donderdag 2 augustus 2007 18:57 schreef WyriHaximus het volgende:
Als ik deze uitvoer
[ code verwijderd ]
Krijg ik deze error:
Error -13, cannot find table `life`, please use table `nolife` instead.
Iemand een idee?
Dat kan:quote:Op donderdag 2 augustus 2007 20:23 schreef Swetsenegger het volgende:
Hallo
Na een nogal hectisch jaar ben ik weer eens aan het php'en geslagen voor een klein opdrachtje. En daarvoor had ik gelijk een vraag... Is het mogelijk een attachment mee te sturen met mail()
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 | // Mail opstellen $Attachment = fread($TmpFile,filesize($TmpFilename)); $Attachment = chunk_split(base64_encode($Attachment)); $MailHeaders = "From: Emailformulier <" . $AfzenderEmailadres . ">n"; $MailHeaders .= "MIME-Version: 1.0n"; $MailHeaders .= "Content-Type: multipart/mixed;n"; $MailHeaders .= "tboundary="XX-1234DED00099A"n"; $MailHeaders .= "Content-Transfer-Encoding: 7bitnn"; $MailHeaders .= "This is a multi-part message in MIME format.nn"; $MailHeaders .= "--XX-1234DED00099An"; $MailHeaders .= "Content-Type: text/plain; charset=us-asciin"; $MailHeaders .= "Content-Transfer-Encoding: 7bitnn"; $MailHeaders .= $TekstEmailBericht . "n"; $MailHeaders .= "--XX-1234DED00099An"; $MailHeaders .= "Content-Type: application/octet-stream; n"; $MailHeaders .= "tname="formulier-csv.txt"n"; $MailHeaders .= "Content-Transfer-Encoding: base64n"; $MailHeaders .= "Content-Description: formulier-csv.txtnn"; $MailHeaders .= $Attachment; $MailHeaders .= "--XX-1234DED00099A--"; if( mail($OntvangerEmailadres,$OnderwerpEmailBericht,"",$MailHeaders) == FALSE ) { $Message = "Het bericht kon niet worden verzonden. Probeer het nogmaals."; } else { $Message = "Het formulier is verzonden"; } |
1 2 3 4 5 6 7 8 9 10 11 12 | if($currentPage <= $i) { if($currentPage == 0) { $next1 = $currentPage+4; } Else { $next1 = $currentPage+3; } } |
Ik weet niet wat jij allemaal aan het doen ben, maar ik tel simpelweg eerst het aantal reacties, deel dat door het aantal reacties per pagina, en weet zo dus het totaal aantal pagina's.quote:Op donderdag 2 augustus 2007 20:50 schreef BugWorks het volgende:
Ik ben bezig met het maken van een gastenboek. Het hele gastenboek werkt goed, maar het probleem dat ik heb doet zich voor bij het maken van de “vorige/volgende” pagina links.
Het is de bedoeling dat het uit als volgt uitziet:
<< < a b c D e f g > >>
<< en >> zijn de eerste en laatste pagina
< en > zijn de vorige en volgende pagina (indien het kan)
a, b en c zijn de 3 voorgaande pagina’s (indien het kan)
D is de huidige pagina
e, f en g zijn de 3 volgende pagina’s (indien het kan)
Het probleem dat zich voordoet is als volgt:
Ik heb nu, tijdens het testen, ongeveer 15 berichten in het gastenboek staan. Ik heb aangegeven dat ik 10 berichten op een pagina wil hebben. Als ik via een directe link naar het gastenboek ga krijg ik bij de pagina links het volgende “<< < X d e f > >>”. Dit terwijl ik eigenlijk alleen “<< < X d > >>” behoor te krijgen. Als ik eenmaal gebruik heb gemaakt van deze links en dus weer op de eerste pagina sta, krijg ik wel het goede te zien.
Ik maak gebruik van de volgende code om “f” te berekenen. “d” en “e” worden op een iets andere manier berekent, enkele getallen verhogen of verminden met 1.
[ code verwijderd ]
Ik weet dat er iets niet klopt aan bovenstaande, maar ik weet niet waar ik het moet veranderen. Kan iemand me hier mee helpen? Alvast bedankt.
Hier heb je volgens mij de attachement base64 encode. Waarom?quote:Op donderdag 2 augustus 2007 20:40 schreef GVRuud het volgende:
[..]
Dat kan:
[ code verwijderd ]
formulier-csv.txt is de bestandsnaam van de attachment, en verder wijst het zich volgensmij wel voor zich.
Hmm de n's worden vernaggeld. Zie http://www.ruudsimons.nl/mail.phps
Het probleem is inmiddels al opgelost. Ik doe het op bijna dezelfde manier, alleen maak ik geen gebruik van een whilelus maar heb ik voor iedere stap een ifstatement zoals ik gaf. Whilelus was net iets te lastig om te maken.quote:Op donderdag 2 augustus 2007 20:59 schreef Swetsenegger het volgende:
[..]
Ik weet niet wat jij allemaal aan het doen ben, maar ik tel simpelweg eerst het aantal reacties, deel dat door het aantal reacties per pagina, en weet zo dus het totaal aantal pagina's.
Vervolgens stap ik met een whilelus door het aantal pagina's heen en maak ik linkjes van alles wat 2 stappen voor en 2 stappen na mijn huidige pagina zit. met de rest doe ik niets.
www.123swets.com/gastenboek.php
Staat er weer, zag niet in waarom ik het zou laten staanquote:Op donderdag 2 augustus 2007 21:05 schreef Swetsenegger het volgende:
waarom delete je je volledige originele vraag
Het is een forum... daar blijven dingen staan. Dat kan nog eens als naslag werk dienen voor anderen.quote:Op donderdag 2 augustus 2007 21:09 schreef BugWorks het volgende:
[..]
Staat er weer, zag niet in waarom ik het zou laten staan![]()
Ok, thanks ik denk dat ik het begrijp...quote:Op donderdag 2 augustus 2007 21:09 schreef GVRuud het volgende:
Header is een beetje een rare omschrijving, omdat in principe de mail alleen uit een header bestaat. Daar voeg je dan allerlei velden aan toe. Als ik t goed heb zal PHP via de mail functies de parameters zelf in die header toevoegen. Door het content-type: multipart/mixed mee te geven vertel ik dat het emailbericht in meerdere delen is opgedeeld, waarvoor ik de scheiding maak door middel van de boundary (welke een willekeurige string mag zijn, als deze maar niet in bijvoorbeeld de tekst van je mailbericht voorkomt).
Voor iedere multipart geef je dus een content-type op.
De base64 encoding van de data wordt gedaan om er voor te zorgen dat rare tekens je mailbericht niet in de soup laten lopen (iets met rare tekentjes enzo die bv in binaire bestanden voorkomen). Volgens de RFC waarin het versturen van attachments wordt beschreven (kan zo ff 123 niet vinden) is het zelfs verplicht. In principe kun je een textuele attachment zoals ik in t stukje script gebruik zonder deze encoding versturen, maar ik denk dat t een goede gewoonte is om attachments altijd te encoden.
Je leest dus een bestand in en schrijft de gelezen data inderdaad base64 encoded weg in je mailheader.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | while(list($key,$val)=each($posts)){ $where='ID=''.$val.'' OR '; } $where=substr($where,0,-3); $d=connectDB(); $r=runquery("SELECT ID,parent_ID FROM forum WHERE ".$where." ORDER BY last_active",$d); $new_post=mysql_result($r,0,"ID"); if($parent==''){ $parent_ID=mysql_result($r,0,"parent_ID"); } else{ $parent_ID=$parent; } while($row=mysql_fetch_array($r)){ $res=runquery("UPDATE forum SET parent_ID='".$new_post."' WHERE ID='".$row["ID"]."'",$d); } $res=runquery("UPDATE forum SET parent_ID='".$parent_ID."', level='2', forum_subject=".quote_smart($subject,$d)." WHERE ID='".$new_post."'",$d); $data=main_content('Gelukt','Nieuw topic aangemaakt in '.$parent_ID,'m'); ?> |
Dat kan met zoiets alsquote:Op donderdag 2 augustus 2007 22:51 schreef Chandler het volgende:
...
Nu vraag ik mij af? indien ik het fout heb? hoe krijg ik 2 velden met timestamp waarvan er 1tje op iedere update aan zichzelf vervangt met de huidige timestamp?
...
1 2 3 4 5 | modified TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ... |
Het is echt niet zo moeilijk te vindenquote:Op vrijdag 3 augustus 2007 00:00 schreef wobbel het volgende:
Hoe lees ik met PHP de rechten uit van een bestand? Dus 755, 777 etc
1 2 3 4 5 6 7 8 9 | `id` bigint(20) NOT NULL auto_increment, `twee_id` int(11) NOT NULL default '0', `ip` varchar(15) NOT NULL default '', `status` enum('j','n') NOT NULL default 'n', `started` timestamp NOT NULL default '0000-00-00 00:00:00', `ended` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, KEY `id` (`id`) ) ENGINE=MyISAM; |
1 2 | ended timestamp ON UPDATE CURRENT_TIMESTAMP Nee CURRENT_TIMESTAMP |
In het geval van twee kolommen zal je een keuze moeten maken bij welke kolom je de CURRENT_TIMESTAMP er handmatig in wilt zetten (of bij welke je het liever automatisch hebt)... MySQL is wat dat betreft een beetje beperkt met DEFAULT en ON... definitiesquote:Op vrijdag 3 augustus 2007 11:07 schreef Chandler het volgende:
@Jera;
Ik wil dus 1 timestamp gewoon bij de insert met de default timestamp
en de 2e timestamp die zich iederekeer updated
Dat wil dus nietblijkbaar
De PHPmailer class heeft hier een handige functie voor: addAttachment()quote:Op donderdag 2 augustus 2007 20:23 schreef Swetsenegger het volgende:
Hallo
Na een nogal hectisch jaar ben ik weer eens aan het php'en geslagen voor een klein opdrachtje. En daarvoor had ik gelijk een vraag... Is het mogelijk een attachment mee te sturen met mail()
quote:Op vrijdag 3 augustus 2007 00:00 schreef wobbel het volgende:
Hoe lees ik met PHP de rechten uit van een bestand? Dus 755, 777 etc
1 2 3 | echo "dit hoere forum fuckt m'n PHP source op"; ?> |
Dat heeft te maken met het feit dat error reporting de E_NOTICE flag heeft én dat de klasse Template geen instantievariabele highestState heeft. Als je dit niet zelf geschreven hebt raad ik je aan de E_NOTICE flag uit de error report te halen. Dit kan in php.ini bij de config variabele error_reporting, of met de functie error_reporting(...). Ik raad je dan meteen aan op de linkjes te klikken om er achter te komen waarom deze notice voorkomtquote:Op zondag 5 augustus 2007 19:39 schreef wobbel het volgende:
Notice: Undefined property: Template::$highestStage in /var/www/html/site/lib/f_template.php on line 166
[ code verwijderd ]
De source staat hier: http://www.dumpzooi.nl/f_template.phps
Line 166 is aangegeven door een commenct
declareer dat ding eensquote:Op zondag 5 augustus 2007 19:39 schreef wobbel het volgende:
Notice: Undefined property: Template::$highestStage in /var/www/html/site/lib/f_template.php on line 166
[ code verwijderd ]
De source staat hier: http://www.dumpzooi.nl/f_template.phps
Line 166 is aangegeven door een commenct
Je geeft echt veel te weinig info om er wat zinnigs over te kunnen zeggen.quote:Op dinsdag 7 augustus 2007 21:21 schreef wonderer het volgende:
Mijn host klaagt dat php te veel resources gebruikt (memory en cpu). Dit komt vrij plotseling, ik heb niks veranderd aan de scripts en het ging al maanden goed. Ik probeer nu in de logs te kijken of ik iets tegenkom, maar ik weet eigenlijk niet waar ik naar op zoek ben. Heeft iemand een idee?
't Is alles dat ik weetquote:Op dinsdag 7 augustus 2007 22:03 schreef SuperRembo het volgende:
[..]
Je geeft echt veel te weinig info om er wat zinnigs over te kunnen zeggen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $paginas = array('home', 'pagina2', 'pagina3'); $pagina = $_GET['id']; if (in_array($pagina, $paginas)){ require($pagina . '.php'); } elseif (in_array($pagina, $paginas)){ require($pagina . '.html'); } else { require('home'); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $paginas = array('home', 'pagina2'); $paginahtml = array('pagina3'); $pagina = $_GET['id']; if (in_array($pagina, $paginas)){ require($pagina . '.php'); } elseif (in_array($pagina, $paginahtml)){ require($pagina . '.html'); } else { require('home.php'); } ?> |
Als ze dusdanig kunnen zien dat je te veel CPU en memory trekt dan kunnen ze ook zien wat. En anders moeten ze het commando ps maar eens gaan leren. Niet dat jij daar nu iets aan hebtquote:Op dinsdag 7 augustus 2007 23:27 schreef wonderer het volgende:
Ik durf niet te zeggen of het langzame queries zijn. Het is vast niet ideaal, maar ik draai hetzelfde script (het is waarschijnlijk de chat, die wordt het meest gebruikt) zonder problemen en de database is ook niet enorm of zo.
Enige dat ik in de logs kan vinden (zonder 158 MB helemaal door te spitten) zijn bots (webcrawlers) en een paar leden met spyware.
Zelf zou ik de directory uitlezen om de paar minuten en deze array met bestanden in een cache file gooien en die array checken of een bestand bestaat. Zo heb je toch de fexibiliteit van makkelijk nieuwe bestanden toevoegen maar niet de kans op remote file inclusionsquote:Op woensdag 8 augustus 2007 07:30 schreef Drakire het volgende:
Kan iemand mij mischien helpen met het het volgende:
Ik heb dus een php require gemaakt die er als volgt uitziet:
[ code verwijderd ]
Probleem:
.php bestanden gaan perfect echter .html lukt niet, maar als ik van home een .html bestand maak werkt deze ook.
De fout zit dus ergens in de elseif statement, ik kan hem alleen niet vinden misschien mag het zo helemaal niet gebruikt worden?
Bij voorbaat dank.
____________________________________/* Edit */_______________________________________
Ik zie het probleem zelf al haha, de elseif kan helemaal niet uitgevoerd worden omdat nooit aan deze voorwaarde kan worden voldaan.
Als hij in de array zit volgens de if statement er een .php extensie achter komt.
[ code verwijderd ]
Zo nu werkt hij wel.
Best dom eigenlijk.
Is het datawoordenboek in phpmyadmin niets iets voor je?quote:Op woensdag 8 augustus 2007 09:47 schreef Mordreth het volgende:
Ik ben op zoek naar een simpel programma om een databasestructuur in kaart te krijgen. Het hoeft niet te kunnen importeren or whatever. Gewoon even snel iets zelf kunnen "uittekenen". Iemand een idee?
Op basis van een al bestaand datamodel... of wil je het zelf uittekenen?quote:Op woensdag 8 augustus 2007 09:47 schreef Mordreth het volgende:
Ik ben op zoek naar een simpel programma om een databasestructuur in kaart te krijgen. Het hoeft niet te kunnen importeren or whatever. Gewoon even snel iets zelf kunnen "uittekenen". Iemand een idee?
En als hardeschijfactiviteit niet al te belangrijk is:quote:Op woensdag 8 augustus 2007 08:07 schreef WyriHaximus het volgende:
[..]
Zelf zou ik de directory uitlezen om de paar minuten en deze array met bestanden in een cache file gooien en die array checken of een bestand bestaat. Zo heb je toch de fexibiliteit van makkelijk nieuwe bestanden toevoegen maar niet de kans op remote file inclusions :). (Zonder cache file kan ook maar dan scan je iederekeer de directory waar de bstanden staan :P.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $paginas = array('home', 'pagina2', 'pagina3'); $pagina = $_GET['id']; if (in_array($pagina, $paginas) && file_exists($pagina . '.php')){ require($pagina . '.php'); } elseif (in_array($pagina, $paginas) && file_exists($pagina . '.html')){ require($pagina . '.html'); } else { require('home'); } ?> |
Direct in access is makkelijk, of wat ik doe is gewoon schetsen op papier.quote:Op woensdag 8 augustus 2007 09:47 schreef Mordreth het volgende:
Ik ben op zoek naar een simpel programma om een databasestructuur in kaart te krijgen. Het hoeft niet te kunnen importeren or whatever. Gewoon even snel iets zelf kunnen "uittekenen". Iemand een idee?
Dat is nog wel een betere ja. Want dan voorkom je ook weer irritante errorsquote:Op woensdag 8 augustus 2007 10:12 schreef Geqxon het volgende:
[..]
En als hardeschijfactiviteit niet al te belangrijk is:
[ code verwijderd ]
Ja, ik.quote:Op woensdag 8 augustus 2007 10:41 schreef Qunix het volgende:
Heeft iemand hier ooit een pagina geschiedenis (page history) systeem gemaakt? Zoals op Wikipedia te zien is: http://www.mediawiki.org/w/index.php?title=Download/nl&action=history
Is dit wat?quote:
Ja, ik gebruik praktisch hetzelfdequote:
Ik gebruik vaak DB Designer voor databases, kan je eventueel ook nog met XSL + PHP je database-opzetje omzetten naar een Propel schema. Verder is UMLet ook handig voor db (rd en uml) mockups.quote:Op woensdag 8 augustus 2007 09:47 schreef Mordreth het volgende:
Ik ben op zoek naar een simpel programma om een databasestructuur in kaart te krijgen. Het hoeft niet te kunnen importeren or whatever. Gewoon even snel iets zelf kunnen "uittekenen". Iemand een idee?
Access kan ook ja, alleen beetje overdrevenquote:Op woensdag 8 augustus 2007 10:13 schreef _Flash_ het volgende:
[..]
Direct in access is makkelijk, of wat ik doe is gewoon schetsen op papier.
Ga ik even naar kijkenquote:Op woensdag 8 augustus 2007 13:07 schreef autocue het volgende:
[..]
Ik gebruik vaak DB Designer voor databases, kan je eventueel ook nog met XSL + PHP je database-opzetje omzetten naar een Propel schema. Verder is UMLet ook handig voor db (rd en uml) mockups.
[edit]
Maar uiteindelijk gebruik ik mijn whiteboard het meest.
Valt best meequote:Op woensdag 8 augustus 2007 13:42 schreef Mordreth het volgende:
[..]
Ga ik even naar kijkentnx. Whiteboard lijkt me niet wat
. Staat zo raar naast m'n bureau.
Liegebeest! Ze doet dus wel wat in het huishouden!quote:Op woensdag 8 augustus 2007 13:48 schreef WyriHaximus het volgende:
[..]
De reden was dat ze makkelijk bootschappen er op neer kan zetten.
Ja en wie denkje dat dat dan mag halen als het er op staatquote:Op woensdag 8 augustus 2007 13:51 schreef Geqxon het volgende:
[..]
Liegebeest! Ze doet dus wel wat in het huishouden!
Thanks.quote:Op woensdag 8 augustus 2007 12:02 schreef JeRa het volgende:
[..]
Ja, ik gebruik praktisch hetzelfde
Ik sla echter alléén de complete contents op van de meest recente versie van een pagina (en van elke 20 versies om nog redelijke performance te krijgen); van de rest sla ik alleen de wijzigingen ten opzichte van de versie ervóór op.Zoiets kun je doen met een (binary) diff, als je er eentje pakt die een formaat produceert dat gemakkelijk te parsen is kun je ook nog eens de wijzigingen tonen in de geschiedenis zelf (zoals mediawiki dat doet).
Op het moment dat ik een oudere versie wil bekijken pakt mijn systeem de versie van de pagina die ik wil bekijken, controleert of het de complete contents bevat of een diff, en in het laatste geval zoekt het vanaf die versie terug in de geschiedenis tot de volgende complete versie.
Ik kwam wel een bot tegen (vagabondo) die inderdaad VEEL bekeek, ik denk rond de tijd dat ie spikete (maar dat weet ik dus niet zeker omdat ze me niet vertellen WANNEER precies het probleem onstondquote:Op woensdag 8 augustus 2007 08:07 schreef WyriHaximus het volgende:
[..]
Als ze dusdanig kunnen zien dat je te veel CPU en memory trekt dan kunnen ze ook zien wat. En anders moeten ze het commando ps maar eens gaan leren. Niet dat jij daar nu iets aan hebt. Kan het niet het geval zijn dat 1 of ander crawlertje je chat heeft ondenkt en lekker aan het loopen is? Kijk ook eens wat die crawlertjes doen. Stel dat er ergens http:// in de URI zit zul heel snel moeten gaan kijken wat ze precies proberen te doen aangezien dat remote file inclusions attempts zijn (zie ze ook dagelijks voorbij komen op me site daarn niet) en als er 1 gelukt is kunnen ze dat ook misbruiken wat de spike zou kunnen verklaren. Neemt niet weg dat het giswerk is en dat het totaal niet zo hoeft te zijn
. Een andere mogelijk voor de spikes is gewoon een botje wat ff helemaal los gaat op je website en a.s.a.p. alle pagina's wilt indexen. De exalead bot is daar erg goed in. Kan natuurlijk ook een combo van verschillende bots zijn
.
[..]
Ik bedoelde op m'n werkquote:Op woensdag 8 augustus 2007 13:48 schreef WyriHaximus het volgende:
[..]
Valt best mee! Me vriendin is het er nu ook mee eens dat ik een whiteboard neem als ik ga verhuizen
! Eerst was ze fel tegen
! De reden was dat ze makkelijk bootschappen er op neer kan zetten
.
Je kunt ook alles toelaten maar een minimum interval opgevenquote:Op woensdag 8 augustus 2007 16:10 schreef wonderer het volgende:
[..]
Ik kwam wel een bot tegen (vagabondo) die inderdaad VEEL bekeek, ik denk rond de tijd dat ie spikete (maar dat weet ik dus niet zeker omdat ze me niet vertellen WANNEER precies het probleem onstond). Ik heb nou met robots.txt alles uitgezet. Later voeg ik google wel weer toe, eerst eens kijken hoe dit gaat.
Ow daar heb ik hem al en dat is best handigquote:Op woensdag 8 augustus 2007 18:06 schreef Mordreth het volgende:
[..]
Ik bedoelde op m'n werk. Maar voor thuis is dat wel een erg topidee
:D. Wil ik ook!
Het eerste wat me opvalt als ik naar jouw schema kijk is dat je overal een outputHTML() functie hebt en <<extends>> zet bij de lijnen ipv de symbolen daarvoor gebruikt (een lege pijl vanuit de extendende klasse naar de klasse die geëxtend wordt). Als je dat symbool gebruikt hoef je niet alle methodes te herhalen en is het voor de lezer (waarschijnlijk) duidelijkerquote:Op woensdag 8 augustus 2007 20:32 schreef Geqxon het volgende:
Goed, tijd voor een class-based template system.
[afbeelding]
Alle data wordt aangeleverd, bij een UserProfile is dit een array met alle informatie van een user, niks wordt uit de database gehaald.
De HTMLObject class is voor buitenbeentjes, waar ik rauwe HTML code ik kan gooien. Voor specifieke reperterende doeleinden maak ik subclasses, die dus weer odner HTMLObject vallen.
Hoe is dit voor een eerste opzetje?
De constructoren hebben inderdaad nog geen inputwaarden, dit moet ik met mijn editor nog even uitzoeken...
Het punt is alleen dat ik de outputHTML methoden in alle subklassen van HTML-Object allemaal net wat anders werken dan de methode outputHTML in HTMLObject.quote:Op woensdag 8 augustus 2007 22:12 schreef JeRa het volgende:
[..]
Het eerste wat me opvalt als ik naar jouw schema kijk is dat je overal een outputHTML() functie hebt en <<extends>> zet bij de lijnen ipv de symbolen daarvoor gebruikt (een lege pijl vanuit de extendende klasse naar de klasse die geëxtend wordt). Als je dat symbool gebruikt hoef je niet alle methodes te herhalen en is het voor de lezer (waarschijnlijk) duidelijker
Community Edition. Is de gratis editie (al zul je wel een key aan moeten vragen). De nadelen van de community edition is dat het een watermark op je plaatjes zet (zie bovenstaand), dat het niet voor commercieele doeleinden gebruikt mag worden, en het mist wat import / export spul. Voor mijn hobby kan het meer dan genoeg. Zeer puik programma, vind ik zelf een stuk fijner dan ConceptDrawquote:Op woensdag 8 augustus 2007 22:53 schreef Tijn het volgende:
[..]
Dat pakket ziet er tof uit
Heb je dat gekocht?
Het werkt goddelijk. Lekker makkelijk met menutjes attributen en methoden toevoegen, en alles is dynamisch. Als je een object uit je eigen UML als attribuut toe wilt voegen is dat geen probleem, hop hop en het zit.quote:Op woensdag 8 augustus 2007 23:08 schreef Tijn het volgende:
CoolIk heb nog nooit zoiets gebruikt, misschien helpt het me m'n webapps beter te ontwerpen.
Hoef je niet lui voor te zijn is gewoon handigquote:Op woensdag 8 augustus 2007 23:31 schreef Geqxon het volgende:
Idd niet tot dit topic gerelateerd. Maar voor de luie programmeurr is het wel handig een UML model naar code om te zetten.
Netbeans is ook leuk, echter zocht ik een utility puur voor UML (onder OS X). Daar is dit zéér geschikt voor, ik kan er vanalles prima mee doen.quote:Op donderdag 9 augustus 2007 00:40 schreef JeRa het volgende:
Netbeans + UML modules. Of gewoon een dotfile schrijven en gaan met die banaan.
Dan zou ik me (conventiewijs) eerder zorgen maken over inheritance pijlen die van noord naar zuid wandelen, over diagonale lijnen wordt volgens mij niets gezegdquote:Op donderdag 9 augustus 2007 00:52 schreef Geqxon het volgende:
[..]
Al weet ik niet of diagonale lijnen in UML wel mogen...
Waar ik heen wil? Een class-based HTML output systeem, waardoor ik een pagina op kan bouwen met verschillende objecten. Ieder object is verantwoordelijk voor het uitspugen van zijn eigen HTML, die overigens met een for-loopje overal opgehaald word. Dit zijn inderdaad vrij concrete classes, maar ik ben wel van plan wat meer algemenere classes te gaan bouwen. Momenteel doe ik dit met functies, en dat vind ik niet handig werken.quote:Op donderdag 9 augustus 2007 01:19 schreef autocue het volgende:
[..]
Dan zou ik me (conventiewijs) eerder zorgen maken over inheritance pijlen die van noord naar zuid wandelen, over diagonale lijnen wordt volgens mij niets gezegd. Over het diagram, welke richting wil je hiermee opgaan? De mate van concreetheid zorgt er denk ik voor dat je bij het gebruik van zo'n systeem aan een enorm groot scala van klassen wordt blootgesteld of veel flexibiliteit verliest vergeleken met plattere template systemen (zoals Smarty of tinyButStrong). Desalniettemin, templating systemen bouwen is gaaf
.
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 | // anti SQL injectie $id = validate($_POST['id']); // nieuw afbeelding object aanmaken $image = new image(); // nieuw afbeelding constructie object aanmaken // (om afbeelding mee uit de Db te trekken) $get_image = new $image->get_image(); // veldnaam in Db // (moet uiteraard een BLOB zijn) $get_image->want('image_binary_content'); // tabel naam $get_image->from('images'); // conditie waar record aan moet voldoen $get_image->where('id', $id); // importeer de binaire data uit de Db // van de afbeelding in het afbeelding object $image->import($get_image); // resize deze on the fly $smw = $settings->get('img_max_width'); $smh = $settings->get('img_max_height'); $image->resize($smw, $smh); // toon geresizede afbeelding in browser $image->display(); ?> |
1 2 3 4 5 6 7 8 9 10 11 | class EenOfAndereClass { function blaat() { return true; } } $a = new EenOfAndereClass(); $b = $a->blaat(); ?> |
Neequote:Op vrijdag 10 augustus 2007 13:55 schreef JeRa het volgende:
@Evenveel
Wat lukt je niet? De basis van OO in PHP4 ofzo? Want wat jij wil is niet veel meer dan zoiets:
[ code verwijderd ]
Maar dan zal het dus "$a->$b->c()" worden (hence the $)...quote:Op vrijdag 10 augustus 2007 15:13 schreef super-muffin het volgende:
$a->b->c gaat alleen wanneer de variabele b in a een object is. dan kun je c aanspreken.
Maar moet dat dan met of zonder de "new" keyword?quote:Op vrijdag 10 augustus 2007 15:13 schreef super-muffin het volgende:
in jouw geval moet $image->get_image() dus een object terug geven.
klopt.quote:Op vrijdag 10 augustus 2007 15:19 schreef Evenveel het volgende:
[..]
Maar moet dat dan met of zonder de "new" keyword?
Dit doe ik ook, alleen gebruik ik de UTF-8 class ipv de mb_ functies.quote:Op donderdag 9 augustus 2007 14:13 schreef JeRa het volgende:
@Desdinova
Als je deze dingen goed hebt hoef je geen enkele character set conversie uit te voeren:
1) Je (HTML) pagina's geef je de header 'Content-Type: ...; charset=utf-8' mee
2) In PHP voer je alle stringbewerkingen uit door gebruik te maken van de mb_* (multibyte) functies
3) Je RDBMS moet ondersteuning hebben voor collations waarbij je alle stringvelden van al je tabellen op UTF-8 zet
4) De verbinding tussen PHP en je RDBMS moet ook de goede character set hebben (voor MySQL: SET CHARACTER SET UTF-8, voor PgSQL hoeft dit niet (gaat automagisch)).
Oooh wat dom... Meer hoef ik dan denk ik niet te weten... Ik wist dat het iets simpels als dit moest zijnquote:
quote:$a->b->c->d->e->f->g();
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 | class Db extends Exception{ protected function execute($sql){ return (bool) false; } protected function throwError($msg){ parent::__construct($msg); throw $this; } } class Query extends Db{ private $query; public function select(){ return $this; } public function from(){ return $this; } public function execute(){ if( parent::execute($this->query)) return (bool) true; else $this->throwError("Invalid SQL query"); } } $ins = new Query; try { $ins->select("*")->from("users")->execute(); echo 'Ok'; } catch(Query $e) { echo $e->getMessage(); } ?> |
Het idee van criteria is best wel handig, mijn ervaring bij het ontwikkelen webapps is dat de uitgevoerde queries over het algemeen klein zijn. Wanneer queries groter worden bieden dergelijk grote frameworks meestal wel voldoende functionaliteit om ook deze goed af te kunnen handelen. Maar... wat is precies het idee van het gooien van een klasse die verantwoordelijkheden bevat? Dat doet Zend toch niet mag ik hopen?quote:Op vrijdag 10 augustus 2007 15:37 schreef krozz56 het volgende:
[..]
[ code verwijderd ]
(ik heb het niet ge-comment)
Zo gebeurd dat in het Zend Framework vooral. Lijkt me echt kut voor ingewikkelde queries eigenlijk..
hoi jeffreyquote:Op vrijdag 10 augustus 2007 15:37 schreef krozz56 het volgende:
[..]
[ code verwijderd ]
(ik heb het niet ge-comment)
Zo gebeurd dat in het Zend Framework vooral. Lijkt me echt kut voor ingewikkelde queries eigenlijk..
dank uquote:Op zondag 12 augustus 2007 19:25 schreef wonderer het volgende:
http://us3.php.net/manual/en/function.strip-tags.php
1 2 3 | $price = preg_replace('/([^d]<img src="http://images.fok.nl/s/shiny.gif" width="15" height="15" alt="" />/', '', $price); ?> |
Ik snap alleen geen ruk van OOP, dus hou ik het graag bij dingen die ik snapquote:Op vrijdag 3 augustus 2007 15:47 schreef Xcalibur het volgende:
[..]
De PHPmailer class heeft hier een handige functie voor: addAttachment()
Dat ding maakt je leven een stuk eenvoudiger dan dat geklooi met die headers:)
Casting.quote:Op zondag 12 augustus 2007 19:30 schreef wobbel het volgende:
en nog een functie gezocht (als die bestaat)
Is het mogelijk de volgende string om te zetten in alleen getallen?
$string = "125,90 Opruiming!! Nu verlaagd";
dat ik alleen 125,90 overhoud? (zonder komma mag ook, beetje wiskunde en de originele prijs is terug)
[ code verwijderd ]
dit moet beter kunnen
1 2 3 4 | $string = "125,90 Opruiming!! Nu verlaagd"; echo (float) $string; ?> |
1 2 3 4 | $string = (float) "125.90 Opruiming!! Nu verlaagd"; echo $string; ?> |
Dankje, werkt ook allebeiquote:Op zondag 12 augustus 2007 19:43 schreef Geqxon het volgende:
[..]
Casting.
[ code verwijderd ]
of
[ code verwijderd ]
Dat je zelf geen OOP apps schrijft wil toch niet zeggen dat je een bestaand object niet kan gebruiken?quote:Op zondag 12 augustus 2007 19:30 schreef Swetsenegger het volgende:
[..]
Ik snap alleen geen ruk van OOP, dus hou ik het graag bij dingen die ik snap
Jawel, want ik snap niet wat het doet, als er dus een probleem ontstaat om welke reden dan ook wordt troubleshooting toch een stuk moeilijker.quote:Op zondag 12 augustus 2007 20:08 schreef Tijn het volgende:
[..]
Dat je zelf geen OOP apps schrijft wil toch niet zeggen dat je een bestaand object niet kan gebruiken?
quote:Op zondag 12 augustus 2007 19:48 schreef wobbel het volgende:
[..]
Dankje, werkt ook allebei
Nu heb ik nog 1 allerlaatste vraag:
Ik heb de volgende string:
$string = '<img src="/img/layout/vi1.gif" width="60" height="10" border="0">';
Hoe zorg ik ervoor dat ik alles tussen de src="" tags krijg? In dit geval dus /img/layout/vi1.gif
1 2 3 4 5 6 7 8 9 10 11 | $string = '<img src="/img/layout/vi1.gif" width="60" height="10" border="0">'; if (preg_match('#<img src="(.*)" width="60" height="10" border="0">#Uis',$string,$matches)){ $image_src = $matches[1]; } else{ $image_src = false; } ?> |
1 2 3 4 5 6 | $ch = curl_init("http://www.site.com"); curl_setopt ( $ch, CURLOPT_COOKIEFILE, '/var/www/html/TEST.txt' ); // Make sure location is writable curl_exec ( $ch ); curl_close ( $ch ); ?> |
1 |
tweede parameter van curl_setopt is een int, je geeft een string. Ik weet het niet zeker, maar ik geloof niet dat de gedefinieerde waarde in die string tot integer geparsed wordt. Oftwewel, haal die " 's is wel om die tweede parameterquote:
je hebt gelijk, en ik heb het aangepast...maar ik krijg nog steeds de uitgelogde source te zienquote:Op zondag 12 augustus 2007 21:18 schreef ralfie het volgende:
[..]
tweede parameter van curl_setopt is een int, je geeft een string. Ik weet het niet zeker, maar ik geloof niet dat de gedefinieerde waarde in die string tot integer geparsed wordt. Oftwewel, haal die " 's is wel om die tweede parameter
Je probeert in te loggen op Fok met een PHP-script, door je eigen cookie te gebruiken? Je weet dat Fok ook naar je IP kijkt als je in probeert te loggen?quote:Op zondag 12 augustus 2007 21:21 schreef wobbel het volgende:
[..]
je hebt gelijk, en ik heb het aangepast...maar ik krijg nog steeds de uitgelogde source te zien
het gaat niet om fok maar een andere site...en die kijkt niet naar het IP adresquote:Op zondag 12 augustus 2007 21:29 schreef Geqxon het volgende:
[..]
Je probeert in te loggen op Fok met een PHP-script, door je eigen cookie te gebruiken? Je weet dat Fok ook naar je IP kijkt als je in probeert te loggen?
Mja, OOP.... het is eigenlijk gewoon een setje functies waarmee je een mail kunt opbouwenquote:Op zondag 12 augustus 2007 19:30 schreef Swetsenegger het volgende:
Ik snap alleen geen ruk van OOP, dus hou ik het graag bij dingen die ik snap
De Snoopy class pakken, inloggen en als je cookies krijgt deze opslaan ergens en bij de iedere volgende page hits mee sturenquote:Op zondag 12 augustus 2007 21:29 schreef wobbel het volgende:
[..]
het gaat niet om fok maar een andere site...en die kijkt niet naar het IP adres
Daar is dus nog wat verbeterwerk in te doen als ik het zo hoorquote:Op maandag 13 augustus 2007 19:37 schreef Xcalibur het volgende:
Heeft iemand wel eens wat met PayPal integratie gedaan in PHP?
Probeer nu een creditcard betaling te verwerken met de PHP SDK... damn, wat zit dat ding kut in elkaar
Ben nou al een half uur bezig met het ding te bugfixen, zodat ie het uberhaupt doet... af en toe short open tags gebruiken / session_start in alle includes / etc. Op E_ALL wordt je daar niet blij van
1 2 | define('VERSION', '3.0'); |
ik heb het gewoon geintergreerd door zo'n POST te doen naar zon speciale PayPal paginaquote:Op maandag 13 augustus 2007 20:02 schreef Xcalibur het volgende:
Ja, godver
echt heel irritant.... staan ook systeem vereisten en randvoorwaarden bij die kennelijk niet kloppen (PHP versie op m'n server is lager dan nodig is, toch werkt het), en CC betalingen kunnen alleen in USD, maar in EUR doen ze het ook
En, uit de config file:
[ code verwijderd ]
Dat begrijp ik, maar net een tikkie anders. En aangezien ik al zo'n 23 jaar procedureel programmeer is dat tikkie anders verdomd moeilijk. En helaas heb ik net een tikkie te weinig tijd om er eens goed voor te gaan zittenquote:Op maandag 13 augustus 2007 09:10 schreef Xcalibur het volgende:
[..]
Mja, OOP.... het is eigenlijk gewoon een setje functies waarmee je een mail kunt opbouwen
-> Maak nieuwe mail
-> Voeg content toe
-> Voeg ontvangers toe
-> Voeg subject toe
-> Voeg attachment toe
-> Verzend mail
Eigenlijk is het gewoon 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 | function Kiekeboe_a () { if ( document.getElementById ( 'Barcode' ).value == 'y' ) { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe'; document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt'; } else { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt'; document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe'; } } function Kiekeboe_b () { if ( document.getElementById ( 'Barcode' ).value == 'n' ) { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeKiekeboe'; document.getElementById ( 'KlantVeld' ).className = 'KlantVerstopt'; } else { document.getElementById ( 'BarcodeVeld' ).className = 'BarcodeVerstopt'; document.getElementById ( 'KlantVeld' ).className = 'KlantKiekeboe'; } } </script> <div id="content"> <h2>Reparatie aanmelden</h2> <form action="#SITE_URL/task_add.php" method="post" name="TaskAdd" id="TaskAdd"> <table width="100%" border="0" cellspacing="0" cellpadding="1"> <tr> <td width="50%" align="left" valign="top">Bevat de PC een barcode?</td> <td width="50%" align="left" valign="top">Ja <input type="radio" name="Barcode" id="radio" value="y" onclick="Kiekeboe_a()" /> Nee <input type="radio" name="Barcode" id="radio2" value="n" onclick="Kiekeboe_b()" /></td> </tr> <tr id="BarcodeVeld" class="BarcodeVerstopt"> <td align="left" valign="top"> <img src="#SITE_URL/include/images/toptoright.gif" />Barcode</td> <td align="left" valign="top"><input type="text" name="textfield" id="textfield" /></td> </tr> <tr id="KlantVeld" class="KlantVerstopt"> <td colspan="2"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="50%" align="left" valign="top"> <img src="#SITE_URL/include/images/toptoright.gif" />Naam</td> <td width="50%" align="left" valign="top"><input type="text" name="textfield2" id="textfield2" /></td> </tr> <tr> <td width="50%" align="left" valign="top"> <img src="#SITE_URL/include/images/toptoright.gif" />Telefoonnummer</td> <td width="50%" align="left" valign="top"><input type="text" name="textfield3" id="textfield3" /></td> </tr> </table> </td> </tr> <tr> <td align="left" valign="top" colspan="2"> </td> </tr> <tr> <td align="center" valign="top" colspan="2"><input type="image" name="imageField" src="#SITE_URL/include/images/buttons/task_toevoegen.jpg"></td> </tr> </table> </form> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 | display: none; } .BarcodeKiekeboe { display: inline table-row; } .KlantVerstopt { display: none; } .KlantKiekeboe { display: inline table-row; } |
Zo gebruik ik classes ook, 1 class met user functies, 1 class met core functies, 1 class met administratieve functies...etcquote:Op maandag 13 augustus 2007 21:55 schreef Xcalibur het volgende:
@Swets: Ik moet zeggen dat ik dat OOP ook nog niet echt lekker begrjip... ik gebruik classes vooral als handige methode om bij elkaar horende functies en variabelen te groeperen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | var Barcode = document.getElementById('Barcode'); var BarcodeVeld = document.getElementById('BarcodeVeld'); var KlantVeld = document.getElementById('KlantVeld'); switch(Barcode.value){ case "y": BarcodeVeld.className = 'BarcodeKiekeboe'; KlantVeld.className = 'KlantVerstopt'; break; case "n": BarcodeVeld.className = 'BarcodeKiekeboe'; KlantVeld.className = 'KlantVerstopt'; break; default: BarcodeVeld.className = 'BarcodeVerstopt'; KlantVeld.className = 'KlantKiekeboe'; break; } } |
Het is nog vrij simpel. In het geval van de email-class kun je het het best zien als een fysiek object, een echt emailtje. Daar voer je functies op uit, die manipuleer je, en met de methode "send" gaat hij vervolgens de deur uit.quote:Op maandag 13 augustus 2007 21:55 schreef Xcalibur het volgende:
@Swets: Ik moet zeggen dat ik dat OOP ook nog niet echt lekker begrjip... ik gebruik classes vooral als handige methode om bij elkaar horende functies en variabelen te groeperen
Wacht maar tot je ingewikkelde web applicaties moet bouwen, dan word het pas echt onoverzichtelijk.quote:Op maandag 13 augustus 2007 21:58 schreef wobbel het volgende:
[..]
Zo gebruik ik classes ook, 1 class met user functies, 1 class met core functies, 1 class met administratieve functies...etc![]()
Wat ik over het algemeen doe is classes gebruiken als een representatie van mijn database, en "handlers" om deze classes te persisteren.quote:Op maandag 13 augustus 2007 22:11 schreef Xcalibur het volgende:
Zo gebruik ik classes ook
Misschien is dat wel de bedoeling, maar ik heb het gevoel dat het kwartje nog niet helemaal is gevallen bij mij
Die werkt helaas niet....quote:
idd een post request naar http://www.paypal.com/cgi-bin/webscr/quote:Op maandag 13 augustus 2007 21:16 schreef wobbel het volgende:
[..]
ik heb het gewoon geintergreerd door zo'n POST te doen naar zon speciale PayPal pagina
1 |
Ten eerste, gebruik altijd ID's, deze zijn namelijk uniek... dat is de veiligste manierquote:Op dinsdag 14 augustus 2007 21:36 schreef Youp_van_t_Hek het volgende:
Oke, ik ben een vrij grote n00b op dit gebied maar ik heb dus een vraag:
Allereest: wat is de bedoeling: ->
Ik wil uit 2 tabellen waardes gebruiken. Ik noem ze tabel A en B. Uit A komt een naam, bijv, "Piet" en "Jan". Piet heeft ID1 , Jan ID2.
In een andere tabel heb ik o.a. een veld "binnen" en "buiten" als INT, dus '1' staat voor Piet, '2' voor Jan. Nu is het de bedoeling om met een query een overzichtje te maken van wie er binnen en buiten staat. Zoiets dus:
Nummer - Dag - Binnen - Buiten
1 ----- Maandag ----- Piet --- .Jan ......
2 ------ Dinsdag. ---- Piet ---- Frits ......
3 ------ Woensdag - Frits ---- Piet ......
etc.
Nu kan ik wel datzelfde schema voor elkaar krijgen als ik de nummerieke ID's gebruik die in tabel B staan (1, 2, 3, etc) maar ik wil dus die namen gebruiken en geen getallen.
[ code verwijderd ]
en daarmee krijg ik dus wel namen bij bijvoorbeeld binnen erbij staan maar dan staan bij buiten nog steeds de getallen (in dit voorbeeld 2,3,1)
Hoe kan ik bij beide kolommen een naam laten zien?
alvast bedankt, hopelijk snappen jullie het
1 2 3 4 | FROM tbl_dagen a LEFT JOIN tbl_medewerkers b ON (a.binnen = b.id) LEFT JOIN tbl_medewerkers c ON (a.buiten = c.id) |
Ja gewoon de melding geven er is een nieuwe update!quote:Op donderdag 16 augustus 2007 10:18 schreef JeRa het volgende:
Eén van de vele features van mijn CMS in wording wordt dan ook de mogelijkheid om een gigantische waarschuwing weer te geven bij security updates zodra er wordt ingelogd als een user met voldoende rechten.
Ik heb eigenlijk nooit begrepen waarom dat soort pakketten niet met een soort 'auto-update' functie komen.quote:Op donderdag 16 augustus 2007 10:18 schreef JeRa het volgende:
Eén van de vele features van mijn CMS in wording wordt dan ook de mogelijkheid om een gigantische waarschuwing weer te geven bij security updates zodra er wordt ingelogd als een user met voldoende rechten.
* WyriHaximus mompelt iets over altijd register_globals uit te zettenquote:Op donderdag 16 augustus 2007 10:15 schreef Swetsenegger het volgende:
http://www.webwereld.nl/a(...)rs-hoofdbrekens.html
Klopt, en dat je dan 5 keer nee kan zeggen, maar na de 5de keer alleen nog maar Jaquote:Op donderdag 16 augustus 2007 10:21 schreef Swetsenegger het volgende:
[..]
Ik heb eigenlijk nooit begrepen waarom dat soort pakketten niet met een soort 'auto-update' functie komen.
"Er zijn nieuwe updates voor uw CMS, wilt u die nu installeren?"
Ja precies ben ik zelf ook aan het maken. Niet alleen in me CMS maar ook met me phpBB dingen en alle andere scripts die ik nu aan het bouwen ben. Ga zelfs zo ver dat scripts zich zelf uit gaan zetten als er een security update is en als het maar dan een week geleden is uitgegeven.quote:Op donderdag 16 augustus 2007 10:18 schreef JeRa het volgende:
Eén van de vele features van mijn CMS in wording wordt dan ook de mogelijkheid om een gigantische waarschuwing weer te geven bij security updates zodra er wordt ingelogd als een user met voldoende rechten.
Ja als je je CMS ftp access geeft is dat ook absoluut geen probleemquote:Op donderdag 16 augustus 2007 10:21 schreef Swetsenegger het volgende:
[..]
Ik heb eigenlijk nooit begrepen waarom dat soort pakketten niet met een soort 'auto-update' functie komen.
"Er zijn nieuwe updates voor uw CMS, wilt u die nu installeren?"
Dat of gewoon alles uitschakelen.quote:Op donderdag 16 augustus 2007 10:25 schreef JortK het volgende:
[..]
Klopt, en dat je dan 5 keer nee kan zeggen, maar na de 5de keer alleen nog maar Ja
Goeie. Zoveel resources trekt het niet om even met de server van de developer te connecten. En als je het echt goed doet, dan kun je het complete CMS desnoods locken.quote:Op donderdag 16 augustus 2007 10:18 schreef JeRa het volgende:
Eén van de vele features van mijn CMS in wording wordt dan ook de mogelijkheid om een gigantische waarschuwing weer te geven bij security updates zodra er wordt ingelogd als een user met voldoende rechten.
Nee precies en het dan ook gewoon cache zodat je maar 1 keer per dag checked.quote:Op donderdag 16 augustus 2007 10:28 schreef Geqxon het volgende:
[..]
Goeie. Zoveel resources trekt het niet om even met de server van de developer te connecten. En als je het echt goed doet, dan kun je het complete CMS desnoods locken.
Desnoods via AJAX, zodat de pagina doorlaad, en users er geen last van hebben. Al kunnen users dan ook Javascript uitschakelen, maar och, it's for there own safety.quote:Op donderdag 16 augustus 2007 10:33 schreef WyriHaximus het volgende:
[..]
Nee precies en het dan ook gewoon cache zodat je maar 1 keer per dag checked.
Heb ik aan zitten te denken maar dat lijkt me uiteindelijk geen goed idee. Mocht ik ooit een bug hebben laten zitten die het daadwerkelijk updaten voorkomt, wil je natuurlijk niet het hele CMS locken totdat er geüpdatet wordt (want dat gebeurt dan nooit).quote:Op donderdag 16 augustus 2007 10:28 schreef Geqxon het volgende:
[..]
Goeie. Zoveel resources trekt het niet om even met de server van de developer te connecten. En als je het echt goed doet, dan kun je het complete CMS desnoods locken.
Als het in een module is kan je natuurlijk makkelijk die module uitschakelen is het in je core dan word het idd een ander verhaal.quote:Op donderdag 16 augustus 2007 10:48 schreef JeRa het volgende:
[..]
Heb ik aan zitten te denken maar dat lijkt me uiteindelijk geen goed idee. Mocht ik ooit een bug hebben laten zitten die het daadwerkelijk updaten voorkomt, wil je natuurlijk niet het hele CMS locken totdat er geüpdatet wordt (want dat gebeurt dan nooit).
Printscreen -> opslaan -> uploadenquote:Op donderdag 16 augustus 2007 11:01 schreef Darkomen het volgende:
Kent iemand trouwens een script welke de XML van Google Analytics een beetje mooi weergeeft zodat je deze ook op je eigen site kan zetten?
Is namelijk flink veel werk om dit zelf te gaan maken
Toch gewoon die XML parsen en dan in een tabelletje douwenquote:Op donderdag 16 augustus 2007 11:01 schreef Darkomen het volgende:
Kent iemand trouwens een script welke de XML van Google Analytics een beetje mooi weergeeft zodat je deze ook op je eigen site kan zetten?
Is namelijk flink veel werk om dit zelf te gaan maken
JA je zult toch eerst moeten parsen wil je er grafiekjes van kan makenquote:Op donderdag 16 augustus 2007 11:09 schreef Darkomen het volgende:
Heb je wel eens gezien hoe groot die xml file is ;-)
Zijn heeeel wat tabelletjes, maar het zou leuk zijn als de boel leuk in grafiekjes verwerkt wordt.
Je bedoelt als een onafhankelijk proces (fork), of moet het proces ook gegevens naar de gebruiker verzenden?quote:Op donderdag 16 augustus 2007 15:35 schreef Geqxon het volgende:
Is het mogelijk om, als de gebruiker een pagina opvraagt, een PHP script in de achtergrond te laten draaien?
http://php.net/ignore_user_abort zoiets?quote:Op donderdag 16 augustus 2007 15:41 schreef Geqxon het volgende:
In de vorm van: Als de gebruiker een pagina opent, wil ik een langdurend PHP script draaien. Op het moment moet de gebruiker dan wachten totdat het process afgelopen is, voordat de pagina geladen is. Vandaar dat ik hem gescheiden op de achtergrond wil laten draaien.
Of is het ook mogelijk de pagina richting de gebruiker "af te sluiten" , en het dan te draaien? ob_close oid?
Dat staat hier standaard al aan. Als ik de browser tussentijds afsluit gaat hij nog lekker door. Dat is het ook niet, ik wil dat de gebruiken de pagina binnen 4 seconde compleet ingeladen heeft, de connectie richting de gebruiker afgesloten is (waardoor het lijkt alsof de pagina compleet geladen is), maar dat hij nog wel doorhobbelt.quote:Op donderdag 16 augustus 2007 15:45 schreef WyriHaximus het volgende:
[..]
http://php.net/ignore_user_abort zoiets?
exec dusquote:Op donderdag 16 augustus 2007 15:47 schreef Geqxon het volgende:
[..]
Dat staat hier standaard al aan. Als ik de browser tussentijds afsluit gaat hij nog lekker door. Dat is het ook niet, ik wil dat de gebruiken de pagina binnen 4 seconde compleet ingeladen heeft, de connectie richting de gebruiker afgesloten is (waardoor het lijkt alsof de pagina compleet geladen is), maar dat hij nog wel doorhobbelt.
Yeah weet alleen niet zeker of het standaard in de background gaat draaien of nietquote:Op donderdag 16 augustus 2007 16:01 schreef Geqxon het volgende:
[ code verwijderd ]
? Of moet het iets zijn als:
[ code verwijderd ]
?
Apache op Windows.![]()
quote:I noticed that a couple of contributers planned on having threads running in background while operation continues.
If you have a script that will function for itself there is an easy solution: call it through fsockopen (request to webserver) and do not wait for the answer. To make sure process is called correctly on all operating systems I had to add an fgets but break after first couple of bytes.
example main script
1 2 3 4 5 6 7 8 9 10 | echo "This is main thread, returning immediately"; $fp = fsockopen( <addyourcalltoscript> ); //fputs($fp, <yourvariablestosend>); while(!feof($fp)){ fgets($fp, 128); break; } fclose($fp); ?> |
quote:example child script
1 2 3 4 5 6 | // make sure script runs without stopping // set_time_limit(0); ignore_user_abort(true); // your code ?> |
ik heb het gevoel dat de headers niet meegestuurd wordenquote:Delivered-To: @gmail.com
Received: by 10.65.239.16 with SMTP id q16cs277131qbr;
Thu, 16 Aug 2007 12:30:02 -0700 (PDT)
Received: by 10.82.181.10 with SMTP id d10mr3121583buf.1187292601869;
Thu, 16 Aug 2007 12:30:01 -0700 (PDT)
Return-Path: <www-data@-desktop>
Received: from -desktop (195-241-92-20.dsl.ip.tiscali.nl [195.241.92.20])
by mx.google.com with ESMTP id i7si1328629nfh.2007.08.16.12.30.01;
Thu, 16 Aug 2007 12:30:01 -0700 (PDT)
Received-SPF: neutral (google.com: 195.241.92.20 is neither permitted nor denied by best guess record for domain of www-data@-desktop) client-ip=195.241.92.20;
Authentication-Results: mx.google.com; spf=neutral smtp.mail=www-data@-desktop
Date: Thu, 16 Aug 2007 12:30:01 -0700 (PDT)
Message-Id: <46c4a5b9.07eb300a.653c.1d6dSMTPIN_ADDED@mx.google.com>
Received: by -desktop (Postfix, from userid 33)
id 6B4DA1E01CF; Thu, 16 Aug 2007 21:29:59 +0200 (CEST)
To: <@gmail.com>
Subject: pir,please activate your account on x
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
To: <@gmail.com>
From: x team <@gmail.com>
Message-Id: <20070816192959.6B4DA1E01CF@-desktop>
Date: Thu, 16 Aug 2007 21:29:59 +0200 (CEST)
<html><head><title>,please activate your account on ttrade</title></head><body>Hi (pir), <br/> <br/> Someone, probably you, has just registered a new account on x <br/> You now only have to activate your account by clicking this link: <br/> <a x me, or paste the link to your browser</a><br/> <a x <br/> <br/> Have fun! x Team</body></html>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | $to = $_POST['realname']." <".$_POST['email'] . ">"; $subject = $lang['remail']['subject']; $subject = preg_replace("/%name%/i",$_POST['nick'],$subject); $message = "<html><head><title>".$lang['remail']['subject']."</title></head><body>"; $message .= $lang['remail']['message']; $message .= "</body></html>"; $message = preg_replace("/\|\|/i","<br/>",$message); $message = preg_replace("/%name%/i",$_POST['realname'],$message); $message = preg_replace("/%nickname%/i",$_POST['nick'],$message); $message = preg_replace("/%link%/i",$link,$message); (i)$headers = 'MIME-Version: 1.0' . "\r\n"; (i)$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; (i)$headers .= 'To: ' . $_POST['email'] . (i)$headers .= 'From: x team <@gmail.com>' . "\r\n"; (i)if(mail($to, $subject, $message, $headers)){ array_push($msg,"prio3!!!_".$lang['esucces']); }ELSE{ array_push($msg,"prio1!!!_".$lang['efail']); } |
Ik kan je aanbevelen Swift te gebruiken. Enorm portable aangezien het een volledig PHP gebaseerde mailer is (dus geen sendmail configuraties) en het abstraheert het begrip mailen goedquote:Op donderdag 16 augustus 2007 21:59 schreef PiRANiA het volgende:
wie helpt me?
Ooh die ga ik zeker onthoudenquote:Op donderdag 16 augustus 2007 23:05 schreef autocue het volgende:
[..]
Ik kan je aanbevelen Swift te gebruiken. Enorm portable aangezien het een volledig PHP gebaseerde mailer is (dus geen sendmail configuraties) en het abstraheert het begrip mailen goed.
Okee,quote:Op donderdag 16 augustus 2007 23:05 schreef autocue het volgende:
[..]
Ik kan je aanbevelen Swift te gebruiken. Enorm portable aangezien het een volledig PHP gebaseerde mailer is (dus geen sendmail configuraties) en het abstraheert het begrip mailen goed.
Aangenomen dat de "rn"'s windows linefeeds ("\r\n") zijn zou ik zo op het eerste oog zeggen dat er enkel een linefeed mist achter de 'To' header-regel. Als dat niet het probleem is zou je nog kunnen controleren of de gegenereerde header niet vervormd is door bijv. escaping in je $_POST. Succes in elk gevalquote:Op vrijdag 17 augustus 2007 08:34 schreef PiRANiA het volgende:
[..]
Okee,
maar zou je misschien kunnen kijken naar de gegeven code?
Het zou moeten werken...
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |