Heb ik geprobeerd. Zelfde resultaatquote:Op zondag 1 april 2007 23:38 schreef Frenkeman het volgende:
Je moet variabelen altijd buiten de quotes houden
Maak er eens van:
[ code verwijderd ]
etc.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | include("config.php"); $sql = "SELECT naam,status FROM gebruikers WHERE DATE_SUB(NOW(),INTERVAL 10 MINUTE) <= lastactive ORDER BY naam ASC"; $query = mysql_query($sql); $tellen = mysql_num_rows($query); $i = 1; while($rij = mysql_fetch_object($query)) { $naam = htmlspecialchars($rij->naam); $status = htmlspecialchars($rij->status); if($status == 1) { $naam = "<b>".$naam."</b>"; } echo $naam; if($i != $tellen) { echo ", "; } $i++; } ?> |
Op zich is heel die code niet eens nodig.quote:Op maandag 2 april 2007 00:40 schreef JohannesPaulus het volgende:
Het gaat om een PHP inlogsysteem. Ik wil wanneer ik inlog mijn username kunnen zien.
Net als op FOK! dus: Je bent ingelogd als JohannesPaulus.
Met onderstaand code kun je zien welke leden er allemaal online zijn. Ik wil een apart query maken om alleen mijn eigen username te kunnen zien zodra ik ben ingelogd...anyone?
[ code verwijderd ]
1 2 3 4 5 | $_SESSION['user'] = htmlspecialchars($_POST['user']); ....... echo $_SESSION['user']; ?> |
1 2 3 4 5 | $_SESSION['user'] = $_POST['user']; ....... echo htmlspecialchars($_SESSION['user']); ?> |
Ja. SuperRembo bedoelt alleen dat je de rauwe data in je sessie moet stoppen, zodat je die ook nog eens voor iets anders kunt gebruiken dan enkel weergave van die naam.quote:Op maandag 2 april 2007 11:09 schreef Geqxon het volgende:
Zelf doe ik altijd mysql-real-escape-string voordat ik iets in een database invoer, en een htmlspecialchars als ik iets in de browser toon. Lijkt mij zelf het beste, toch?
Ja ik had het al geupload op mijn server en de script geinstalleerd maar mijn probleem is nog niet opgelostquote:Op maandag 2 april 2007 12:15 schreef Darkomen het volgende:
Probeer eens de opvolger van dat script Johanners Paulus.
http://www.phphulp.nl/php/scripts/8/564/
Deze lijkt mij een stuk beter, en misschien is jouw 'probleem' daarin al opgelost.
1 2 3 4 | foreach ($error as $errors) {$this->content .= $errors;} $this->content .= $this-aanmelden; |
Er staat ook $this MIN aanmelden, niet $this pijltje aanmeldenquote:Op maandag 2 april 2007 21:58 schreef ExCibular het volgende:
[ code verwijderd ]
Ik heb hier wat vreemds, als ik $this->aanmelden toevoeg op deze manier dan komt er een 1 te staan in plaats van de inhoud van $this->aanmelden. Als ik $this->aanmelden op deze plaats echo dan laat hij gewoon de correcte string zien.
thanx die had ik gemistquote:Op maandag 2 april 2007 22:05 schreef JeRa het volgende:
[..]
Er staat ook $this MIN aanmelden, niet $this pijltje aanmelden
PHP ziet een minteken staan dus convert zowel de linkerkant als de rechterkant naar integers. De linkerkant is convertable (gek genoeg) en wordt 1, de rechterkant een constante die niet bestaat en wordt dus 0. De vraag in deze is dus waarom (int)$this gelijk is aan 1quote:Op maandag 2 april 2007 22:33 schreef SuperRembo het volgende:
Wel vreemd dat php dit gewoon slikt en geen foutmelding geeft.
Apache is snel en gemakkelijk geïnstalleerd en die geef ik normaal dan ook de voorkeur. Aangezien ik momenteel echter ook met Visual Basic, ASP en .NET bezig ben zit ik vrijwel aan IIS vast gezien ASP daar voornamelijk op draait.quote:Op dinsdag 3 april 2007 17:37 schreef Boschkabouter het volgende:
Maakt het eigenlijk wat uit of je Apache of IIS gebruikt om PHP pagina's te draaien?
Ik heb namelijk interesse om eens wat PHP te gaan leren, maar geen zin om Apache te instaleren en te gebruiken naast IIS. (en vooral omdat ik geen ruk van dat apache snap.)
Nee. Je kan geen fake adres gebruiken om iets te versturen via fsockopen. fsockopen is gewoon een wrapper voor connect() en daarmee heb je die optie niet.quote:Op dinsdag 3 april 2007 21:29 schreef Chandler het volgende:
Mensen,
Het is toch onmogelijk om middels PHP een fake IP adres te gebruiken als je bv via fsockopen gegevens verstuurt naar webservers?
en wat is nu je vraag?quote:Op woensdag 4 april 2007 21:54 schreef mschol het volgende:
oke vraagje:
als ik op een bepaalde site zoek krijg ik een lijst met matches, deze lijst wil ik importeren/invoegen in mijn eigen omgeving (die nog ongedefineerd is, dus lekker soepel)
wat wil ik precies:
ik tik in een zoek forumlier bij mijn site een naam in, er wordt door php een get request gedaan met de juiste url en vervolgens plukt hij de resultaten uit de gekregen pagina.
dit een voorbeeltje van een zoek term op de site:
http://www.animenewsnetwo(...)h.php?searchbox=love
hoe ik dat voor elkaar kan krijgenquote:
En wat lukt je niet? Het downloaden van de pagina? Het parsen van de resultaten? Het opslaan van de resultaten? Het weergeven van de resultaten?quote:Op woensdag 4 april 2007 22:24 schreef mschol het volgende:
[..]
hoe ik dat voor elkaar kan krijgen
dat hij dus alleen de resultaten eruit pakt en dat ik deze vervolgens kan hergebruiken in mijn omgeving..
ik weet dat er een functie voor was maar welke weet ik dus niet meerquote:Op woensdag 4 april 2007 23:24 schreef JeRa het volgende:
[..]
En wat lukt je niet? Het downloaden van de pagina? Het parsen van de resultaten? Het opslaan van de resultaten? Het weergeven van de resultaten?
twee problemen heb je dan wel:quote:
1 2 3 4 5 6 | $contents=file_get_contents('http://www.animenewsnetwork.com/encyclopedia/search.php?searchbox=love'); $to_match=substr($contents,($a=strpos($contents,'<!-- google_ad_section_start -->')),(strpos($contents,'<!-- google_ad_section_end -->')-$a)); preg_match_all('#<a href="(.*?)">(.*?)</a>#i',$to_match, $matches); var_dump($matches); ?> |
je hebt gelijk, ik ben veel te aardig anderen hun werk te doenquote:Op donderdag 5 april 2007 12:30 schreef Geqxon het volgende:
Ik had nog niet op de link geklikt, de eregi zoals ik hem heb pakt inderdaad alles. Het was puur een richtlijn
Verder is mijn voorbeeld uiteraard basic, om te laten zien hoe het kan. Verdere optimalisatie is een stap verder.
interessant. Ben benieuwd of er een lijstje is met gevallen waarin ereg() sneller is als preg_replace? Heb met google in ieder geval niks gevonden.quote:Op donderdag 5 april 2007 15:02 schreef JeRa het volgende:
@ralfie
De preg_* alternatieven voor ereg* functies zijn inderdaad vaak sneller, maar niet altijd. Zo heb ik ondervonden dat als je snel tekens wilt vervangen die niet in een subset van characters voorkomen ([^abc123etc]) de eregi véél sneller is dan de preg_replace
Voor zover ik weet ondersteunt PHP5 geen static constructors. Je zou het eventueel wél zo kunnen doen:quote:Op donderdag 5 april 2007 17:36 schreef CiQNiZ het volgende:
Hoi,
Stel ik heb een klasse.
Met daarin in ieder geval een static (private) variabele en een static (public) method.
In mijn code roep ik op eens die method op zonder een object te maken. Is het dan mogelijk dat er een constructor uitgevoerd zal worden? Zodat die variabele dan een keer gezet zal worden, en daarna niet meer (check in de constructor)?
Dit alles, uiteraard, in PHP5.
1 2 3 4 5 6 7 8 | Voorbeeld::waarde = 3; class Voorbeeld { public static $waarde; } ?> |
Ja... Maar...quote:Op donderdag 5 april 2007 17:46 schreef JeRa het volgende:
[..]
Voor zover ik weet ondersteunt PHP5 geen static constructors. Je zou het eventueel wél zo kunnen doen:
[ code verwijderd ]
1 2 3 4 5 6 7 | //niet statisch, dus wel een object aanmaken: $handle = new handler(); // zet de private var via de __construct() $handle->execA(); $handle->execB(); //enz. ?> |
1 2 3 4 5 6 7 | //statisch, en eerst maar dan die check uitvoeren en variabele zetten: handler::checkIt(); handler::execA(); handler::execB(); //enz. ?> |
Als je 30 methodes in een class hebt die aangeroepen kunnen worden terwijl je variabele niet geïnitialiseerd is moet je je toch eens ernstig afvragen of je wel het goede design te pakken hebtquote:Op donderdag 5 april 2007 17:59 schreef CiQNiZ het volgende:
[..]
Dan werkt het zoals ik wil. Maar is dit te omzeilen (dat ik dus niet eerst die check hoef uit te voeren voordat ik een methode uit die klasse aanroep)?
1 2 3 4 5 6 | class Voorbeeld { public static $waarde = 2; } ?> |
Hmm ja, met constante waardes ja.quote:Op donderdag 5 april 2007 18:07 schreef JeRa het volgende:
[..]
Als je 30 methodes in een class hebt die aangeroepen kunnen worden terwijl je variabele niet geïnitialiseerd is moet je je toch eens ernstig afvragen of je wel het goede design te pakken hebtmaar waarom lukt het volgende niet?
[ code verwijderd ]
Op die manier is je waarde altijd geïnitialiseerd en hoef je niets te checken in je methodes. Wil je echter een object initialiseren in die variabele, dan zul je het moeten doen op de manier die ik in mijn vorige post beschreef
1 2 3 4 | // dus dit gaat nooit werken ;) private static $handle = self::getHandle(); ?> |
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 | class stranger { private static $handle; public static function handler() { if (empty(self::handle)) { self::handle = somereallyspecialclass::getHandle(); } } public static function execA() { someclass::specialExec(0,10); doSomething(); } public static function execB() { someclass::specialExec(60, 100); doSomethingElse(); doSomethingMore(); takeOverTheWorld(); } } class someclass { public static function specialExec($x, $y) { // tada: stranger::handler(); doSomethingWithXandY($x, $y); doSomethingMoreWith($x, stranger::handle); doSomethingMoreWith($y, stranger::handle); } } // en in normale code ziet het er dan zo uit: stranger::execA(); stranger::execB(); stranger::execA(); stranger::execB(); /* precies hoe ik het hebben wil dus. ** de methodes worden normaal opgeroepen en de ** (private en static) $handle wordt gewoon geupdate */ ?> |
Tja, je gaf nergens een definitiequote:
Probeer eens voor jezelf duidelijk te maken wat je precies wilt bereiken (en of het design tot dan toe wel afdoende is) en zet de scenario's uitquote:Het gaat er gewoon om dat bij uitbreidingen eventueel gewoon niet nagedacht hoeft te worden over die $handle. Als je een methode uit die klasse oproept dan moet dat gewoon automatisch gaan.
Volgens dit concept moet het gewoon werken, echter, verdient het wmb niet echt een schoonheidsprijs.
1 2 3 4 5 6 7 8 | StaticVoorbeeld::mijnObject = new DOTTObject(); class StaticVoorbeeld { public static $mijnObject; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class StaticVoorbeeld { private static $mijnObject; public function roepFunctieAan($functienaam, $args) { // Initialiseer object StaticVoorbeeld::initialiseerMijnObject(); // Roep functie aan call_user_func_array('StaticVoorbeeld::' . $functienaam, $args); // ofzo } // overige methodes } Staticvoorbeeld::roepFunctieAan('purpleTentacle', array('take', 'over', 'the', 'world!')); ?> |
Klopt. Ik gaf nergens een definitiequote:Op donderdag 5 april 2007 20:35 schreef JeRa het volgende:
[..]
Tja, je gaf nergens een definitie![]()
[..]
Probeer eens voor jezelf duidelijk te maken wat je precies wilt bereiken (en of het design tot dan toe wel afdoende is) en zet de scenario's uithier heb je wat voorbeelden die volgens mij het dichtste bij jouw probleem liggen:
1) Het private static object mag altijd geïnitialiseerd worden en verandert niet in de loop van de tijd: doe gewoon zoiets:
[ code verwijderd ]
Dan kun je toch prima die eerste methode plaatsen in dezelfde include als de static class zelf?quote:Het gaat dus om 1. Eenmaal geinitialiseerd is geinitialiseerd. Done = done.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |