quote:Ik zou kiezen voor strlen($Details03['title_language'])
Bekend probleem. Ga vandaag maar eens proberen een soort van upload meter te maken voor PHP4 denk ikquote:Op vrijdag 11 mei 2007 09:53 schreef SHERMAN het volgende:
TVP.
Ik had van de week namelijk een gigantisch goed idee om met PHP te maken maar ik kan er nu niet meer opkomen.
Hehe meestal denk ik ze meestal helemaal uit in de trein. En dan ga ik ze thuis uit zitten werken terwijl ik ook nog een berg andere dingen te doen heb xDquote:Op vrijdag 11 mei 2007 12:17 schreef Darkomen het volgende:
Ik ben ook zo vergeetachtig, en daarom schrijf ik ideeën en soms hele stukken code op
quote:Op vrijdag 11 mei 2007 12:17 schreef Darkomen het volgende:
Ik ben ook zo vergeetachtig, en daarom schrijf ik ideeën en soms hele stukken code op
Je bedoelt een project management system met een todo-lijstje?quote:Op vrijdag 11 mei 2007 12:37 schreef SHERMAN het volgende:
Iemand interesse om voor ons vergeetachtigen een ideeen verzamel en uitwerk systeem te maken?
http://www.google.com/notebook/#b=BDRQnSwoQkNXx1-chquote:Op vrijdag 11 mei 2007 12:37 schreef SHERMAN het volgende:
Iemand interesse om voor ons vergeetachtigen een ideeen verzamel en uitwerk systeem te maken?
Same problem here. Het welbekende "misschien ook wel tof als je ook...." denkzinnetjequote:Op vrijdag 11 mei 2007 12:20 schreef JeRa het volgende:
Ik probeer goede ideeën te vermijden, omdat zodra ik ze heb ik ze ook dan moet implementerenja, ik heb een prioriteitsprobleem.
Same here. De bekende gedachte: Dit is veel toffer dan dat dus ik doe dit eerst wel ff. 5 uur later heb je nog niks aan het andere gedaanquote:Op vrijdag 11 mei 2007 14:51 schreef Mordreth het volgende:
[..]
Same problem here. Het welbekende "misschien ook wel tof als je ook...." denkzinnetje.
tvp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $x=1; while($x<=10) { $y=1; echo("<tr>"); while($y<=10) { echo("<td>X:$x,Y:$y</td>"); $y++; } echo("</tr>"); $x++; } ?> |
1 2 3 4 | <td></td> <td></td> </tr> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $cellen = 5; $regels = 10; echo '<table>'; for ($x = 0; $x < $regels; $x++) { echo '<tr>'; for ($y = 0; $y < $cellen; $y++) { echo '<td>' . $x "." . $y . '</td>'; } echo '</tr>'; } echo '</table>'; ?> |
1 |
1 |
hmm oke...quote:Op vrijdag 11 mei 2007 21:37 schreef Chandler het volgende:
Dat is toch eingelijk heel simpel.. hier een variabel voorbeeld :P (in notepad getyped)
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $display = 2; while($Details03 = mysql_fetch_assoc($result_detail03)) { if($cols == 0){ $tabel .= "<tr>n"; } if($Details03['title_language'] != '') { $tabel .= "<td nowrap="nowrap">".$Details03['title']." (".$Details03['title_language'].")</td>"; $cols++; } else { $tabel .= "<td nowrap="nowrap">".$Details03['title']."</td>"; $cols++; } if($cols == $display){ $tabel .= "</tr>n"; $cols = 0; } } ?> |
Ik weet niet of je html_entity_decode() nodig hebt (naar je eerste voorbeeld) maar je zoekt vooral naar urlencode() en rawurlencode()quote:Op zaterdag 12 mei 2007 03:00 schreef Geqxon het volgende:
Ik wil:
[ code verwijderd ]
vervangen in:
[ code verwijderd ]
Ik heb al zitten te spelen met htmlentities en htmlspecialchars, maar ik wil de string gaan omzetten zodat ik het direct kan Googlen (http://www.google.com/search?q=tuinieren+%26+schommelen)
Iemand tips?
Je zult het eerst van & amp; naar & om moeten zetten en dan door rawurlencode halen. Anders worden & en ; in & amp; ge-encoded en komt er iets totaal anders uitquote:Op zaterdag 12 mei 2007 13:46 schreef JeRa het volgende:
[..]
Ik weet niet of je html_entity_decode() nodig hebt (naar je eerste voorbeeld) maar je zoekt vooral naar urlencode() en rawurlencode()
Bedankt, dat was hem!quote:Op zaterdag 12 mei 2007 13:46 schreef JeRa het volgende:
[..]
Ik weet niet of je html_entity_decode() nodig hebt (naar je eerste voorbeeld) maar je zoekt vooral naar urlencode() en rawurlencode() :)
1 2 3 4 5 6 7 8 9 10 | $string = "Tuinieren & Schommelen"; echo $string . "n"; $string = htmlspecialchars_decode($string); echo $string . "n"; $string = urlencode($string); echo $string . "n"; ?> |
1 2 3 | Tuinieren & Schommelen Tuinieren+%26+Schommelen |
Ja...waarom denk je dat ik html_entity_decode() suggereer?quote:Op zaterdag 12 mei 2007 13:59 schreef WyriHaximus het volgende:
[..]
Je zult het eerst van & amp; naar & om moeten zetten en dan door rawurlencode halen. Anders worden & en ; in & amp; ge-encoded en komt er iets totaal anders uit.
Haha ja, dacht ik geef er gelijk ff uitleg bij waaromquote:Op zondag 13 mei 2007 00:59 schreef JeRa het volgende:
[..]
Ja...waarom denk je dat ik html_entity_decode() suggereer?
1 |
Dit is iig voor de load:quote:Op maandag 14 mei 2007 22:16 schreef JortK het volgende:
Er is hier trouwens vast wel iemand die een functie heeft liggen waarmee ik de volgende data kan displayen:
[ code verwijderd ]
En nog mooier als de DB load er ook bij zit :Y :Y
Kan iemand me hieraan helpen?
1 2 3 4 5 6 7 8 9 10 11 12 | { if ($load = @file_get_contents('/proc/loadavg')) { $load = array_slice(explode(' ', $load), 0, 1); $load = floatval($load[0]); } } else { $load = 'Unknown'; } |
1 2 | $starttime = $mtime[0] + $mtime[1]; |
1 2 3 | $totaltime = $mtime[0] + $mtime[1] - $starttime; $time = sprintf('%.3fs',$totaltime); |
Doublequote:Op maandag 14 mei 2007 22:25 schreef Geqxon het volgende:
En wat de queries betreft: Je moet dan wel bij elke query die je draait een functie aanroepen, is dat do-able?
Ja dat is do ablequote:Op maandag 14 mei 2007 22:25 schreef Geqxon het volgende:
En wat de queries betreft: Je moet dan wel bij elke query die je draait een functie aanroepen, is dat do-able?
Stuur mij die class eensquote:Op maandag 14 mei 2007 22:28 schreef WyriHaximus het volgende:
[..]
Double.
Anyway zelf gebruik ik een class voor database communicatie en er zit een klein tellertje in ($this->_query_count++) voor als er een query word uitgevoerd.
1 2 3 4 5 6 7 8 9 10 | function countQuery(){ static $querycounter = 0; $querycounter++; } mysql_query("SELECT * FROM users"); countQuery(); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function mysql_query_c($query,$rid = false) { static $querycounter = 0; $querycounter++; if($rid) { return mysql_query($query,$rid); } else { return mysql_query($query); } } ?> |
1 2 3 | strtotime("2007W40"); ?> |
Dit miscshien wat voor je? http://www.php.net/manual(...)ult-timezone-set.php Je zit met je tijdzones namelijk en standaard gebruikt php die van de server (of wat er in php.ini staat).quote:Op maandag 14 mei 2007 23:02 schreef Geqxon het volgende:
[ code verwijderd ]
Geeft lokaal de timestamp van de maandag in week 40 op 2007 weer, en op mijn server -1. Iemand misschien wat tips?
Bedankt!quote:Op maandag 14 mei 2007 23:10 schreef WyriHaximus het volgende:
[..]
Dit miscshien wat voor je? http://www.php.net/manual(...)ult-timezone-set.php Je zit met je tijdzones namelijk en standaard gebruikt php die van de server (of wat er in php.ini staat).
1 2 3 | return time()-3600; } |
1 |
Of gebruik de putenv(); functie, die gebruik ik nogal veelquote:Op maandag 14 mei 2007 23:12 schreef Geqxon het volgende:
[..]
Bedankt!
Ik moet zeggen dat ik liever niet al te veel met timezones speel, ik heb het nu simpelweg opgelost door de eerste maandag van het jaar te pakken, en daar een aantal weken bij op te tellen
Als jij met variabelen werkt, werk je eigenlijk met verwijzingen naar stukken geheugen in de computer/server. Als jij dus een grote array met 100.000 items aanmaakt in PHP en die in $var stopt, dan zal $var een verwijzing naar die array bevatten.quote:
Ah tof wist ik nog nietquote:Op dinsdag 15 mei 2007 13:42 schreef JeRa het volgende:
[..]
Als jij met variabelen werkt, werk je eigenlijk met verwijzingen naar stukken geheugen in de computer/server. Als jij dus een grote array met 100.000 items aanmaakt in PHP en die in $var stopt, dan zal $var een verwijzing naar die array bevatten.
Ga je vervolgens $var aan functies meegeven als parameter, dan maakt PHP een kopie van die variabele (alsof het dus geen verwijzing is). Gebruik je het &-teken om een parameter als referentie te accepteren, dan zal PHP direct op de array werken en niet op een kopie, wat geheugen spaart en sneller isook hoef je eventueel de functie niets te laten retourneren, want de oorspronkelijke inhoud van de variabele zal worden aangepast.
* JortK beseft zich opeens dat die wel wat winst kan halen in zijn script, en ook wat optimizen te doen heeftquote:Op dinsdag 15 mei 2007 13:42 schreef JeRa het volgende:
[..]
Als jij met variabelen werkt, werk je eigenlijk met verwijzingen naar stukken geheugen in de computer/server. Als jij dus een grote array met 100.000 items aanmaakt in PHP en die in $var stopt, dan zal $var een verwijzing naar die array bevatten.
Ga je vervolgens $var aan functies meegeven als parameter, dan maakt PHP een kopie van die variabele (alsof het dus geen verwijzing is). Gebruik je het &-teken om een parameter als referentie te accepteren, dan zal PHP direct op de array werken en niet op een kopie, wat geheugen spaart en sneller isook hoef je eventueel de functie niets te laten retourneren, want de oorspronkelijke inhoud van de variabele zal worden aangepast.
Tabel leeg gooienquote:Op woensdag 16 mei 2007 15:55 schreef mschol het volgende:
is er een manier om de autoindex te resetten?
ik heb dus een kolom ID die een auto_increment heeft en aangezien ik nu nog aan het testen ben wil ik , op een makkelijke manier, die kolom kunnen resetten naar 0.
is daar een SQL commando voor?
met truncate?quote:
http://dev.mysql.com/doc/refman/4.1/en/truncate.htmlquote:For InnoDB, TRUNCATE TABLE is mapped to DELETE, so there is no difference
DELETE FROM `tabel`?quote:Op woensdag 16 mei 2007 15:58 schreef mschol het volgende:
[..]
met truncate?
helaas, dan wordt hij niet gereset... (iig niet bij mij..)
brr...quote:Op woensdag 16 mei 2007 16:02 schreef super-muffin het volgende:
Dat kan niet zo maar. Je moet eerst de tabel exporteren, dan verwijderen en weer importeren.
ik gebruik om technische redenen InnoDBquote:Op woensdag 16 mei 2007 16:05 schreef WyriHaximus het volgende:
MyISAM reset je auto index iig met TRUNCATE (net getest)
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 | LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA SQL SECURITY DEFINER BEGIN DECLARE cram_challenge TEXT DEFAULT MD5(NOW() * RAND()); DECLARE userid INT; SELECT uid INTO userid FROM user WHERE username = login; IF NOT userid IS NULL THEN INSERT INTO cram ( fk_uid, challenge ) VALUES ( userid, cram_challenge ) ON DUPLICATE KEY UPDATE fk_uid = userid, challenge = cram_challenge; END IF; SELECT challenge; END |
De tweede query wordt alleen uitgevoerd als de eerste query een resultaat geeft. Dat doe ik met IF NOT userid IS NULL THEN ...quote:Op donderdag 17 mei 2007 19:08 schreef Tuvai.net het volgende:
Je select query als een variabele declareren en alleen de volgende query uitvoeren als het resultaat van de select query een waarde bevat? In MYSQL werk ik nooit met stored procedures (vreemd genoeg, terwijl ik vrijwel altijd met PHP i.c.m. PHP werk) maar in MSSQL kun je @@OUT_ERROR manipuleren.
Roep anders deze stored procedure aan via een functie in je broncode, en doe de output opvangen met je functie.
Jazeker, en het is nog makkelijk ookquote:Op donderdag 17 mei 2007 20:10 schreef Xcalibur het volgende:
Is het mogelijk om een class te maken met een functie / stuk code die *altijd* uitgevoerd wordt? Dus op het moment dat je de class aanroept zeg maar?
Het gaat namelijk om een functie waar alle onderdelen van de class van afhankelijk zijn. Als ik nu de class aanroep moet ik als eerste daarna die functie aanroepen, anders gaat alles fout. En dat is dus nogal loos, dat moet toch automagisch kunnen lijkt me?
JeRa, je bent geweldig [14.gif] .quote:Op donderdag 17 mei 2007 20:41 schreef JeRa het volgende:
@cyberstalker
Heb je dat al geprobeerd met een cursor? Je zou het niet bestaan van een user kunnen opvangen met een handler.
Ja, dat werkt dusquote:Op donderdag 17 mei 2007 20:33 schreef cyberstalker het volgende:
Je maakt in je class gewoon een functie aan. Het enige wat je hoeft te doen is de functie dezelfde naam als de class te geven en klaar ben je. Je kunt dan eventuele parameters naar de functie gewoon doorgeven in je class constructor.
Wat bedoel je met toewijzen? Heb je een codevoorbeeldje?quote:Op donderdag 17 mei 2007 21:37 schreef Xcalibur het volgende:
[..]
Ja, dat werkt dus
Nadeel: in de betreffende functie gebruik ik weer een database-class die ik dus eerst moet toewijzen aan mijn class... Dat doe ik nu dus ook met de hand, net als die functie-aanroep eigenlijk. Kan dat ook automatisch?
1 2 3 4 | $import->database = $database; $import->check = $check; $import->getTableColumns(); |
Die kun je toch gewoon toewijzen vanuit de functie getTableColumns() ?quote:Op donderdag 17 mei 2007 22:31 schreef Xcalibur het volgende:
Ik ben een import-class aan het schrijven. Deze maakt gebruik van een database-class genaamd $database, en een validatie-class genaamd $check. Om te zorgen dat ik deze twee classes binnen mijn import-class kan gebruiken moet ik deze eerst aan de import-class toewijzen.
Als volgt:
[ code verwijderd ]
De functie getTableColumns() wil ik dus automatisch aanroepen, dat werkt dus met de oplossing die je hierboven al gaf. Alleen de functie getTableColumns() heeft dus de $database en $check nodig, die daarna pas toegewezen worden. Als dat nou ook automatisch kan ben ik weer helemaal gelukkig
1 |
1 2 | $this->database = $database; |
Maar als ik deze functie automatisch laat aanroepen door hem de naam van de class te geven, kan ik die variabelen niet meer meegeven? Die zijn namelijk op dat moment nog niet bekend in de class?quote:Op donderdag 17 mei 2007 22:39 schreef cyberstalker het volgende:
Het handigste lijkt mij om gewoon de variabelen $database en $check door te geven aan de class constructor. Verander de functieconstructor (function getTableColumns() ) in het volgende:
Singletons worden juist voor dat soort doeleinden gebruikt. Er zijn wel meer voordelen aan het gebruik van OO in zo'n geval, o.a. het feit dat je delen van je code simpelweg kunt laten returnen i.p.v. een achterlijke constructie van ifs en dat je meer scopes hebt en dus minder kans hebt op vervuiling van variabelen (wat weer kan leiden tot security issues).quote:Op vrijdag 18 mei 2007 08:50 schreef Roönaän het volgende:
Is het idee van een import class sowieso niet dat hij zo generiek is dat je eerst configuraties en links met andere objecten op moet zetten voordat je een executerende functie aanroept? Anders kan je net zo goed class-loze code gebruken. Object orientatie voor de object orientatie zeg maar
Ja, daar zit ik dus ook een beetje meequote:Op vrijdag 18 mei 2007 08:50 schreef Roönaän het volgende:
Is het idee van een import class sowieso niet dat hij zo generiek is dat je eerst configuraties en links met andere objecten op moet zetten voordat je een executerende functie aanroept? Anders kan je net zo goed class-loze code gebruken. Object orientatie voor de object orientatie zeg maar
Een import singleton implementatie?quote:Op vrijdag 18 mei 2007 09:55 schreef JeRa het volgende:
[..]
Singletons worden juist voor dat soort doeleinden gebruikt. Er zijn wel meer voordelen aan het gebruik van OO in zo'n geval, o.a. het feit dat je delen van je code simpelweg kunt laten returnen i.p.v. een achterlijke constructie van ifs en dat je meer scopes hebt en dus minder kans hebt op vervuiling van variabelen (wat weer kan leiden tot security issues).
Geen idee, eigenlijk alleen naar de beschrijvingen gekeken. Géén idee wat ie met import bedoeltquote:
Vraag dan alleen niet hoe de layout er uit ziet ...quote:Op zaterdag 19 mei 2007 08:46 schreef Roönaän het volgende:
Als je editors als TinyMCE erin zet (zoals het pm-systeem) kunnen mensen naar hartelust copy & pasten vanuit word meen ik.
Sowieso moet je de html uit zo'n rte filteren, dus wat dat betreft maakt dat niet al te veel uit.quote:Op zaterdag 19 mei 2007 09:20 schreef WyriHaximus het volgende:
[..]
Vraag dan alleen niet hoe de layout er uit ziet ...
Word heeft de neiging totaal klote html te genereren![]()
Heb het nog een keer moeten doen dat de html niet gefilterd werd want dat wouden ze. Ze snapten alleen niet dat de hele layout verneukt werd dan.quote:Op zaterdag 19 mei 2007 09:23 schreef Roönaän het volgende:
[..]
Sowieso moet je de html uit zo'n rte filteren, dus wat dat betreft maakt dat niet al te veel uit.
TinyMCE heeft een optie om Word-code op te schonenquote:Op zaterdag 19 mei 2007 09:20 schreef WyriHaximus het volgende:
Vraag dan alleen niet hoe de layout er uit ziet ...
Word heeft de neiging totaal klote html te genereren![]()
Weet ik, werkte toen der tijd niet echt lekkerquote:Op zaterdag 19 mei 2007 15:48 schreef Xcalibur het volgende:
[..]
TinyMCE heeft een optie om Word-code op te schonen
Via een externe editor misschien wel (ImageMagick bijvoorbeeld). Het probleem met afbeeldingen van 2-4MB (JPEGs?) is dat de raw pixel info véél groter is dan het bestand zelf. Dan kom je al gauw aan de 20MB, maar door een ander programma binnen PHP aan te roepen omzeil je datquote:Op zaterdag 19 mei 2007 17:22 schreef Chandler het volgende:
Klein vraagje m.b.t. het geheugen gebruik van PHP icm GD.
Is het mogelijk om afbeeldingen van 2-4MB te resizen zonder daarvoor meer dan 20MB geheugen voor te gebruiken?
1 2 3 4 5 6 | $sql = "SELECT SUM(Prijs) FROM lijst AS stats"; $query = mysql_query($sql); $row = mysql_fetch_assoc($query); echo $row["stats"]; ?> |
1 2 3 4 5 6 | $sql = "SELECT SUM(Prijs) FROM lijst AS stats"; $query = mysql_query($sql); $row = mysql_fetch_assoc($query); echo $row; ?> |
ALTER TABLE tbl AUTO_INCREMENT = 100;quote:Op woensdag 16 mei 2007 15:58 schreef mschol het volgende:
[..]
met truncate?
helaas, dan wordt hij niet gereset... (iig niet bij mij..)
argh.. crap...
[..]
http://dev.mysql.com/doc/refman/4.1/en/truncate.html
print_r($row) geeftquote:Op zaterdag 19 mei 2007 22:22 schreef JeRa het volgende:
@qu63
Doe eens een print_r($row)? Een server error 500 krijg je alleen als er iets heel goed fout is gegaan, zoals PHP die crasht bijvoorbeeld.
quote:Op zaterdag 19 mei 2007 22:21 schreef qu63 het volgende:
[..]
ALTER TABLE tbl AUTO_INCREMENT = 100;
of 0 dus ipv 100
Ik had het met secetaresses enzo die direct vanuit word plaktequote:Op zaterdag 19 mei 2007 17:16 schreef Xcalibur het volgende:
Ik heb er wel goede ervaringen mee, hoewel ik dingen vanuit Word meestal voor de zekerheid effe door notepad haal
Idd binnen PHP lukt je dat niet, tenzij je een system call uitvoerd of een andere server aan gaat reopen. Je kunt wel met ini_set je max geheugen aanpassen. (Mits je host het toelaat.) En dan kan je wel veel meer gebruikenquote:Op zaterdag 19 mei 2007 17:32 schreef JeRa het volgende:
[..]
Via een externe editor misschien wel (ImageMagick bijvoorbeeld). Het probleem met afbeeldingen van 2-4MB (JPEGs?) is dat de raw pixel info véél groter is dan het bestand zelf. Dan kom je al gauw aan de 20MB, maar door een ander programma binnen PHP aan te roepen omzeil je dat
Jazeker. Je kunt hiervoor imagemagick voor gebruiken. Standaard geinstalleerds op de meeste webhosts. Het commando waarmee je dit doet heet convert. Dit commando geef je als eerste parameter de bestandsnaam door, daarna een optie met een of meerdere parameters. Met -modulate kun je doen wat jij wiltquote:Op zondag 20 mei 2007 00:47 schreef cygnusx het volgende:
Is het met php mogelijk om de Hue aan te passen van een plaatje (zie photoshop: image->adjustments->hue/saturation),
hiermee kun je het kleurenplallet doordraaien waardoor je van blauw rood of whatever kunt maken e.d.
Ik heb er al wel eens mee ge-expirimenteerd, maar helaas zonder geruststellend resultaat.
Het betreft een linux bak, dus als laatste hoop zou het ook met een extern command line programma mogen...
ik gok dat er een foutje zit in $retquote:Op zondag 20 mei 2007 16:59 schreef JohannesPaulus het volgende:
Ik krijg de volgende error:
Notice: Only variable references should be returned by reference in /home/bla/public_html/script-directory/include/library/htmlMimeMail.php on line 404
Weet iemand hoe ik dit kan oplossen?
Volgens mij heeft het iets met "zend optimizer en php 4.4" te maken maar mijn host gebruikt zend optimizer 3+ dus daar kan het niet aan liggen. Ik hoop dat iemand mij kan helpen, thx
REGEL 404, 405 en 406 van het bestand htmlMimeMail.php:
return $ret;
}
}
Je weet wat het verschil is tussen een notice en een error? En dat mocht je hulp nodig hebben je wel wat meer code zult moeten posten?quote:Op zondag 20 mei 2007 16:59 schreef JohannesPaulus het volgende:
Ik krijg de volgende error:
Notice: Only variable references should be returned by reference in /home/bla/public_html/script-directory/include/library/htmlMimeMail.php on line 404
Weet iemand hoe ik dit kan oplossen?
Volgens mij heeft het iets met "zend optimizer en php 4.4" te maken maar mijn host gebruikt zend optimizer 3+ dus daar kan het niet aan liggen. Ik hoop dat iemand mij kan helpen, thx
REGEL 404, 405 en 406 van het bestand htmlMimeMail.php:
return $ret;
}
}
Hmm imo is het altijd nog steeds beter om ook geen notices te krijgenquote:Op zondag 20 mei 2007 17:44 schreef ralfie het volgende:
[..]
Je weet wat het verschil is tussen een notice en een error? En dat mocht je hulp nodig hebben je wel wat meer code zult moeten posten?
Zoals wij al zeidenquote:Op zondag 20 mei 2007 19:02 schreef JohannesPaulus het volgende:
Bedankt voor de reacties.
Ik heb het inmiddels opgelost:
// ini_set('error_reporting', E_ALL);
![]()
Makkelijk: Ja, handig: Nee.quote:Op zondag 20 mei 2007 19:04 schreef JortK het volgende:
[..]
Zoals wij al zeiden
Misschien makkelijk om in je PHP pagina error_reporting(E_ALL); neer te zetten, en standaard te commenten, en wanneer je wil debuggen de comment weghalen
Dan natuurlijk wel de error_reporting een toontje lager zetten in je PHP.ini
quote:Op zondag 20 mei 2007 19:04 schreef JortK het volgende:
[..]
Zoals wij al zeiden :Y
Misschien makkelijk om in je PHP pagina error_reporting(E_ALL); neer te zetten, en standaard te commenten, en wanneer je wil debuggen de comment weghalen
Dan natuurlijk wel de error_reporting een toontje lager zetten in je PHP.ini :Y
1 2 3 | if (isset($_GET['debug'])) error_reporting(E_ALL); ?> |
Klopt Jera, maar er zou toch ook een andere manier moeten zijn om plaatjes te kunnen resizen in PHP zonder al te veel geheugen te gebruiken.quote:Op zaterdag 19 mei 2007 17:32 schreef JeRa het volgende:
[..]
Via een externe editor misschien wel (ImageMagick bijvoorbeeld). Het probleem met afbeeldingen van 2-4MB (JPEGs?) is dat de raw pixel info véél groter is dan het bestand zelf. Dan kom je al gauw aan de 20MB, maar door een ander programma binnen PHP aan te roepen omzeil je dat
Misschien tussendoor de boel flushen?quote:Op zondag 20 mei 2007 21:00 schreef Chandler het volgende:
[..]
Klopt Jera, maar er zou toch ook een andere manier moeten zijn om plaatjes te kunnen resizen in PHP zonder al te veel geheugen te gebruiken.
Want als ik 3MB foto wil lezen ben ik toch max 3*8=24MB aan geheugen nodig? zou je denken?
Ik heb 32MB geheugen toegeschreven aan het script maar nog krijg ik een geheugen fout
volgens mij pakt ie dan alles van 14 dagen voor de datum van vandaag, dus het verleden in, ik moet de toekomst in.quote:
dan krijg ik een fout , => bestaat dat wel?quote:Op zondag 20 mei 2007 23:14 schreef JortK het volgende:
WHERE aankomstdatum => DATE_SUB dan ?
Probeer >= eens ipv =>quote:Op zondag 20 mei 2007 23:22 schreef broodmonkeh het volgende:
[..]
dan krijg ik een fout , => bestaat dat wel?![]()
Ik heb m aangepast hij moet andersom staan het word laatquote:Op zondag 20 mei 2007 23:22 schreef broodmonkeh het volgende:
[..]
dan krijg ik een fout , => bestaat dat wel?![]()
zoals je kon zien stond dat al in mijn query die ik al had , en die pakt alles na 14 dagen na de datum van vandaag. ik moet tot 14 dagen hebben.quote:
Haha ben lekker aan het deven. Moet eingelijk nog ff weten hoe ik de stand van de zon op een plaatje laat zien maar dat komt later wel eerst andere dingenquote:Op zondag 20 mei 2007 23:23 schreef JortK het volgende:
[..]
Ik heb m aangepast hij moet andersom staan het word laat
EDIT: WyriHaximus is zo te zien nog wel wakker
Ow heh niet eens gelezenquote:Op zondag 20 mei 2007 23:24 schreef broodmonkeh het volgende:
[..]
zoals je kon zien stond dat al in mijn query die ik al had , en die pakt alles na 14 dagen na de datum van vandaag. ik moet tot 14 dagen hebben.![]()
nope gewoon 0000-00-00 formaat zeg maarquote:Op zondag 20 mei 2007 23:26 schreef WyriHaximus het volgende:
[..]
Ow heh niet eens gelezen, zag dat je foutje had en dacht hij moet dat niet anders om
. Ff kijken er naar.
EDIT: Is het field een UNIXTIMESTAMP of niet?
Mocht het een UNIXTIMESTAMP zijn dan kan je zoiets doen ena nders moet je ff converters toevoegenquote:Op zondag 20 mei 2007 23:26 schreef WyriHaximus het volgende:
[..]
Ow heh niet eens gelezen, zag dat je foutje had en dacht hij moet dat niet anders om
. Ff kijken er naar.
EDIT: Is het field een UNIXTIMESTAMP of niet?
1 |
Ow erhm secquote:Op zondag 20 mei 2007 23:32 schreef broodmonkeh het volgende:
[..]
nope gewoon 0000-00-00 formaat zeg maar
Ow oops:quote:Op zondag 20 mei 2007 23:44 schreef broodmonkeh het volgende:
bedankt! ik krijg alleen deze error:
Unknown column 'UNIX_TIMESTAMP' in 'where clause'
1 |
Npquote:
Je zou denken dat dat zou werken, maar helaas... Ik ga morgen eens een testje bouwen om te kijken hoeveel geheugen er gebruikt wordt!quote:
jaa ongeveer wel , hij pakt de datum uit de database en zet die om naar unix timestamp , en zo berekend ie het. toch ?quote:Op zondag 20 mei 2007 23:55 schreef WyriHaximus het volgende:
[..]
Np. Je snapt trouwens hoe het werkt?
Zoniet dan leg ik het wel ff uit
.
Het kan natuurlijk ook misschien zijn dat er ergens een loopje inzit wat heel het geheugen volpomptquote:Op maandag 21 mei 2007 07:59 schreef Chandler het volgende:
[..]
Je zou denken dat dat zou werken, maar helaas... Ik ga morgen eens een testje bouwen om te kijken hoeveel geheugen er gebruikt wordt!
Sorry hoorquote:
Dit kan je het beste oplossen in je queryquote:Op maandag 21 mei 2007 17:02 schreef broodmonkeh het volgende:
Situatie: Ik heb 80 getallen (1 - 80) in een dropdown box staan.
In de database heb ik in een veld het getal 50 staan (veldnaam is bijv. "Getal") . Nu wil ik dat deze niet wordt weergeven in de dropdown box. Kan iemand uitleggen hoe ik dit simpel kan oplossen? Een stukje code of uitleg is genoeg , ik wil het namelijk zelf een beetje uitvogelen maar ik weet niet waar ik moet beginnen
1 2 3 | FROM tabel WHERE Getal <> 50 |
jaa zoiets maar er staan ook meerdere velden in en het kan ook voorkomen dat bijv. alle 80 getallen in de database staan en niet weergeven mogen worden.quote:Op maandag 21 mei 2007 17:08 schreef JortK het volgende:
[..]
Dit kan je het beste oplossen in je query
[ code verwijderd ]
Hiermee haal je alle getallen op behalve 50
Bedoel je zoiets?
Ja dan zul je toch wat meer info moeten geven om te vertellen op basis van welke criteria een gebruiker welke getallen mag zienquote:Op maandag 21 mei 2007 17:14 schreef broodmonkeh het volgende:
[..]
jaa zoiets maar er staan ook meerdere velden in en het kan ook voorkomen dat bijv. alle 80 getallen in de database staan en niet weergeven mogen worden.
1 2 3 | echo("string $_SERVER['REMOTE_ADDR'] verder met string"); ?> |
maar dit:quote:Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in test.php on line 2
1 2 3 4 | $ip = $_SERVER['REMOTE_ADDR']; echo("string $ip verder met string"); ?> |
1 2 3 | echo "string ".$_SERVER['REMOTE_ADDR']." verder met string"; ?> |
1 2 3 | echo "string {$_SERVER['REMOTE_ADDR']} verder met string"; ?> |
Dan zou ik alle 80 getallen in een array zetten, en een andere array maken met de getallen die niet voor mogen komen. Daarna kan je door je ene array heenloopen en die met in_array checken tegen de andere array en de foute waardes uit je ene array halen (of een derde array maken met de goede waardes)...quote:Op maandag 21 mei 2007 17:14 schreef broodmonkeh het volgende:
[..]
jaa zoiets maar er staan ook meerdere velden in en het kan ook voorkomen dat bijv. alle 80 getallen in de database staan en niet weergeven mogen worden.
Ik zal het ff goed en uitgebreid uitleggen deze keer. Ik ben bezig met een boekingsregistratiesysteem voor een camping. Hier zijn dus iets van 80 staanplaatsen (precieze aantal weet ik niet , maar daar komt het in de buurt). Nu heb ik zeg maar deze opbouw in tabellen:quote:Op maandag 21 mei 2007 19:25 schreef Xcalibur het volgende:
[..]
Dan zou ik alle 80 getallen in een array zetten, en een andere array maken met de getallen die niet voor mogen komen. Daarna kan je door je ene array heenloopen en die met in_array checken tegen de andere array en de foute waardes uit je ene array halen (of een derde array maken met de goede waardes)...
Daarnaast vraag ik me af waarom je 1 - 80 in een database zou zetten?
You read my mindquote:Op maandag 21 mei 2007 19:25 schreef Xcalibur het volgende:
[..]
Dan zou ik alle 80 getallen in een array zetten, en een andere array maken met de getallen die niet voor mogen komen. Daarna kan je door je ene array heenloopen en die met in_array checken tegen de andere array en de foute waardes uit je ene array halen (of een derde array maken met de goede waardes)...
Daarnaast vraag ik me af waarom je 1 - 80 in een database zou zetten?
Ja idd, op ze simpelst wel ja. Hij pakt de huidige datem en zegt dat de datem in de tabel minimaal die datum moet hebben em pakt 14 dagen voor uit en zegt dat de datum daar niet voor bij mag liggenquote:Op maandag 21 mei 2007 12:42 schreef broodmonkeh het volgende:
[..]
jaa ongeveer wel , hij pakt de datum uit de database en zet die om naar unix timestamp , en zo berekend ie het. toch ?![]()
Je moet de ' jes weg halen, of { en } er om heen zetten zoals hier boven. Maar 2e stukkie code is eingelijk het netst :).quote:Op maandag 21 mei 2007 17:48 schreef mschol het volgende:
iemand een idee waarom php hier een foutmelding op geeft...:
[ code verwijderd ]
foutmelding:
[..]
maar dit:
[ code verwijderd ]
werkt wel??
wat is het verschil tussen die 2 variabelen????
1 2 3 | echo "string $_SERVER[REMOTE_ADDR] verder met string"; ?> |
1 2 3 | echo "string " . $_SERVER['REMOTE_ADDR'] . " verder met string"; ?> |
Interessant artikel over quotes en performance in PHP.quote:Op maandag 21 mei 2007 20:42 schreef WyriHaximus het volgende:
[..]
Je moet de ' jes weg halen, of { en } er om heen zetten zoals hier boven. Maar 2e stukkie code is eingelijk het netst.
[ code verwijderd ]
[ code verwijderd ]
Yeah klopt " geeft je extra opties zoals "balbla $str jaskj" daar de waarde van $str er tussen worden gezet terwijl bij ' het niet geparsed zal worden en gewoon als $str in de string staanquote:Op maandag 21 mei 2007 22:35 schreef fokME2 het volgende:
[..]
Interessant artikel over quotes en performance in PHP.
![]()
intressantquote:Op maandag 21 mei 2007 22:35 schreef fokME2 het volgende:
[..]
Interessant artikel over quotes en performance in PHP.
![]()
Ik heb er een paar maanden terug eens een uurtje over nagedacht, en kwam toen tot hetvolgende systeem:quote:Op maandag 21 mei 2007 23:01 schreef mschol het volgende:
[..]
intressant![]()
nog iets: ik heb eens zitten googlen op een "veilig" inlog systeem via php+sessies
kwam ik op dit script uit:
http://e-programmeur.e-dot.nl/topic/45924
alleen lijkt het mij zo overdreven veel, dat zou toch makkelijker moet kunnen, zonder een challenge-response systeem?
overigens vind ik persoonlijk dat ik erg weinig tutorials vind met een session login m.b.v. php (en met een remember functie kan ik ze al helemaal niet vinden)
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 | // TRY TO SOMEHOW RECEIVE THE USERNAME AND PASSWORD if (isset($_POST['action'])){ $action = $_POST['action']; switch($action){ case "login": $username_to_try = $_POST['username']; $password_to_try = md5($_POST['password']); break; case "register"; $newusername = $_POST['username']; $newpassword = md5($_POST['password']); $newpasswordrepeat = md5($_POST['passwordrepeat']); $newemailaddress = $_POST['emailaddress']; if (newUser($newusername, $newpassword, $newpasswordrepeat, $newemailaddress)){ $username_to_try = $newusername; $password_to_try = $newpassword; } break; } } else if (isset($_COOKIE['UsernameCookie']) && isset($_COOKIE['PasswordCookie'])){ $username_to_try = $_COOKIE['UsernameCookie']; $password_to_try = $_COOKIE['PasswordCookie']; } else if (isset($_SESSION['UsernameSession']) && isset($_SESSION['PasswordSession'])){ $username_to_try = $_SESSION['UsernameSession']; $password_to_try = $_SESSION['PasswordSession']; } // CHECK USERNAME AND PASSWORD IF REQUESTED if (isset($username_to_try) && isset($password_to_try)){ [.database check.] $_SESSION['UsernameSession'] = $username_to_try; $_SESSION['PasswordSession'] = $password_to_try; setcookie("UsernameCookie", $username_to_try, time()+604800); setcookie("PasswordCookie", $password_to_try, time()+604800); header("Location: userpage.php"); } ?> |
Dat plus dat je alles wat van de client komt niet kan vertrouwen en er van uit moet gaan dat het foutief is, dan kom je heel erg ver.quote:Op dinsdag 22 mei 2007 00:02 schreef Tuvai.net het volgende:
Veilige scripts komen in feite maar op twee dingen neer: SQL injection en logica.Persoonlijk vind ik dat ELK variabel dat gemanipuleerd kan worden door user input afgeschermd moet worden, waaronder ook de variabelen die niet direct in een SQL query gebruikt worden. Ook encryptie vind ik persoonlijk een hele belangrijke. Ik zie het maar al te vaak: websites die een username/userID en een wachtwoord in een cookie zetten waarmee een gebruiker ingelogd blijft. Op zich niks mis mee, maar zorg dan wel dat dat wachtwoord geëncrypt word. MD5 en SHA1/2 zijn daar gewoon perfect voor en kinderlijk eenvoudig te gebruiken.
Ik herinner me nog de tijd dat ik $var gebruikte in plaats van $_GET['var'] / $_POST['var'] / $_COOKIE['var'] / $_COOKIE['var'] en niks afschermde met mysql_real_escape_string() en intval().quote:Op dinsdag 22 mei 2007 00:49 schreef WyriHaximus het volgende:
[..]
Dat plus dat je alles wat van de client komt niet kan vertrouwen en er van uit moet gaan dat het foutief is, dan kom je heel erg ver.
Nog een kleine tip: Probeer je eigen scripts te hacken en kijk of je langs je eigen beveiliging kan komen. Of vraag een vriend of kennis met kennis van zaken, buitenstaanders hebben vaak een frisse kijk en zullen eerder dingen tegen komen dan jij omdat je snel genoeg dood staart of denkt dat iets wel veilig is. Je komt dan nog wel eens dingen tegen die niet helemaal kloppen.
Ja hier ook. En het dan raar vinden dan je scripts ineens niet meer werken omdat je host register_globals uitgezet hadquote:Op dinsdag 22 mei 2007 00:56 schreef Tuvai.net het volgende:
[..]
Ik herinner me nog de tijd dat ik $var gebruikte in plaats van $_GET['var'] / $_POST['var'] / $_COOKIE['var'] / $_COOKIE['var'] en niks afschermde met mysql_real_escape_string() en intval().En ik me maar afvragen hoe al die mensen hunzelf allemaal Administrator van m'n forum konden maken.
Maarja, wel toendertijd een hoop van geleerd.
quote:Op maandag 21 mei 2007 19:36 schreef broodmonkeh het volgende:
Als de camping nu een staanplaats wil toevoegen aan de camping wil ik dat alleen de beschikbare staanplaatsen in een dropdown box komen. Misschien is er wel een simpelere manier voor maar dan hoor ik het graag![]()
dat laatste heb ik alquote:Op dinsdag 22 mei 2007 11:43 schreef Xcalibur het volgende:
[..]
Met een (LEFT OUTER?) JOIN op de tabel met boekingen. Dan kan je alle records uit je tabel halen die geen overeenkomstig record in de andere tabel hebben
Ik zou bij de boeking ook een begin- en einddatum opslaan trouwens, zodat staanplaatsen ook automatisch vrijkomen als de boeking afgelopen is... maar dat is misschien stap 2
je wilt queries opzoeken in een databasequote:Op dinsdag 22 mei 2007 13:57 schreef WalkingDisaster het volgende:
Goeiemiddag
Ik zoek een php script waarmee ik queries in een database kan opzoeken en eventueel aanpassen
soort klantenbeheer zeg maar
Thnx vast
Sorry, ik heb een script dat "klanten" toevoegd aan eendatabase, nu zoek ik een script waarmee ik de database kan doorzoeken, en eventueel gevonden klanten kan wijzigen ofzoquote:Op dinsdag 22 mei 2007 14:07 schreef mschol het volgende:
[..]
je wilt queries opzoeken in een database
kan je jezelf even verduidelijken door je situatie uit te leggen..
even heel simpel:quote:Op dinsdag 22 mei 2007 14:09 schreef WalkingDisaster het volgende:
[..]
Sorry, ik heb een script dat "klanten" toevoegd aan eendatabase, nu zoek ik een script waarmee ik de database kan doorzoeken, en eventueel gevonden klanten kan wijzigen ofzo
1 2 3 4 5 6 7 8 9 10 | <head> </head> <body> <form action="klanten.php" method="post"> <input type="text" name="naam"> <input type="submit"> <input type="hidden" name="sid" value="729016f035787bdbd61fb8c1d1fac43b" /></form> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 | mysql_connect(); mysql_select_db(); $klant_naam = mysql_real_escape_string($_POST['naam']); $result = mysql_query("SELECT * from tabel WHERE naam LIKE '%$klant_naam%'"); echo("<tabel>"); while($rij = mysql_fetch_assoc($result)) { echo("<tr><td>$rij['naam']</td></tr>"); } echo("</tabel>"); ?> |
Is phpMyAdmin iets voor je?quote:Op dinsdag 22 mei 2007 14:09 schreef WalkingDisaster het volgende:
[..]
Sorry, ik heb een script dat "klanten" toevoegd aan eendatabase, nu zoek ik een script waarmee ik de database kan doorzoeken, en eventueel gevonden klanten kan wijzigen ofzo
Volgens mij heeft dat niet met exif info te maken, maar met CMYK en RGB jpg'squote:Op woensdag 23 mei 2007 21:52 schreef Desdinova het volgende:
Ik heb gemerkt dat het verwerken van een foto dmv imagecreatfromjpeg (bijv) niet altijd werkt.. afbeeldingen die bijv. camera informatie erin hebben staan geven een error. iets met geen valid file ofzo.. is daar iets aan te doen? want het staat zo knullig dat je eerst het jpeggie opnieuw moet opslaan voor hij het wel doet
ohhhh dat zou ook kunnen.. ik ga s ff googlen.quote:Op woensdag 23 mei 2007 22:15 schreef Swetsenegger het volgende:
[..]
Volgens mij heeft dat niet met exif info te maken, maar met CMYK en RGB jpg's
Over het algemeen niet zo'n probleem omdat 99% van de jpg's RGB zijn, maar ik ben daar ook wel tegen aangelopen met de zakelijk website. Productfoto's zijn namelijk zeer highres CMYK's.quote:Op woensdag 23 mei 2007 22:17 schreef Desdinova het volgende:
[..]
ohhhh dat zou ook kunnen.. ik ga s ff googlen.
gevonden idd.. werkt niet, kan GD niet aan (2.0 ook niet).
Nasty.
Je complete sourcecode encrypten?quote:Op woensdag 23 mei 2007 22:28 schreef Swetsenegger het volgende:
Een andere vraag. Ik ben momenteel een universeel cms'je aan het bouwen waarvoor ik al wat kleine klantjes heb. Een daarvan is een webdesignertje die goed met html is, maar niet met scripting.
Maar ik loop nu theoretisch het 'gevaar' dat hij mijn cmsje oppakt en ergens anders neerzet. Wat templates aanpassen en hoppa. Het draait natuurlijk allemaal op virtuele domeinen dus er is geen kans om serverside te gaan obfuscaten of iets dergelijks.
Nu kan ik natuurlijk ergens in de code een licentie file importeren vanaf mijn eigen domein die dat matched met het domein waar het cms draait ofzo, maar iemand met een beetje script kennis weet dat uiteindelijk wel te vinden.
Iemand een idee hoe je redelijk verstopt een licentie in je code kan proppen?
Past hier eigenlijk goed.quote:Op woensdag 23 mei 2007 23:00 schreef mstr het volgende:
Wij hebben een aantal vragen op school waar we query's voor moeten schrijven zodat je de de goede uitkomst krijgt.
Ja dit is huiswerk en het lukt me zelf niet
De 6 vragen waar ik niet uitkom
1. Soms wordt een nummer maar door een aantal artiesten gecoverd. Soms hebben nummers dezelfde titel, maar lijken ze niet op elkaar. Maak een overzichtje van titels, gezongen door meerdere artiesten, die meer dan twee keer in de lijst van 2005 voorkomen. (Gebruik hier zeker een subquery!)
Zet steeds bij elke titel, de hoogste genoteerde plaat bovenaan.
Het gene wat eruit zou moeten komen:
[afbeelding]
2. Hoeveel artiesten staan er in de top 2000 van 2005? (Dit is een lastige!)
Het gene wat eruit zou moeten komen:
[afbeelding]
3. Paul McCartney heeft naast vele hits met de Beatles en zijn band "Wings", ook deutten opgenomen. Maak een query die alleen deze deutten (de hits samen met de band Wings worden uitgesloten) weergeeft. Raadpleeg de stemlijst.
Het gene wat eruit zou moeten komen:
[afbeelding]
4. Carole King vertolkte het nummer 'You've got a friend'.
Welk nummer duurt precies even lang als dit nummer? (Tip: Gebruik subquery!)
Het gene wat eruit zou moeten komen:
[afbeelding]
5. Welke nummers staan in 2005 op dezelfde plek als het jaar ervoor?
Het gene wat eruit zou moeten komen:
[afbeelding]
6. Ondanks het enorme aantal noteringen, bleven er in 2005 toch Beatle-nummers buiten de Top2000, ondanks de vermelding op de stemlijst.
Welke waren dat? En uit welk jaar kwamen die?
Het gene wat eruit zou moeten komen:
[afbeelding]
Ik zie bij die sourcegardian ook dat er geen serverside sleutel is en er wordt een sleutelbestand bij de sources geplaatst. Volgens mij wordt het dan nog redelijk eenvoudig om de boel te decryptenquote:Op woensdag 23 mei 2007 23:00 schreef JeRa het volgende:
Let op met die PHP 'encrypters'. Het is voor iemand met verstand belachelijk simpel om de PHP opcodes te onderscheppen en alsnog je beveiliging te omzeilen
Precies, met source encrypting kan iemand nog de volledig encrypted source ergens anders neergooien. Zit je hooguit nog met templatesquote:Op woensdag 23 mei 2007 23:01 schreef JortK het volgende:
Dat is volgens mij niet echt waar hij naar op zoek is, hij wil voorkomen dat iemand 1 versie van de software door meerdere klanten laat gebruiken
Maar een beetje slimme jongen sloopt die compare-code gewoon uit de source.... weg beveiliging.quote:Ik denk dat je een check moet maken met een sleutel die je in je database zet + URL die gebruikt wordt, en die comparen met een value in je eigen database, wil je het behoorlijk zeker maken
Ik heb al téveel geprobeerd, heb er al 1½ uur aan besteed zonder maar enig resultaatquote:Op woensdag 23 mei 2007 23:05 schreef JeRa het volgende:
@mstr
Wat heb je zelf al geprobeerd en waar loop je op vast?
Heel simpel, als je de compare niet kunt maken met je applicatie geef je de melding License truncatedquote:Op woensdag 23 mei 2007 23:07 schreef Swetsenegger het volgende:
[..]
Ik zie bij die sourcegardian ook dat er geen serverside sleutel is en er wordt een sleutelbestand bij de sources geplaatst. Volgens mij wordt het dan nog redelijk eenvoudig om de boel te decrypten
[..]
Precies, met source encrypting kan iemand nog de volledig encrypted source ergens anders neergooien. Zit je hooguit nog met templates
[..]
Maar een beetje slimme jongen sloopt die compare-code gewoon uit de source.... weg beveiliging.
En wat lukt je niet?quote:Op woensdag 23 mei 2007 23:07 schreef mstr het volgende:
[..]
Ik heb al téveel geprobeerd, heb er al 1½ uur aan besteed zonder maar enig resultaat
De compare hóeft niet gemaakt te worden als een slimme jongen die code gewoon uit de app sloopt. Dan kun je ook wel voorkomen dat je zo'n melding krijgt.quote:Op woensdag 23 mei 2007 23:11 schreef JortK het volgende:
[..]
Heel simpel, als je de compare niet kunt maken met je applicatie geef je de melding License truncated
Goed, we gaan wegstrepen; wat voor type query is het?quote:
Dit is wat ik ook doe, met als bijkomstige dienst dat ik ook verzegelde servers verhuurdequote:Op woensdag 23 mei 2007 23:49 schreef Tuvai.net het volgende:
Of een applicatie maken die op JOUW server draait waar mensen inloggen. Dat is de strategie van het bedrijf waar ik nu voor werk. Die hebben in feite zelf de servers en de software, altijd binnen handbereik, en alle klanten kunnen er gebruik van maken zonder dat iemand de broncode in z'n handen krijgt.
Daar is weer serverside een compare voor nodig die je er simpelweg uit kan slopen als je een beetje scripting kennis hebt. Ik zat zelf ook die kant op te denken. Vanaf mijn eigen domein elke dag een license file pushen met daarin een hash alogaritme. Je kan dan voor elke installatie een andere hash verzinnen.... Maar wederom het probleem, je moet serverside die hash gaan vergelijken.quote:Op woensdag 23 mei 2007 23:49 schreef Tuvai.net het volgende:
Swets: Elk klant een soort van ID Key / Productcode meegeven en bij installatie door een soot van white list gaan die checkt of het wel een legale versie is die geïnstalleerd word?
Ja elke variant waarbij je controlle over de server hebt is perfect, maar.... not an option. Het is ook meer hypothetisch he. Ik neem ook aan dat ik niet de enige ben met dit 'probleem' en IEMAND zal toch wel eens een werkbare waterdichte oplossing bedacht hebben?quote:Of een applicatie maken die op JOUW server draait waar mensen inloggen. Dat is de strategie van het bedrijf waar ik nu voor werk. Die hebben in feite zelf de servers en de software, altijd binnen handbereik, en alle klanten kunnen er gebruik van maken zonder dat iemand de broncode in z'n handen krijgt.
Ehm, nee. De enige 'veiligheid' die tot nu toe geldt heet 'closed source' en dat noemen ze ook wel 'security through obscurity'quote:Op donderdag 24 mei 2007 08:17 schreef Swetsenegger het volgende:
[..]
Ik neem ook aan dat ik niet de enige ben met dit 'probleem' en IEMAND zal toch wel eens een werkbare waterdichte oplossing bedacht hebben?
Het is goed om even te zien hoe PHP nu eigenlijk werkt. Als je een PHP bestand uitvoert gaat het door de volgende stappen:quote:Op donderdag 24 mei 2007 08:49 schreef WyriHaximus het volgende:
Goed ik hoor de klok en heb geen idee waar de klepel precies is maar is ioncube encoder iets om naar te kijken? http://www.ioncube.com/sa_encoder.php
Mjah, dus veel verder dan ergens ver weg gestopt een hashcode vergelijken, en die file misschien obfuscaten kom ik niet.quote:Op donderdag 24 mei 2007 08:22 schreef JeRa het volgende:
[..]
Ehm, nee. De enige 'veiligheid' die tot nu toe geldt heet 'closed source' en dat noemen ze ook wel 'security through obscurity'dat ze voor spelletjes vage shit hebben bedacht als geforceerde foutjes op de CD of DVD en voor applicaties een licentieactivatie met hardwarekoppeling en 5MB aan omzeilende code wil niet zeggen dat het veilig is, en/of dat je het voor je PHP app kunt gebruiken
Dé veiligste manier is alsnog de hele boel intern draaien. Vrijwel elke manier om het te beveiligen in PHP is net zo veilig als de closed source oplossing, minus dat het open source is.Zolang je alle functionaliteit echter bij jouw kant neerlegt, heb je er ook volledige controle over.
Ik zat nog te denken aan remote activatie waarbij je per klant een ander essentiëel deel van de applicatie laat downloaden (zo essentiëel dat alleen de activatie nog werkt). Piracy zul je niet echt kunnen voorkomen, maar door slim watermarks (whitespace? eventueel in de output) achter te laten kun je er eventueel wel achterkomen wie het is geweest.quote:Op donderdag 24 mei 2007 09:00 schreef Swetsenegger het volgende:
[..]
Mjah, dus veel verder dan ergens ver weg gestopt een hashcode vergelijken, en die file misschien obfuscaten kom ik niet.
Ook nog een ideequote:Op donderdag 24 mei 2007 09:02 schreef JeRa het volgende:
[..]
Ik zat nog te denken aan remote activatie waarbij je per klant een ander essentiëel deel van de applicatie laat downloaden (zo essentiëel dat alleen de activatie nog werkt). Piracy zul je niet echt kunnen voorkomen, maar door slim watermarks (whitespace? eventueel in de output) achter te laten kun je er eventueel wel achterkomen wie het is geweest.
Als dat niet het geval is hoef je je nergens druk om te makenquote:Op donderdag 24 mei 2007 09:04 schreef Swetsenegger het volgende:
[..]
Goed, niet dat ik verwacht dat iemand mijn apps wil jatten
quote:Op donderdag 24 mei 2007 09:00 schreef JeRa het volgende:
[..]
Het is goed om even te zien hoe PHP nu eigenlijk werkt. Als je een PHP bestand uitvoert gaat het door de volgende stappen:
1) De PHP parser leest je script, controleert het op syntaxfouten e.d.
2) De PHP parser zet vervolgens je script om naar PHP opcodes (compileren, dit is net zoiets als een Java .class)
3) Vervolgens voert de PHP "virtual machine" de opcodes uit
Als je je bestanden codeert met zo'n encrypter, dan voert ie vantevoren stap 1 en 2 al uit. Eventueel combineert ie dit met licenties en encryption. In dat geval worden er deze stappen uitgevoerd:
1) De Encrypter leest je bestand in en controleert evt. licenties e.d.
2) De Encrypter decodeert je bestand naar PHP opcodes
3) Vervolgens voert de PHP "virtual machine" de opcodes uit
De oplettenden zullen al hebben gezien dat je in beide gevallen voor stap 3 dezelfde opcodes moet hebben voor hetzelfde scriptnu is het punt dat die opcodes echt niet heel moeilijk zijn, en dat als iemand wil hij je scripts kan decoderen en strippen van de 'veiligheidsfeatures'. En dat is onveilig aan alle (voor zover ik gezien heb) PHP encrypters.
Hoop het wel .. snuffelenquote:Op donderdag 24 mei 2007 09:58 schreef Tuvai.net het volgende:
Toch inderdaad wel jammer dat PHP het beschermen van broncode zo vermoeilijkt. Dat vind ik aan ASP.NET weer hartstikke handig, dat je een .DLL`etje hebt waar alleen je programma verder iets mee kan. Wellicht krijgt PHP ook nog iets dergelijks in de toekomst?
Van: http://www.phphacks.com/content/view/49/33/quote:Op donderdag 24 mei 2007 10:11 schreef WyriHaximus het volgende:
[..]
Hoop het wel .. snuffelen
* WyriHaximus gaat info over PHP6 zoeken
quote:* The register_globals, safe_mode and various quotes options will be removed.
* The ereg extension is removed, while the XMLReader, XMLWriter and Fileinfo extensions are added to the core, and by default are on.
* Another addition I find particularly exciting is that APC (Alternative PHP Cache) will be added to the core, though will be off by default. APC can provide serious performance benefits.
* All E_STRICT messages will be merged into E_ALL, another positive change that will encourage good programming practice.
* ASP style <% tags will no longer be supported.
* Addition of new 64-bit integers. The current integer type remains as is, 32 or 64-bit dependent on the platform.
* Use of foreach with multi-dimensional arrays, for example foreach($array as $k => list($a, $b)).
* A new switch in php.ini will allow you to disable Unicode semantics (by default they will be on).
* There will also be various string improvements related to Unicode.
* The microtime() function will return the full floating point number, rather than microseconds unix_timestamp, as at present, probably making the function more readily useful.
* The {} notation for string indexes will no longer be supported, while the [] version will get added to substr() and array_slice() functionality.
* FastCGI will always be enabled for the CGI SAPI, and will not allow it to be disabled.
* The ancient HTTP_*_VARS globals will no longer be supported.
* var will alias public. var was permitted with PHP4 classes, but in PHP 5 this raised a warning. In PHP 6 var will simply be an alias for public, so no warning is necessary.
* The ze1 compatibility mode, which tried to retain PHP 4 behavior but had some bugs, will be removed.
* Dynamic functions will no longer be permitted, to be called with static syntax.
Nog meer info hier maar niks over OPcode beveiliging: http://www.php.net/~derick/meeting-notes.htmlquote:Op donderdag 24 mei 2007 10:17 schreef WyriHaximus het volgende:
[..]
Van: http://www.phphacks.com/content/view/49/33/
[..]
Wil dat zeggen dat je per sé <?php ?> moet gaan gebruiken in plaats van <? ?>? Da's een niet zo prettige verandering voor mij, ben inmiddels al jaren gewend om <? ?> te gebruiken.quote:* ASP style <% tags will no longer be supported.
Nee je kunt <% en %> niet meer gebruiken ipv <?php en ?> en <? en ?>quote:Op donderdag 24 mei 2007 10:26 schreef Tuvai.net het volgende:
[..]
Wil dat zeggen dat je per sé <?php ?> moet gaan gebruiken in plaats van <? ?>? Da's een niet zo prettige verandering voor mij, ben inmiddels al jaren gewend om <? ?> te gebruiken.
1 2 3 4 5 6 7 | foreach ($wii as $waa){ echo $waa['wuu']; } ?> |
CTRL Zquote:Op donderdag 24 mei 2007 10:41 schreef Geqxon het volgende:
Of je vernaggeld heel je code qua variabele namen middels een "Replace all" in je teksteditor.
[ code verwijderd ]
quote:Op donderdag 24 mei 2007 10:41 schreef Geqxon het volgende:
Of je vernaggeld heel je code qua variabele namen middels een "Replace all" in je teksteditor.
[ code verwijderd ]
:Y)
1 2 3 4 5 6 7 | foreach ($waa as $waa){ echo "wie".$waa; } ?> |
1 2 3 | Locatie: http://domain/Music/playlist.php?folder=%2FTop+500+Rock+And+Roll+Songs;500 Regelnummer 78, kolom 65:<song path="/Music/Top 500 Rock And Roll Songs/077 - Tom Petty & the Heartbreakers - Runnin' Down a Dream.mp3" title="077 - Tom Petty & the Heartbreakers - Runnin' Down a Dream.mp3"/> |
quote:The function mysql_create_db() is deprecated. It is preferable to use mysql_query() to issue a sql CREATE DATABASE statement instead.
quote:Op donderdag 24 mei 2007 14:24 schreef Tijn het volgende:
Nou, mysql_create_db() lijkt me een goed uitgangspunt.
quote:The function mysql_create_db() is deprecated. It is preferable to use mysql_query() to issue a sql CREATE DATABASE statement instead.
Ja ik weet zelf wel hoe ik een DB moet creëren via phpMyAdmin maar ik wil een formulier maken voor een n00b zodat hij de DB's gelijk online kan creëren ipv eerst inloggen op phpMyAdmin en dan een DB creërenquote:Op donderdag 24 mei 2007 14:24 schreef GI het volgende:
Waarom wil je 300 DB's creeeren ?
SQL statement "Create database bladiebla" zou het moeten doen als je daar de rechten voor hebt. Maar ik kan je nu al adviseren dat dit niet echt een gangbare manier van database onderhoud is.
CREATE TABLEquote:Op donderdag 24 mei 2007 14:35 schreef JohannesPaulus het volgende:
[..]
Ja ik weet zelf wel hoe ik een DB moet creëren via phpMyAdmin maar ik wil een formulier maken voor een n00b zodat hij de DB's gelijk online kan creëren ipv eerst inloggen op phpMyAdmin en dan een DB creëren
(1 DB is ook goed, maar is het dan mogelijk om via zo'n script 300 tabellen te creëren?![]()
Tijn, Piles, toch niet zo of kan ik dat gebruiken![]()
thx mate, het is me geluktquote:
1 2 3 | mysql_query("CREATE TABLE newtable(id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), naam VARCHAR(30))"); ?> |
Dus jij komt vragen om een script waarmee je 300 databases kunt creeren, terwijl je eigenlijk gewoon een tabel aan wilt maken? Volgens mij moet je de basistermen nog eens doornemen...quote:Op donderdag 24 mei 2007 15:01 schreef JohannesPaulus het volgende:
@Tuvai, bedankt voor de tip maar je komt veel geloofwaardiger over als je eerst met een antwoord komt en daarna mij de les leest![]()
Verschillende mensen gaven je al diverse antwoorden en je begreep niet wat je er mee moest doen. Volg m'n advies nou maar gewoon en verdiep je eerst eens in databases alvorens je d'r applicaties mee gaat bouwen.quote:Op donderdag 24 mei 2007 15:01 schreef JohannesPaulus het volgende:
@Tuvai, bedankt voor de tip maar je komt veel geloofwaardiger over als je eerst met een antwoord komt en daarna mij de les leest![]()
Misschien is het een betere vraag wat hij nou eingelijk wilquote:Op donderdag 24 mei 2007 15:20 schreef Swetsenegger het volgende:
Ik denk niet dat je 300 databases wil. Sterker nog, ik denk zelfs niet dat je 1 database met 300 tabellen wil. Je maakt ergens een kardinale denkfout.
Dat zeg ik.quote:Op donderdag 24 mei 2007 15:25 schreef WyriHaximus het volgende:
[..]
Misschien is het een betere vraag wat hij nou eingelijk wil.
Kijk eens naar de SHOW queries daarmee kun je allemaal informatie over een tabel opvragen, welke velden er zijn, type, autoincrement etc. Dan kan je daarmee de CREATE TABLE mee in elkaar zettenquote:Op donderdag 24 mei 2007 17:53 schreef Tijn het volgende:
Kan iemand me helpen met een goede query om vanuit PHP een database te backuppen?
Ik zou het "mysqldump"-commando het liefst willen gebruiken, maar dat lukt niet. Ik denk dat de host het niet toestaat of iets dergelijks.
Omdat ik alsnog m'n database wil backuppen, wil ik het nu vanuit PHP zelf doen met een query die de inhoud van een database volledig opslaat op zo'n manier dat ik het handig weer kan importeren.
Op zich lukt het wel om de data zelf tevoorschijn te toveren, maar hoe zorg ik dat echt alles wordt meegenomen? Inclusief dingen als indices en de auto_increment waarden van tabellen enzo?
Ubuntu ben ik inderdaad ook al verscheidene keren op terecht gekomen. Een stagiair hier op 't werk heeft inmiddels een CD`tje aangevraagd die opgestuurd gaat worden. Maar in Ubuntu zit dus alles wat ik nodig heb om op een Linux server PHP in combinatie met MySQL te draaien? In de vorm van een installer/package? Of komt er een hoop handmatige configuratie aan te pas?quote:Op vrijdag 25 mei 2007 15:08 schreef JeRa het volgende:
@Tuvai.net
Er is een scala aan gratis distro's te vinden, en bijna al deze distro's hebben een package management systeem (zoals rpm of dpkg) en iets als yum of apt-get/aptitude waarmee je de nodige software kunt installeren. Je hoeft dingen als PHP/MySQL dus niet los te downloaden
Verder kan ik als distro Debian en Ubuntu (Debian-parallel) aanraden, of als je voor de grafische configuratie wilt gaan lijkt me Fedora Core een goede keuze. Uiteraard gratis(er zijn niet zoveel betaalde distro's, althans, geen waarvan er niet een gratis versie zonder officiële support te vinden is).
Je kunt in Ubuntu vziw zelfs een AMP virtual package installeren, die installeert automatisch de juiste pakketten voor jequote:Op vrijdag 25 mei 2007 15:11 schreef Tuvai.net het volgende:
[..]
Ubuntu ben ik inderdaad ook al verscheidene keren op terecht gekomen. Een stagiair hier op 't werk heeft inmiddels een CD`tje aangevraagd die opgestuurd gaat worden. Maar in Ubuntu zit dus alles wat ik nodig heb om op een Linux server PHP in combinatie met MySQL te draaien? In de vorm van een installer/package? Of komt er een hoop handmatige configuratie aan te pas?
Ubuntu en Debian gebruiken allebei gewoon dpkg als packagemanager. Daarvoor zijn verschillende frontends, zoals apt-get, aptitude, synaptic, adept, etcetera en die zijn meestal ook in beide distro's te vindenquote:Op vrijdag 25 mei 2007 15:11 schreef Swetsenegger het volgende:
Waarom download je geen kant en klare AMP. Dan download je een linux distri, een klant en klare AMP en met enkele malen klikridderen heb je ene LAMP.
Eventueel wat aanpassingen maken in de PHP.INI en apache en je bent klaar.
Ubuntu wordt vaak geroemd om zijn gebruiksvriendelijkheid (mbt linux dan he) en is gewoon gratis te downloaden.
Aan de andere kant wordt Debian vaak gebruikt door hosters omdat die een aardige packetmanager heeft en het makkelijk schijnt te zijn om de packagemanager AMP installaties bij te houden. Maar ik neem aan dat Ubuntu ook wel een aardige packagemanager heeft.
Ah, mooi. Die ga ik eens proberen dan.quote:Op vrijdag 25 mei 2007 15:13 schreef Swetsenegger het volgende:
Oe, van Ubuntu kan je zelfs een kant en klare LAMP installatie downloaden.
Ja. Mag ik vragen waarom je niet gewoon een Windowssysteem inricht met een AMP-installatie? Want volgens mij heb je nog niet veel ervaring met Linux, en dat kan zeker in het begin niet altijd even makkelijk zijnquote:Op vrijdag 25 mei 2007 15:21 schreef Tuvai.net het volgende:
Ben nu Ubuntu aan 't downloaden. Dat werkt hetzelfde als het Windows XP installatie CD-rommetje?Dus als het ware gewoon een lege computer vanaf CD Rom opstarten en installeren maar?
Beide is mogelijk. Hoewel het instellen van php, mysql en apache erg eenvoudig is op de meeste distributies. Ubuntu heb je binnen 30 minuten draaien. Ik zou het gewoon eerst proberen en als het niet lukt kun je altijd nog windows erop zetten.quote:Op vrijdag 25 mei 2007 15:29 schreef Tuvai.net het volgende:
Hmm, geen idee eigenlijk. Maakt dat niks uit voor m'n PHP installatie? Of kan ik net zo goed een servertje met Windows 2003 inrichten en daar een AMP-installatie overheen gooien?
Licentie$$ ?quote:Op vrijdag 25 mei 2007 15:24 schreef JeRa het volgende:
[..]
Ja. Mag ik vragen waarom je niet gewoon een Windowssysteem inricht met een AMP-installatie? Want volgens mij heb je nog niet veel ervaring met Linux, en dat kan zeker in het begin niet altijd even makkelijk zijn
quote:Op vrijdag 25 mei 2007 15:29 schreef Tuvai.net het volgende:
Hmm, geen idee eigenlijk. Maakt dat niks uit voor m'n PHP installatie? Of kan ik net zo goed een servertje met Windows 2003 inrichten en daar een AMP-installatie overheen gooien?
Dan kan je net zo goed een thumbdrive LAMP install downloadenquote:Op vrijdag 25 mei 2007 15:32 schreef Geqxon het volgende:
[..]
Licentie$$ ?
Iemand trouwens enig idee hoe veel ruimte een Ubutnu LAMP installatie inneemt? Misschien eens mijn fluisterstille barebone maar eens als webserver gaan gebruiken.
Naast het werken op een linuxsysteem dmv. SSH heb ik amper linuxervaring, heb je misschien tips voor een systeem met een "hardeschijf" (CompactFlash) van 1GB?quote:Op vrijdag 25 mei 2007 15:32 schreef Swetsenegger het volgende:
[..]
Dan kan je net zo goed een thumbdrive LAMP install downloaden
deze of deze of je neemt een Damn Small Linux distri met vervolgens een AMPquote:Op vrijdag 25 mei 2007 15:37 schreef Geqxon het volgende:
[..]
Naast het werken op een linuxsysteem dmv. SSH heb ik amper linuxervaring, heb je misschien tips voor een systeem met een "hardeschijf" (CompactFlash) van 1GB?
Persoonlijk kan ik XAMPP aanraden.quote:Op vrijdag 25 mei 2007 15:39 schreef Tuvai.net het volgende:
Goed. Dan ga ik het dinsdag met de Ubuntu distro eens proberen. Mocht dat niet lukken veeg ik alsnog Windows 2003 server d'r overheen en dan download ik gewoon een AMP-installatie. Ik hou jullie dinsdag wel op de hoogte.
1 2 3 | preg_match("#([0-9]*)#Ui",$readdir,$match); ?> |
zoiets?:quote:Op zaterdag 26 mei 2007 14:48 schreef Geqxon het volgende:
Mijn plan een string te regular-expressionen om te kijken of hij puur uit cijfers bestaat:
[ code verwijderd ]
En toch krijg ik er geen resultaat op. Vreemd, ik doe toch verder niks fout?
1 |
Bedankt :)quote:Op zaterdag 26 mei 2007 15:44 schreef mschol het volgende:
[..]
zoiets?:
[ code verwijderd ]
??
gelijk maar een vraagje:
kan met php een label van een drive c.q. cd uitlezen (de naar die je aan een drive kan geven)
1 2 3 | echo exec('dir C:'); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Het volumenummer is 600A-3AE0 Map van C:Documents and SettingsAdministrator 25-05-2007 10:28 <DIR> . 25-05-2007 10:28 <DIR> .. 25-05-2007 10:14 <DIR> Bureaublad 01-02-2007 10:29 <DIR> Contacts 28-03-2007 13:24 <DIR> Favorieten 02-12-2006 16:06 <DIR> Menu Start 22-05-2007 23:11 <DIR> Mijn documenten 07-04-2007 18:19 <DIR> WINDOWS 0 bestand(en) 0 bytes 8 map(pen) 2.962.329.600 bytes beschikbaar |
http://nl3.php.net/manual/nl/function.ctype-digit.phpquote:Op zaterdag 26 mei 2007 14:48 schreef Geqxon het volgende:
Mijn plan een string te regular-expressionen om te kijken of hij puur uit cijfers bestaat:
[ code verwijderd ]
En toch krijg ik er geen resultaat op. Vreemd, ik doe toch verder niks fout?
hmm dirty workaroundquote:Op zaterdag 26 mei 2007 16:38 schreef Geqxon het volgende:
[..]
Bedankt
Een ruwe manier om aan je antwoord te komen:
[ code verwijderd ]
geeft waarschijnlijk als resultaat:
[ code verwijderd ]
Even door een regular expression halen (De volumenaam van station .* is (.*)), en je hebt hem. Het is rauw, het werkt alleen in het Nederlands, maar het werkt
beetje een workaround gevonden :')quote:Op zaterdag 26 mei 2007 22:29 schreef qu63 het volgende:
heeft er iemand enig idee hoe ik een php script alle links binnen mijn site op kan zoeken, en zolang ze binnen het domein blijven een entry maken op mn sitemap?
dus eigenlijk gewoon een sitemap die zichzelf onderhoudt :s)
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 | echo "xml version="1.0" encoding="UTF-8"?".">"; <urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd"> <url> <loc>http://www.qu63.nl/blog</loc> <changefreq>always</changefreq> <priority>1.0</priority> </url> <url> <loc>http://www.qu63.nl/blog/index.php</loc> <changefreq>always</changefreq> <priority>1.0</priority> </url> require('sql.php'); mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_DATABASE); $result = mysql_query("SELECT * FROM mms WHERE s = 1 ORDER BY Id DESC"); while ($row = mysql_fetch_assoc($result)) { echo " <url>n"; echo " <loc>http://www.qu63.nl/blog/message.php?id=".$row['ID']."</loc>n"; echo " <changefreq>daily</changefreq>n"; echo " <priority>0.5</priority>n"; echo " </url>n"; } </urlset> ?> |
Ja, door al je bestanden (of contents) te scannen op links en die op de juiste manier te parsen. Probleem daarbij is: hoe onderscheid je een sublink van een crosslink?quote:Op zaterdag 26 mei 2007 22:29 schreef qu63 het volgende:
heeft er iemand enig idee hoe ik een php script alle links binnen mijn site op kan zoeken, en zolang ze binnen het domein blijven een entry maken op mn sitemap?
dus eigenlijk gewoon een sitemap die zichzelf onderhoudt
het ging mij dus ook meer om de uitovering er van, maar ik heb dus al iets gevondenquote:Op zaterdag 26 mei 2007 23:08 schreef JeRa het volgende:
[..]
Ja, door al je bestanden (of contents) te scannen op links en die op de juiste manier te parsen. Probleem daarbij is: hoe onderscheid je een sublink van een crosslink?
nice workaroundquote:Op zaterdag 26 mei 2007 23:08 schreef qu63 het volgende:
[..]
beetje een workaround gevonden
[ code verwijderd ]
but does the trick
Hiermee kan ik de gegevens opvragen. Dank daarvoor, wist niet dat zoiets bestond.quote:Op zondag 27 mei 2007 22:40 schreef Tuvai.net het volgende:
Wat wil je onder andere weten van je bezoekers?
getallheaders() is verder een hele simpele oplossing: http://nl2.php.net/manual/nl/function.getallheaders.php . Daarmee kun je vrijwel alle nuttige informatie van je bezoekers ophalen.
OS, OS-versie, browser, browser-versie en met wat geluk taal zijn uit je headers te halen. Country kan je met een ip2location database vinden en word met wat geluk ook in je $_SERVER gezet in dat geval hoef je geen ip2location database te gebruiken. Resoluties, kleuren, java, flash en javascript word wat lastiger maar dat kan je met javascript laten doen en dan een plaatje laten laden of een AJAX call in de achtergrond laten doen om de gegevens naar de server terug te sturen.quote:Op zondag 27 mei 2007 23:04 schreef beerten het volgende:
[..]
Hiermee kan ik de gegevens opvragen. Dank daarvoor, wist niet dat zoiets bestond.
Nu wil ik ook nog een script dat de gegevens transformeert naar "begrijpelijke" waarden
brows = firefox
version = 2.0.3
Country = The Netherlands
Language = dutch
OS = Linux
OS-version = suse
Op dit niveau. De headers opvragen is niet moeilijk, maar deze interpreteren is een tweede. Niet moeilijk, maar veel werk. En er zijn scripts die dit kunnen, die vind ik via Google. Maar wat is goed en wat niet?
Die komen in feite allemaal op hetzelfde (getallheaders) neer.quote:Op zondag 27 mei 2007 23:04 schreef beerten het volgende:
[..]
Hiermee kan ik de gegevens opvragen. Dank daarvoor, wist niet dat zoiets bestond.
Nu wil ik ook nog een script dat de gegevens transformeert naar "begrijpelijke" waarden
brows = firefox
version = 2.0.3
Country = The Netherlands
Language = dutch
OS = Linux
OS-version = suse
Op dit niveau. De headers opvragen is niet moeilijk, maar deze interpreteren is een tweede. Niet moeilijk, maar veel werk. En er zijn scripts die dit kunnen, die vind ik via Google. Maar wat is goed en wat niet?
quote:Op maandag 28 mei 2007 14:28 schreef WyriHaximus het volgende:
...
Dit had ik ook al bedacht idd... data per dag optellen, en per 7 dagen weer als week optellen etc.quote:Op maandag 28 mei 2007 14:28 schreef WyriHaximus het volgende:
It's will be smart to save it as day, week, month, quarter year and year so you don't have to much load to make your overall stats.
Ik gebruik 10 tabellen voor me statsquote:Op maandag 28 mei 2007 18:53 schreef Xcalibur het volgende:
[..]
Dit had ik ook al bedacht idd... data per dag optellen, en per 7 dagen weer als week optellen etc.
De data splitsen over meer tabellen vind ik dat weer niet handig, maar dat is meer vanuit de gedachte dat je de stats als iets 'extra' bijhoudt bij een site. Daar 6 tabellen ofzo voor gebruiken vind ik dan weer vrij veel, in verhouding... als je een dedicated statistieken rapportage ding bouwt is dat een ander verhaal natuurlijk
Overigens gebruik ik meestal gewoon een OneStat account, scheelt mij weer een hoop gedoe
Ja, dat vind ik dus teveel van het goede.... waarom doe je het eigenlijk zelf, en niet met een OneStat oid?quote:Op maandag 28 mei 2007 19:08 schreef WyriHaximus het volgende:
Ik gebruik 10 tabellen voor me stats.
Ik dacht dat je een quote ergens vandaan had gehaaldquote:Op maandag 28 mei 2007 19:08 schreef WyriHaximus het volgende:Ik begin me nu in eens af te vragen waarom ik zomaar engels ging praten daar.
geeft niet joh, gebruik ik er ook gewoon nog steeds naastquote:
Zie opmerking hierbovenquote:Op maandag 28 mei 2007 19:44 schreef Xcalibur het volgende:
[..]
Ja, dat vind ik dus teveel van het goede.... waarom doe je het eigenlijk zelf, en niet met een OneStat oid?
Nee zat ook wow te spelen en dat daar ook in gesprek maar dan in het engelsquote:Op maandag 28 mei 2007 19:44 schreef Xcalibur het volgende:
[..]
Ik dacht dat je een quote ergens vandaan had gehaald
Het heeft nog veel meer voordelen. Je kan precies zien wat een user uitvreet. Je kan zelfs post en get variabelen afvangen (alle formfields, zoektermen, errormessages etc.)quote:
Ja, duidelijk... maar wat is dan de 'best practise' zeg maar?quote:Op maandag 28 mei 2007 20:22 schreef beerten het volgende:
Wat de grootte van de tabellen betreft: Je zou inderdaad een onderhoudsscript kunnen schrijven dat op gezette tijden de dagstatistieken wegschrijft naar weken/maanden/dagen/uren. Zoiets.
Die is afhankelijk van je eisenquote:Op maandag 28 mei 2007 20:27 schreef Xcalibur het volgende:
[..]
Ja, duidelijk... maar wat is dan de 'best practise' zeg maar?
Dus basicly $_SESSION, $_SERVER, $_POST en $_GET bij elke opgevraagde pagina wegschrijven?quote:Op maandag 28 mei 2007 20:22 schreef beerten het volgende:
[..]
Het heeft nog veel meer voordelen. Je kan precies zien wat een user uitvreet. Je kan zelfs post en get variabelen afvangen (alle formfields, zoektermen, errormessages etc.)
Je kan het integreren in een beveiligingssysteem.
Je hebt namelijk een duidelijk profiel van de gebruiker (ip, sessie-id, browser, os etc) Als er gedurende de sessie ook maar iets veranderd is de sessie gestolen, dus een hack-attempt.
Nee, dat is nu ook weer niet de bedoelingquote:Op maandag 28 mei 2007 20:47 schreef Geqxon het volgende:
[..]
Dus basicly $_SESSION, $_SERVER, $_POST en $_GET bij elke opgevraagde pagina wegschrijven?
Qua performance lijkt het mij sneller als je Apache dergelijke data naar de HDD laat schrijven.
Dit vind ik wel een interessante insteekquote:Op maandag 28 mei 2007 21:20 schreef beerten het volgende:
Je zou het wel kunnen gebruiken op bepaalde pagina's om errormessages te loggen. Denk aan formulieren. Hiermee kan je zien welke fouten de gebruiker maakt en zo je website optimaliseren.
Wat ik persoonlijk zou doen is perdag gegevens die ik nodig heb om statestieken te genereren op te slaan. En dan eens per week de gegevens voor die week uit die van de 7 dagen in die week halen. En dan op die fiets verderquote:Op maandag 28 mei 2007 20:43 schreef JeRa het volgende:
[..]
Die is afhankelijk van je eisenals je bijvoorbeeld na 3 maanden genoegen neemt met een samenvatting per dag/maand, dan moet je de statistieken dus 'compileren' en opslaan. Je kunt er ook voor kiezen om bijvoorbeeld na 365 dagen statistieken te verwijderen, dan moet je dus per statistiek een timestamp gaan bijhouden. Het ligt er dus aan wat jij wil
Daar heb ik sinds een week of zo ineens erg last van. Vervelend. Is al zeker de vierde keer dat ik maatregelen moet nemen op mijn portfolio`tje tegen spam, waar maar iets van 40 bezoekers per dag op komen of zo. Gastenboek en Prikbordje heb ik al tig keren de 'beveiliging' van moeten aanpassen omdat d'r elke keer maar getracht werd te spammen. Vaak ook nog nutteloze spam, aangezien ze met hun URLs niet door m'n spamwoordenfilter komen en alleen maar een berichtje als 'nice...' achterlaten.quote:Op maandag 28 mei 2007 23:16 schreef WyriHaximus het volgende:
[..]
Wat ik persoonlijk zou doen is perdag gegevens die ik nodig heb om statestieken te genereren op te slaan. En dan eens per week de gegevens voor die week uit die van de 7 dagen in die week halen. En dan op die fiets verder. Zo kan je van alle dagen stats laten zien maar ook van alles over de gehelen reccord tijd. Dit is handig als je ook reports wilt hebben over een bepaalde tijd waarin je een bepaalde actie heb gehad.
Anyway zolang je je URL opslaat heb je automatish ook je $_GET. Zelf sla ik ook referers op en een waarschuwing, wat tegenwoordig ook vaak word gedaan is referer spamming, komt er op neer dat ze een random hit op je site doen met de referer van de site die aandacht moet hebben volgens hun. Deze referer zie je dan vaak verschijnen in stats. Het is iets om op te latten als je je stats ook andere laat zien
.
Ja idd ben zelf geen fan van plaatjes als website bezoeker maar als webmaster werken ze toch verdomde goed. Het eerste wat ik zelf ga maken als ik tijd heb er voor is een set met dat soort simpele vragen om het toch moeilijk te maken voor bots en makkelijk voor bezoekers.quote:Op dinsdag 29 mei 2007 07:47 schreef Chandler het volgende:
Of zet er een vakje neer die je comment noemt maar vermeld in de tekst dat hier alleen een 0 getyped moet worden oid...
Ik heb in begin heel veel captcha's gebruikt, maar zelfs daar gaan ze op een gegeven moment omheen komen, hoe random je ze ook maakt.quote:Op dinsdag 29 mei 2007 00:40 schreef Geqxon het volgende:
Laat je gebruikers een code overtypen?
Valt nog best mee. Vergeet niet dat phpBB zeer vaak gebruikt word en zeer makkelijk op te zetten is en daardoor een zeer aantrekkelijk doel is om aan te vallen. De CAPTCHA is gewoon gekraakt en word nu misbruikt om forums vol me te spammen. De bots zijn dan ook voor phpBB geschreven (of een module voor een bot), dat je de zelfde CAPTCHA voor je gasten boek gebruikt en daar geen last van hebt komt waarschijnlijk doordat ze het verkeerde proberen of gewoon helemaal geen CAPTCHA check uitvoerenquote:Op dinsdag 29 mei 2007 08:41 schreef Xcalibur het volgende:
ik heb dergelijke problemen op een phpBB board, de CAPTCHA check die daarbij zit is zo lek als een mandje, terwijl dezelfde check het in het gastenboek prima doet... ? Anyway, daar zit nu een check op waarbij je een woord moet overtypen, die werkt tot nu toe feilloos. Sinds 11 mei heb ik al ruim 400 bot-meldingen gehad
Je kunt kijken of ze uberhaupt geinstalleerd zijn om te beginnenquote:Op dinsdag 29 mei 2007 14:29 schreef Tuvai.net het volgende:
Vervolg op m'n posts van vorige week.
Heb Ubuntu succesvol geïnstalleerd op een server. Vind het er nog mooier uitzien en lekkerder draaien dan Windows tot nu toe.Ik heb net eens een simpel PHP bestandje met phpinfo() gemaakt met de text editor en deze geopend in Firefox, wat uiteraard niet werkte. PHP en MySQL zouden in Ubuntu moeten zitten van wat ik begrepen heb, waar vind ik deze dan?
[Linux/Unix] [/Gurus/helpen/newbies]% ./deel 17quote:Op dinsdag 29 mei 2007 14:29 schreef Tuvai.net het volgende:
Vervolg op m'n posts van vorige week.
Heb Ubuntu succesvol geïnstalleerd op een server. Vind het er nog mooier uitzien en lekkerder draaien dan Windows tot nu toe.Ik heb net eens een simpel PHP bestandje met phpinfo() gemaakt met de text editor en deze geopend in Firefox, wat uiteraard niet werkte. PHP en MySQL zouden in Ubuntu moeten zitten van wat ik begrepen heb, waar vind ik deze dan?
1 2 3 | sudo apt-get install mysql-server sudo apt-get install php5-cgi php5-mysql php5-gd php5 |
kan apache-common niet vinden.quote:Op dinsdag 29 mei 2007 14:37 schreef Tiemie het volgende:
[..]
[Linux/Unix] [/Gurus/helpen/newbies]% ./deel 17
je kan via de commandline:
[ code verwijderd ]
doen.
apache2 dan.quote:Op dinsdag 29 mei 2007 14:49 schreef Tuvai.net het volgende:
[..]
kan apache-common niet vinden.
Zegt genoeg denk ik.
Ik gebruik beveiliging eigenlijk puur voor mezelf dat mensen niet blog posts kunnen maken en dat soort dingenquote:Op dinsdag 29 mei 2007 17:28 schreef cyberstalker het volgende:
JortK: hoe belangrijk is beveiliging voor je?
Wat ik sowieso nooit zou doen is een hash van het wachtwoord in de cookies zetten. Die worden dan bij iedere pagina opnieuw verstuurd en als iemand die onderschept kan die direct de gehele applicatie in.
Wat ik eerder zou doen is het userid in de sessie opslaan en daarbij gelijk het ipadres, browser etc... Mocht iemand dan de sessie hijacken dan zie je meteen een ander ipadres en log je de gebruiker uit. Daarnaast kun je opgeven hoe lang een sessie actief mag blijven, dat zou ik niet te lang zetten.
Er zijn daarnaast nog veel meer beveiligingen mogelijk, maar dat hangt allemaal af van hoe belangrijk beveiliging voor jou is. Je zou bijvoorbeeld ook https kunnen gebruiken.
Geldigheid van de cookie niet onbeperkt lang instellen (wat ik nog steeds heel veel mensen zie doen) en het wachtwoord dat in de cookie staat encrypten; MD5 of SHA of zo.quote:Op dinsdag 29 mei 2007 17:52 schreef Piles het volgende:
Een cookie wordt toch opgeslagen op de pc van de gebruiker? Dus als jij ergens inlogt, je browser afsluit en weggaat, en de volgende persoon gaat naar je site, dan bestaat de cookie nog steeds. En is die persoon ingelogd
Een sessie verloopt zodra je de browser sluit (ala), een cookie is voor een lange tijd geldig.quote:Op dinsdag 29 mei 2007 19:00 schreef beerten het volgende:
Waarom zou je uberhaupt cookie's gebruiken? Je hebt toch sessies???
(al zijn dat in principe ook cookies)
Niet alle gebruikers hebben cookies ingeschakeld.
Zodat je elke keer als de gebruiker terugkomt een username/password check uit kunt voeren, mocht zijn password ergens op een andere computer gewijzigd zijnquote:Op dinsdag 29 mei 2007 18:29 schreef SuperRembo het volgende:
Waarom zou je een wachtwoord (encrypted of niet) in een cookie op willen slaan?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |