Dan doe je bij iedere pageview weer die str_replace, en da's niet echt nodig. Dan kun je beter de tekst twee keer in de database zetten, 1 keer niet geparsed (makkelijk voor editen) en 1 keer geparsed (voor weergeven).quote:Op maandag 19 juni 2006 16:31 schreef Swetsenegger het volgende:
[..]
De str_replace werkt natuurlijk prima, alleen zou ik het doen bij het uitlezen van het bericht.
Dus je schrijft de userinput gewoon naar DB en bij uitlezen zet je code om naar smilies.
Besef wel dat je in dit geval meer dan twee keer zoveel databaseruimte nodig hebt. Normaal maakt dit niet zoveel uit, maar hoe meer data de harde schijf in één keer keer opvolgend kan inlezen hoe beter (en hier geldt dus dat als je grote rows hebt, de harde schijf wellicht onnodige seeks uitvoert). Voor een forum dat ik een paar jaar terug had geschreven voerde ik caching uit, die dus geparsede messages opsloeg in een aparte tabel en na een tijdje er weer uit gooide - maar dat is miss wat overdonequote:Op maandag 19 juni 2006 18:28 schreef Light het volgende:
[..]
Dan doe je bij iedere pageview weer die str_replace, en da's niet echt nodig. Dan kun je beter de tekst twee keer in de database zetten, 1 keer niet geparsed (makkelijk voor editen) en 1 keer geparsed (voor weergeven).
Je moet nog een stripslashes() over de variabele string gooien (of de prima methode van Roönaän gebruiken om alle GPC-variabelen te stripslashen), want nu werken strings met een apostrofe erin niet goedquote:Op maandag 19 juni 2006 20:28 schreef guitarist.nl het volgende:
[afbeelding]
Het is me gelukt
http://test.guitarist.nl/width/temp_icon.php?string=test12345678
bij sting kun je zelf wat invoeren, om het plaatje niet te groot te maken is max 75 karakters, alles daarna is foetsie
gewoon stripslashes($string); ?quote:Op maandag 19 juni 2006 20:32 schreef JeRa het volgende:
[..]
Je moet nog een stripslashes() over de variabele string gooien (of de prima methode van Roönaän gebruiken om alle GPC-variabelen te stripslashen), want nu werken strings met een apostrofe erin niet goed
Qua performance zal dit best sneller zijn, maar echt een mooie oplossing is het niet imo. Ik zou dan eerder naar goede cachingmethoden gaan kijken.quote:Op maandag 19 juni 2006 18:28 schreef Light het volgende:
[..]
Dan doe je bij iedere pageview weer die str_replace, en da's niet echt nodig. Dan kun je beter de tekst twee keer in de database zetten, 1 keer niet geparsed (makkelijk voor editen) en 1 keer geparsed (voor weergeven).
Mjup, en de methode van Roönaän vind je ergens op zijn site geloof ikquote:Op maandag 19 juni 2006 20:42 schreef guitarist.nl het volgende:
[..]
gewoon stripslashes($string); ?
Wat is de methode van Roonaan dan ?
timestap van maken, en vervolgens sorteren?quote:Op dinsdag 20 juni 2006 00:03 schreef Woeiii het volgende:
Iemand een idee hoe ik tijd van optredens op volgorde plaats?
van 12 tot 23 is geen probleem, maar van 23 tot 12 wel.. dus bijvoorbeeld:
22:00 tot 23:00
23:00 tot 00:00
01:00 tot 02:00
Bij de 00:00 gaat het telkens mis, want 00 is niets terwijl ie dit moet zien als 12 uur snachts.
er 24 uur van maken kan ook niet, want als het 01 wordt komt 01 onder 24 te staan doordat 01 <24 is.
wie o wie heeft een oplossing.
Werktniet.. 00:00:00 snapt ie niet dat later is dan 23:00:00.. Als ik dat doe komt het er zo uit te zien:quote:Op dinsdag 20 juni 2006 00:08 schreef the_disheaver het volgende:
[..]
timestap van maken, en vervolgens sorteren?
timestamp van datum en tijd?quote:Op dinsdag 20 juni 2006 00:11 schreef Woeiii het volgende:
[..]
Werktniet.. 00:00:00 snapt ie niet dat later is dan 23:00:00.. Als ik dat doe komt het er zo uit te zien:
00:00
01:00
22:00
23:00![]()
stripslashes_deep() staat op php.net en aangepast/verbetert ergens op roonaans site inderdaadquote:Op maandag 19 juni 2006 23:07 schreef JeRa het volgende:
[..]
Mjup, en de methode van Roönaän vind je ergens op zijn site geloof ik
komt het uit database? Want dan kan je simpelweg een `time` kolom opnemen, en daarop sorteren.quote:Op dinsdag 20 juni 2006 00:03 schreef Woeiii het volgende:
Iemand een idee hoe ik tijd van optredens op volgorde plaats?
van 12 tot 23 is geen probleem, maar van 23 tot 12 wel.. dus bijvoorbeeld:
22:00 tot 23:00
23:00 tot 00:00
01:00 tot 02:00
Bij de 00:00 gaat het telkens mis, want 00 is niets terwijl ie dit moet zien als 12 uur snachts.
er 24 uur van maken kan ook niet, want als het 01 wordt komt 01 onder 24 te staan doordat 01 <24 is.
wie o wie heeft een oplossing.
Klopt, zo dacht ik ook, maar alleen time is niet voldoende want hoe moet ie weten dat 00:00 meer is dan 23?quote:Op dinsdag 20 juni 2006 08:21 schreef Swetsenegger het volgende:
[..]
komt het uit database? Want dan kan je simpelweg een `time` kolom opnemen, en daarop sorteren.
nee, niemand?quote:Op maandag 19 juni 2006 17:38 schreef Ewaldus het volgende:
ik ben dus dikke n00b met linux enzo, nu heb ik samen met een vriend een dedicated aangeschaft alleen komen we erachter dat mijn scripts alleen onder php5 draaien.
Wie weet een stap voor stap tutorial waar wordt verteld hoe we goed kunnen upgraden?
We draaien CentOS 4. Ik heb zelf al gezocht maar dat mocht op niets uit lopen..
Bedoel je dat je scripts geschreven zijn voor PHP5 en onder PHP4 draaien, of dat je scripts geschreven zijn voor PHP4 en dat ze nu onder PHP5 draaien? Ik gok het eerste maar even voor de zekerheidquote:Op maandag 19 juni 2006 17:38 schreef Ewaldus het volgende:
ik ben dus dikke n00b met linux enzo, nu heb ik samen met een vriend een dedicated aangeschaft alleen komen we erachter dat mijn scripts alleen onder php5 draaien.
Er zijn best wel wat dingen veranderd sinds PHP5, maar waar je vooral even naar moet kijken zijn waarschijnlijk de superglobals en het gebruik hiervan in je scripts.quote:
Ja dan doe je dus een datetime kolomquote:Op dinsdag 20 juni 2006 10:01 schreef Woeiii het volgende:
[..]
Klopt, zo dacht ik ook, maar alleen time is niet voldoende want hoe moet ie weten dat 00:00 meer is dan 23?De oplossing is date + time 20 juni 00:00 is meer dan 19 juni 23:00
![]()
Werkt goed nu![]()
Dat heeft niet zozeer iets te maken met PHP5 aangezien dit een optie is die je ook in PHP4 kon wijzigen. De defaults zijn gewoon anders sinds PHP5, maar administrators met een beetje verstand hebben de register_globals ook in PHP4 op Off gezet hoor.quote:Op dinsdag 20 juni 2006 12:39 schreef Scorpionsworld het volgende:
[..]
Er zijn best wel wat dingen veranderd sinds PHP5, maar waar je vooral even naar moet kijken zijn waarschijnlijk de superglobals en het gebruik hiervan in je scripts.
zonder php-codequote:Op dinsdag 20 juni 2006 17:45 schreef fokME2 het volgende:
Ik kreeg de opdracht om een site te debuggen. Er wordt een 500 internal server error gegenereerd door php.
Dit komt vrijwel zeker van de mail() functie, heeft iemand een idee hoe dat kan? En bij voorkeur ook hoe ik het op kan lossen?
De error komt al als de functie zo wordt gebruikt:quote:
1 2 3 | mail("mail@domein.tld","onderwerp","inhoud"); ?> |
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 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>danielpunt</title> <?php echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"stijl.css\" />"; ?> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <div id="navigation"> <ul> <?php if ($page=="1") { echo "<li id=\"currentpage\">pagina 1</li>"; } else { echo "<li><a href=\"index.php?page=1\">pagina 1</li></a>"; } ?> <?php if ($page=="2") { echo "<li id=\"currentpage\">pagina 2</li>"; } else { echo "<li><a href=\"index.php?page=2\">pagina 2</li></a>"; } ?> <?php if ($page=="3") { echo "<li id=\"currentpage\">pagina 3</li>"; } else { echo "<li><a href=\"index.php?page=3\">pagina 3</li></a>"; } ?> </ul> </div> <br /> <p> <?php @ require_once ("$page.html"); ?> </p> </body> </html> |
Wat werkt er niet?quote:Op dinsdag 20 juni 2006 19:57 schreef super-muffin het volgende:
Waarom werkt dit wel op mijn localhost (met PHP5) en niet op mijn webserver (PHP versie weet ik niet)?
Moet ik dan switch gebruiken?
Wat zeggen je Apache2-logs en de configuratie van PHP over het mailen?quote:Op dinsdag 20 juni 2006 18:30 schreef fokME2 het volgende:
[..]
De error komt al als de functie zo wordt gebruikt:
[ code verwijderd ]
superglobalsquote:Op dinsdag 20 juni 2006 19:57 schreef super-muffin het volgende:
Waarom werkt dit wel op mijn localhost (met PHP5) en niet op mijn webserver (PHP versie weet ik niet)?
Moet ik dan switch gebruiken?
[ code verwijderd ]
De pagina zelf: http://danielpunt.nl/huidigepagina/index.php
Geen sendmail(wapper) geinstalleerd op die computer?quote:Op dinsdag 20 juni 2006 18:30 schreef fokME2 het volgende:
[..]
De error komt al als de functie zo wordt gebruikt:
[ code verwijderd ]
Nee, het pad naar sendmail is "/usr/sbin/sendmail -t -i" voor PHP, ongeacht of het geïnstalleerd is of nietquote:Op dinsdag 20 juni 2006 20:53 schreef fokME2 het volgende:
Ik heb geen idee, het is niet mijn hosting etc. Zal het is navragen.
Edit:
Path to sendmail /usr/sbin/sendmail -t -i
Sendmail is dus geinstalleerd neem ik aan.
nou, eerlijk gezegd ben ik redelijk nieuw met Linux en weet niet waar ik moet beginnen met upgraden. Ik ben opzoek naar tutorials maar kan nergens een goede vinden.. Het lijkt mij logisch dat ik eerst php 4 moet unstallen alvorens php 5 te gaan instaleren enz. enz.quote:
Lijkt mij niet logisch, het is geen Windows zegquote:Op dinsdag 20 juni 2006 21:39 schreef Ewaldus het volgende:
[..]
Het lijkt mij logisch dat ik eerst php 4 moet unstallen alvorens php 5 te gaan instaleren enz. enz.
Moet je nagaan wat voor n00bleek ik ben met Linux ... Ik had het trouwens niet verwacht maar wilde geen risico's lopen.quote:Op dinsdag 20 juni 2006 21:50 schreef JeRa het volgende:
[..]
Lijkt mij niet logisch, het is geen Windows zegvoor zover ik weet maakt CentOS gebruik van een RPM package manager. Meestal hoort daar nog een tool bij (zoals yum bijvoorbeeld) om die packages van internet te downloaden en meteen te upgraden, en waarmee je je systeem up-to-date kunt houden. Kun je niets vinden op de supportafdeling van centos.org?
(en dan vooral de fora)
1 2 3 4 5 6 7 8 9 | require_once("CTest.php"); $test = new Test(); $test->setVar(5); echo ($test->getVar()); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | { private $var = 0; public function __construct() { echo "Creating " . $this . "<br>"; } public function __destruct() { echo "Destructing " . $this . "<br>"; } public function setVar($_var) { $this->$var = $_var; } public function getVar() { return $this->$var; } } |
1 2 3 4 5 6 | Notice: Undefined variable: var in /home/martijn/www/CTest.php on line 19 Fatal error: Cannot access empty property in /home/martijn/www/CTest.php on line 19 Destructing Object id #1 |
echo is geen functiequote:Op dinsdag 20 juni 2006 22:21 schreef Tijn het volgende:
Ik wil een beginnetje maken met OOP in PHP5 (PHP 5.1.2 om precies te zijn). Ik kan redelijk met pointers en classes enzo omgaan in C++ en dacht het daarom ook zonder al teveel moeite in PHP te moeten doen.
Maar het wil nog niet echt vlotten. Ik heb eerst even een simpel test-object opgezet die alleen maar een waarde vasthoudt, verder niets. En dat lukt al niet
index.php
[ code verwijderd ]
CTest.php
[ code verwijderd ]
De output hiervan is:
[ code verwijderd ]
Regel 19 gaat dus mis, dat is $this->$var = $_var;. Blijkbaar kan het object Test z'n eigen member $var niet vinden. Ik snap echter niet waarom. Kan iemand me aanwijzen wat ik verkeerd doe?
echo() is een language construct maar kan op beide manieren gebruikt wordenquote:Op dinsdag 20 juni 2006 22:27 schreef Swetsenegger het volgende:
[..]
echo is geen functie
echo ($test->getVar());
echo $test->getVar();
Bedankt!quote:
Ik dacht dat je alleen bij print haakjes kon gebruiken en echo niet. Anyway, dat zal het probleem niet veroorzakenquote:Op dinsdag 20 juni 2006 22:30 schreef JeRa het volgende:
[..]
echo() is een language construct maar kan op beide manieren gebruikt wordenals je echter meerdere argumenten aan echo() wilt meegeven mag je geen haakjes gebruiken geloof ik.
Ja, ik ben een beetje gewend geraakt om om pointer->ding altijd haakjes te zetten, omdat in C++ wel eens foutmeldingen krijg als ik dat niet doe. Maar in PHP is dat blijkbaar niet zo nodig, dus kheb ze weer weggehaald.quote:Op dinsdag 20 juni 2006 22:27 schreef Swetsenegger het volgende:
[..]
echo is geen functie
echo ($test->getVar());
echo $test->getVar();
-edit- Hmz, waarschijnlijk snap ik het gewoon niet.
Het gaat ook over OOP, dus ik kan beter mijn mond houden
Alleen de 'buitenste' variabele heeft altijd een dollarteken, de rest nietquote:Op dinsdag 20 juni 2006 22:31 schreef Tijn het volgende:
[..]
Bedankt!
Ik was er net zelf ook achter gekomen door de voorbeelden op PHP.net eens goed te lezen. Ik vind het wel raar hoor. Ik ben eraan gewend geraakt dat variabelen in PHP een dollarsign ervoor hebben, en nu hebben ze dat opeens weer niet
Ja DIT begrijp ik welquote:Op dinsdag 20 juni 2006 22:33 schreef Tijn het volgende:
Oh en als je nou ff oplet, dan leer je ook OOP in PHP, want simpeler dan dit voorbeeld kom je het niet tegen
De theoretische achtergrond heb ik ook niet echt, maar ik vind de structuur van object-oriented programma's meestal makkelijker te volgen. Het wordt dan niet van die spaghetticode zeg maar.quote:Op dinsdag 20 juni 2006 22:34 schreef Swetsenegger het volgende:
[..]
sowieso ben ik nog steeds niet overtuigt van het nut van OOP. Ja ik weet het, ik ben stronteigenwijs.
Om eerlijk te zijn is OOP in PHP i.c.m. websites nogal overdreven, behalve als je met backends voor de database e.d. gaat werken. Dan kun je namelijk iets heel leuks toepassenquote:Op dinsdag 20 juni 2006 22:34 schreef Swetsenegger het volgende:
sowieso ben ik nog steeds niet overtuigt van het nut van OOP. Ja ik weet het, ik ben stronteigenwijs.
Nou, ik vind het stomquote:Op dinsdag 20 juni 2006 22:34 schreef JeRa het volgende:
[..]
Alleen de 'buitenste' variabele heeft altijd een dollarteken, de rest niethet is dus ook $obj->variabeleObject->variabele, $array['blaat']['ietsanders']->variabele[1], etc. Zoals jij het deed kon je dynamische namen oproepen (hij probeerde namelijk de inhoud van $var te gebruiken als naam voor de variabelen in je object).
Ik ben in 1983 met programmeren begonnen. I love spaghetti.quote:Op dinsdag 20 juni 2006 22:39 schreef Tijn het volgende:
[..]
De theoretische achtergrond heb ik ook niet echt, maar ik vind de structuur van object-oriented programma's meestal makkelijker te volgen. Het wordt dan niet van die spaghetticode zeg maar.
Het probleem is niet zo zeer dat ik het zelf nodig heb op dit moment. Het probleem is wel dat ik een 'incomplete' programmeur ben. En dat kan me opbreken op een gegeven moment, ook in een management functie mbt webdevelopment welke kant ik uiteindelijk toch graag op wil.quote:Op dinsdag 20 juni 2006 22:39 schreef JeRa het volgende:
[..]
Om eerlijk te zijn is OOP in PHP i.c.m. websites nogal overdreven, behalve als je met backends voor de database e.d. gaat werken. Dan kun je namelijk iets heel leuks toepassenclass extending.
Dat houdt in dat je in jouw applicatie één interface hebt om een database aan te spreken ($obj->query bijvoorbeeld) terwijl je op de achtergrond bv. 5 verschillende classes hebt geschreven voor 5 verschillende DB-types. Dán is het erg handig, want dat voorkomt dat je voor al die verschillende types aparte code moet gaan schrijven op elke plek dat je een query wilt uitvoerenik heb dat in vorige projecten gebruikt om zowel PHP-mysql als PHP-mysqli aan te kunnen spreken.
Ja, of een modulair concept, waarbij de ene klant de 'ideal betaling' module wel wil en de ander nietquote:Op dinsdag 20 juni 2006 22:43 schreef JeRa het volgende:
Oh, en OOP is ook heel erg handig als je bijvoorbeeld een applicatie met ondersteuning voor plugins beheert. Dan kun je een interface schrijven en dan kunnen anderen die interface implementeren en een plugin vlekkeloos in je applicatie verwerken
Nee, maar wat je zoekt is waarschijnlijk een interface, zie daarvoor de manualquote:Op dinsdag 20 juni 2006 22:57 schreef Tijn het volgende:
Kun je ook je object scheiden in een header-file waarin alleen definities staan en een file met de daadwerkelijke implementatie?
quote:Police officer: "...and we want you to interface with the local gay community."
Daffyd: "Ah I'm not really interface, I'm more into bum."
Hmm...quote:Op dinsdag 20 juni 2006 23:01 schreef JeRa het volgende:
[..]
Nee, maar wat je zoekt is waarschijnlijk een interface, zie daarvoor de manual
ja, dat klinkt inderdaad wel wat ik wil. Bedankt! Even lezenquote:Object interfaces allow you to create code which specifies which methods a class must implement, without having to define how these methods are handled.
Ik zou de interface in een apart bestand zetten, en in de classes gebruik maken van __autoload (of er zeker van zijn dat de interface op het begin van een mainscript wordt geincludet).quote:Op dinsdag 20 juni 2006 23:01 schreef Tijn het volgende:
Ah, dit heel goed. Wat is de netste manier om dit in m'n files te zetten? Zou ik de interface en de klasse in losse files moeten zetten, de klasse moeten includen in de file die het object wil gebruiken en de interface includen in de klasse? Of Kan ik net zo goed de interface en klasse in 1 file zetten en alleen deze includen vanuit de file die het object wil gebruiken?
Wow, coole feature! Dat ga ik dan zeker gebruikenquote:
Off topic: ik weet uit ervaring dat er genoeg mogelijkheden zijn voor mensen zonder kennis van techniek (die dat zelf niet toe willen geven) die werken op managementniveau in de webdevelopment business. Er is hoopquote:Op dinsdag 20 juni 2006 22:43 schreef Swetsenegger het volgende:
En dat kan me opbreken op een gegeven moment, ook in een management functie mbt webdevelopment welke kant ik uiteindelijk toch graag op wil.
1 2 3 4 5 6 7 8 9 10 11 | if ($name = strstr ($HTTP_USER_AGENT, "MSIE")) { echo '<iframe class="iframe" name="freem" src="home.html" id="freem" ALLOWTRANSPARENCY>'; } else { echo '<iframe class="iframe" name="freem" src="home.html" id="freem">'; } ?> |
Heel erg bedanktquote:Op woensdag 21 juni 2006 00:07 schreef JeRa het volgende:
@Sitethief
Als register_globals op Off staat werkt $HTTP_USER_AGENT niet. Beter gebruik je $_SERVER, dus $_SERVER['HTTP_USER_AGENT'].
Je kunt zo zeker weten welke methodes en variabelen een class moet implementeren zonder vast te leggen hóe ze die methodes implementeren. De applicatiecore hoeft alleen te weten dat een class een interface implementeert om zeker te weten dat het bepaalde methodes en/of variabelen kan aansprekenquote:Op woensdag 21 juni 2006 00:50 schreef fokME2 het volgende:
Ik snap nou niet precies waarom ik zo'n interface zou gebruiken?
Waarvoor is dat handig?
Een van de meest gebruikte voor PHP is http://www.phpdoc.org/quote:Op woensdag 21 juni 2006 01:33 schreef Tijn het volgende:
Woah. Dat is ook erg cool. Ik wist helemaal niet dat er tools waren om automatisch documentatie te genererenToevallig heb ik vorige week documentatie zitten tikken voor een schoolproject wat ik had gedaan en dit had me een hoop werk gescheeld
![]()
Er gaat een wereld voor me open vanavond, mensen
Die zijn er, op de voorwaarde dat je bijna net zoveel tijd aan je comments als aan je code besteedtquote:Op woensdag 21 juni 2006 01:33 schreef Tijn het volgende:
Woah. Dat is ook erg cool. Ik wist helemaal niet dat er tools waren om automatisch documentatie te genereren
Dat weet ik, dat doe ik nu al aan de hardware kantquote:Op dinsdag 20 juni 2006 23:42 schreef CraZaay het volgende:
[..]
Off topic: ik weet uit ervaring dat er genoeg mogelijkheden zijn voor mensen zonder kennis van techniek (die dat zelf niet toe willen geven) die werken op managementniveau in de webdevelopment business. Er is hoop
hangt er af wat van form het is:quote:Op woensdag 21 juni 2006 10:25 schreef liar het volgende:
Weet iemand misschien een goede anti-spam mogelijkheid voor forms?
Ik heb die image validation met CAPTCHA dingen geprobeerd, maar dat is vaak voor GD2.0 en dat kan mijn server niet aan (die heeftwel GD, maar 1 ofzo denk ik)..
http://www.noipo.org/index.php?id=278quote:Op woensdag 21 juni 2006 10:25 schreef liar het volgende:
Weet iemand misschien een goede anti-spam mogelijkheid voor forms?
Ik heb die image validation met CAPTCHA dingen geprobeerd, maar dat is vaak voor GD2.0 en dat kan mijn server niet aan (die heeftwel GD, maar 1 ofzo denk ik)..
Vraagje toevoegen:quote:Op donderdag 22 juni 2006 08:59 schreef liar het volgende:
nou: dat spambots er niet op kunnen posten (voor contact en gbook form)
je hebt van die image validation scripts, maar die lijken niet echt te werken bij mij
heeft iemand een ander idee?
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 | function submit_value($value){ $query="INSERT into TABLE (id,value) VALUES(0,'".$value."')"; if(mysql_query($query)){ return true; }else{ return false; } } $value=0; //Laatste record uit de db $value++; if(submit_value($value)){ //header }else{ /** * recursie * maar dit wordt in deze opzet WEER * if(submit_value($value)){ etc * wat natuurlijk niet werkbaar is */ } ?> |
Ja, maar hoequote:Op donderdag 22 juni 2006 20:51 schreef JeRa het volgende:
@Swetsenegger
Je moet de recursie-aanroep in de functie zelf laten plaatsvinden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function submit_value($value){ $value++; $query="INSERT into TABLE (id,value) VALUES(0,'".$value."')"; if(mysql_query($query)){ return $value; }else{ submit_value($value); } } $value=0; //Laatste record uit de db $value=submit_value($value); //header ?> |
Voor het toewijzen van een Product Identifierquote:[offtopic]
Mag ik vragen waar je dit in hemelsnaam voor nodig hebt?![]()
Ik laat het je zelf uitzoeken aan de hand van deze recursieve manier om een facultatieve waarde te berekenenquote:Op donderdag 22 juni 2006 21:02 schreef Swetsenegger het volgende:
[..]
Ja, maar hoe![]()
Dan moet ik dus op de een of andere manier ook value weer returnen omdat die global moet zijn
1 2 3 4 5 6 7 8 | { if ($v < 2) { return 1; } else { return fact($v - 1) * $v; } } |
En AUTO_INCREMENT voldoet niet, of MAX() en table locks gebruiken?quote:[..]
Voor het toewijzen van een Product Identifier
En dat begint handmatig wat problematisch te worden.
Nee, want er staan dus al enkele tientallen values in die ik onder geen beding mag gebruiken.quote:Op donderdag 22 juni 2006 21:05 schreef JeRa het volgende:
En AUTO_INCREMENT voldoet niet, of MAX() en table locks gebruiken?
Ik zou dan overigens niet voor de recursieve manier gaan, maar voor een andere, lineaire aanpak. Je kunt bijvoorbeeld met COUNT() en IS BETWEEN bepalen hoeveel id's er in bepaalde ranges liggen (om er zeker van te zijn of er vrije identifiers zijn) en met MAX() de maximale waarde een identifier in alle id's of binnen een range bepalen.quote:Op donderdag 22 juni 2006 21:07 schreef Swetsenegger het volgende:
[..]
Nee, want er staan dus al enkele tientallen values in die ik onder geen beding mag gebruiken.
Want?quote:Op donderdag 22 juni 2006 21:09 schreef JeRa het volgende:
[..]
Ik zou dan overigens niet voor de recursieve manier gaan, maar voor een andere, lineaire aanpak. Je kunt bijvoorbeeld met COUNT() en IS BETWEEN bepalen hoeveel id's er in bepaalde ranges liggen (om er zeker van te zijn of er vrije identifiers zijn) en met MAX() de maximale waarde een identifier in alle id's of binnen een range bepalen.
Recursieve aanroepen nemen veel stack geheugen in beslag. En die is niet zo heel groot; het is volgens mij ook één van de weinige manieren om PHP goed te laten crashenquote:Op donderdag 22 juni 2006 21:11 schreef Swetsenegger het volgende:
[..]
Want?
Voor performance hoef je het niet te doen, want er komt max 50 keer per jaar een nieuw record in
1 2 3 4 5 6 7 8 9 10 | function aargh() { aargh(); } aargh(); ?> |
1 2 | Segmentation fault |
Mjah, maar ik bouw geen infinite loopquote:Op donderdag 22 juni 2006 21:14 schreef JeRa het volgende:
[..]
Recursieve aanroepen nemen veel stack geheugen in beslag. En die is niet zo heel groot; het is volgens mij ook één van de weinige manieren om PHP goed te laten crasheneen lineaire aanpak neemt over het algemeen ook een constante hoeveelheid geheugen in beslag.
edit:
[ code verwijderd ]
[ code verwijderd ]
Er zijn op dit moment max 7 records om doorheen te loopen. Maar hoe is dat over een jaar, als er 50 of 100 records bijgezet zijn?quote:Op donderdag 22 juni 2006 21:40 schreef Swetsenegger het volgende:
[..]
Mjah, maar ik bouw geen infinite loopen er zijn max 7 records achter elkaar waar ik recursief doorheen moet loopen. Maar inderdaad goed om aan te denken.
vanaf heden tel ik gewoon vanaf 1 op hequote:Op donderdag 22 juni 2006 22:08 schreef Light het volgende:
[..]
Er zijn op dit moment max 7 records om doorheen te loopen. Maar hoe is dat over een jaar, als er 50 of 100 records bijgezet zijn?
1 2 3 4 5 6 7 8 9 10 11 | 9 10 11 12 2 3 4 5 7 6 |
1 2 3 4 | SELECT MAX(id) AS max_id FROM tabel INSERT INTO tabel (id) VALUES (max_id + 1) UNLOCK TABLES |
Een AUTO_INCREMENT kun je instellen op een beginwaarde. Als je die zet op de hoogste waarde aanwezig + 1, krijg je altijd unieke waardes.quote:Op donderdag 22 juni 2006 21:07 schreef Swetsenegger het volgende:
[..]
Nee, want er staan dus al enkele tientallen values in die ik onder geen beding mag gebruiken.
Een PID bestaat niet alleen uit een cijfer, dus het is iets ingewikkelder als hier geschetst. Maar ik had die recursieve functie nodigquote:Op donderdag 22 juni 2006 22:19 schreef JeRa het volgende:
@Swetsenegger
Waarom niet dit:
SELECT MAX(id) AS max_id FROM tabel
INSERT INTO tabel (id) VALUES (max_id + 1)
Ook dat gaat niet, want dan loop ik al bijna over de maximaal mogelijke PID heen.quote:Op donderdag 22 juni 2006 22:20 schreef JeRa het volgende:
[..]
Een AUTO_INCREMENT kun je instellen op een beginwaarde. Als je die zet op de hoogste waarde aanwezig + 1, krijg je altijd unieke waardes.
1 2 3 4 5 6 7 8 9 10 11 | $sock = socket_create(AF_INET,SOCK_STREAM,0)or die("could not create socket ".socket_strerror(socket_last_error())); $con = socket_connect($sock, "pop.hccnet.nl", "110") or die("could not connect socket ".socket_strerror(socket_last_error())); socket_write($sock,"user ******"); socket_write($sock,"pass ******"); socket_write($sock,"Retr 2"); echo(socket_read($sock,10000)); socket_write($sock,"quit"); ?> |
hmm imap_open werkt idd "iets" efficenterquote:Op vrijdag 23 juni 2006 13:42 schreef fokME2 het volgende:
@mschol:
Ik ben daar ook een tijdje meet bezig geweest. Heb het toen gedaan met imap_open. Werkt ook met pop3 naar mijn weten.
/ssl werkt ook niet /notls ook nietquote:Warning: imap_open(): Couldn't open stream {pop.hccnet.nl:110/novalidate-cert} in d:\www\mail.php on line 5
Can't open mailbox {pop.hccnet.nl:110/novalidate-cert}: invalid remote specification
1 2 3 4 5 | require_once("CGraph.php"); $grafiek = new Graph(); $grafiek->test(); |
1 2 3 4 5 6 7 8 9 | { public function test() { $image = imagecreatetruecolor(500, 500); $output = imagepng($image); return $output; } } |
1 |
Cursi zijn er genoeg te vinden, ikzelf heb het geleerd door veel scripts te bekijken en veel zelf uit te proberen. Je vind in de OP wel wat materiaal om ermee te beginnenquote:Op vrijdag 23 juni 2006 20:30 schreef Koewam het volgende:
Hoi
Ik wil beginnen met PHP schrijven. Dus niet kopieeren plakken en zo, maar echt zelf maken. Waar kun je dat snel leren? Of een cursusje downloaden?
Doet ie wel iets als je een echo 'blaat' in je test()-methode zet? Je naam voor de $output-variabele is een beetje ongelukkig gekozen, uit imagepng() komt namelijk een boolean die true is als het gelukt is om een plaatje te maken, niet de daadwerkelijke output. Het plaatje wordt namelijk rechtstreeks naar de stdout geschrevenquote:Op vrijdag 23 juni 2006 21:09 schreef Tijn het volgende:
Ik ben een object aan het maken die een grafiek output. Op zich lijkt het te werken (geen errors of warnings), maar het daadwerkelijke plaatje blijft uit. Ik heb m'n object daarom een test-methode gegeven en zelfs daar komt geen plaatje uit.
showGraph.php:
[ code verwijderd ]
CGraph.php:
[ code verwijderd ]
Als ik naar showGraph.php ga, verwacht ik een zwart vierkantje van 500 bij 500 pixels, maar ik zie niets. Wat doe ik fout?
ik heb et geleerd juist door te knippen + plakken en dinegn aan te passen.quote:Op vrijdag 23 juni 2006 20:30 schreef Koewam het volgende:
Hoi
Ik wil beginnen met PHP schrijven. Dus niet kopieeren plakken en zo, maar echt zelf maken. Waar kun je dat snel leren? Of een cursusje downloaden?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |