1 |
De quick & dirty oplossing is javascript gebruiken om onload alle links naar je eigen pagina's te encoden.quote:Op maandag 9 oktober 2006 20:02 schreef Piles het volgende:
Ik gebruik de mod_rewrite-dinges voor mijn pagina's, maar nu had ik een probleem met bijvoorbeeld de link:
http://www.huisdierportal(...)20een%20weblog?.html
Dit komt door het ? in de url. Deze moet omgezet worden naar de waarde %iets. In PHP is daar de functie urlencode() voor, maar nu moet ik dus al mijn links (dus templates + code) aanpassen om alles goed te krijgen
Nu vroeg ik me af of dit niet met 1 instelling ofzo kan?
multiviews gebruiken ipv een modrewritequote:Op maandag 9 oktober 2006 20:02 schreef Piles het volgende:
Ik gebruik de mod_rewrite-dinges voor mijn pagina's, maar nu had ik een probleem met bijvoorbeeld de link:
http://www.huisdierportal(...)20een%20weblog?.html
Dit komt door het ? in de url. Deze moet omgezet worden naar de waarde %iets. In PHP is daar de functie urlencode() voor, maar nu moet ik dus al mijn links (dus templates + code) aanpassen om alles goed te krijgen
Nu vroeg ik me af of dit niet met 1 instelling ofzo kan?
Ik heb maar 1 variabele tot mijn beschikking in die query, dus op jou manier moet ik de onder- of bovengrens berekenen met PHP. Dat is wat ik al heb gemaakt.quote:Op maandag 9 oktober 2006 14:01 schreef JeRa het volgende:
Vrij simpel. Je kunt in SQL ook bereiken aangeven door je WHERE-clausule zo te schrijven:
[ code verwijderd ]
Dat lukt vast?
Hoe wordt die Session variabel precies gevuld?quote:Op maandag 9 oktober 2006 12:23 schreef Pronk het volgende:
Ik heb een klein vraagje, met de volgende query haal ik een 1 blogje op uit mijn mysql database:
[ code verwijderd ]
Nu wil ik voortaan met deze query niet 1, maar 5 blogjes uit de database trekken. Ik kan dit oplossen door via PHP de volgende (of vorige) 5 ID's te berekenen.
Ik vraag me nu af, kan ik dit ook doen door de query te wijzigen, zoja, wat moet ik aanpassen in mijn query?
http://nl3.php.net/manual/en/function.array-search.phpquote:Op dinsdag 10 oktober 2006 13:55 schreef Desdinova het volgende:
is er een manier dat je de key van een array kan achterhalen bij een bepaalde value?
Dit zou ik inderdaad kunnen doen, maar dit heeft niet mijn voorkeur, eigenlijk wil ik ook niks aan die variabele veranderen. Maar ik vrees dat er niets anders op zit.quote:Op dinsdag 10 oktober 2006 10:32 schreef Pakspul het volgende:
[..]
Hoe wordt die Session variabel precies gevuld?
Anders kun je de variabel vullen als volgt _SESSION['lala'] = '1,2,3,4,5';
en dan als volgt de query gebruiken SELECT * FROM tabel WHERE BlogID IN _SESSION['lala']
SELECT * FROM table WHERE blogID = $blogID OR blogID > $blogID LIMIT 0, 5quote:Op dinsdag 10 oktober 2006 14:21 schreef Pronk het volgende:
[..]
Dit zou ik inderdaad kunnen doen, maar dit heeft niet mijn voorkeur, eigenlijk wil ik ook niks aan die variabele veranderen. Maar ik vrees dat er niets anders op zit.
Dit werkt bijna helemaal goed, alleen komt de geselecteerde + 4 nieuwere berichten uit de query, ik wil graag de geselecteerde + 4 oudere berichten uit de query.quote:Op dinsdag 10 oktober 2006 14:36 schreef Pakspul het volgende:
[..]
SELECT * FROM table WHERE blogID = $blogID OR blogID > $blogID LIMIT 0, 5
en < voor andersom uiteraad
Ff gegoogled: http://fundisom.com/phpsnippets/snip/databases/mySQL_to_excel/quote:Op woensdag 11 oktober 2006 19:52 schreef Swetsenegger het volgende:
Weet iemand een functie waarmee ik via php een database kan exporteren naar excel (dus niet naar comma seperated value)?
Volgens mij is dit meer een txt file dumpen en 'm vervolgens xls noemen, maar als het werkt...quote:Op woensdag 11 oktober 2006 19:55 schreef Piles het volgende:
[..]
Ff gegoogled: http://fundisom.com/phpsnippets/snip/databases/mySQL_to_excel/
Is dat wat?
PhpMyAdmin heeft standaard dergelijke functionaliteit aan boord, kijk eens in de libraries van dat project zou ik zeggenquote:Op woensdag 11 oktober 2006 19:52 schreef Swetsenegger het volgende:
Weet iemand een functie waarmee ik via php een database kan exporteren naar excel (dus niet naar comma seperated value)?
een hele database of alleen 1 tabel?quote:Op woensdag 11 oktober 2006 19:52 schreef Swetsenegger het volgende:
SELECT * FROM table WHERE blogID = $blogID OR blogID > $blogID ORDER BY blogID DESC LIMIT 0, 5
Weet iemand een functie waarmee ik via php een database kan exporteren naar excel (dus niet naar comma seperated value)?
Ik zou inderdaad eens in phpmyadmin kunnen kijken.quote:Op woensdag 11 oktober 2006 20:01 schreef JeRa het volgende:
[..]
PhpMyAdmin heeft standaard dergelijke functionaliteit aan boord, kijk eens in de libraries van dat project zou ik zeggenverder is CSV -> Excel geen optie? (daar kan het programma prima mee overweg namelijk).
1 tabel, en dan niet eens alle velden. WEL moet ik tussen sommige kolommenen vrije kolommen zien in te bakken omdat de andere app die weer nodig heeft.quote:Op woensdag 11 oktober 2006 20:01 schreef Xcalibur het volgende:
[..]
een hele database of alleen 1 tabel?
Ja dat doet die snippet van Piles ook, werkt inderdaad prima, behalve dat ik nu moet uitvinden hoe ik lege kolommen plak.quote:wat ik altijd doe is 1 query dumpen in een HTML table, en een PHP header meegeven dat ie hem als Excel moet opslaan (header('Content-Type: application/vnd.ms-excel');) en dat werkt prima. Je kan zelfs eenvoudige opmaak zoals bold enzo meegeven
Ja dat is dus mooi kut, want ook DAT moet ik oplossenquote:alleen getallen met voorloopnullen zijn lastig (ook telefoonnummers etc), want die sloopt Excel d'r af![]()
imagecreatefromstring, die was zeg maar één click away van de functies die je net noemde in de PHP manualquote:Op donderdag 12 oktober 2006 16:03 schreef Desdinova het volgende:
is er eigenlijk een algemene functie voor imagecreatefromjpeg, imagecreatefromgif, imagecreatefrompng enzo?
dus dat ik niet hoef te switchen op extensie of mimetype
hehe ohquote:Op donderdag 12 oktober 2006 16:07 schreef JeRa het volgende:
[..]
imagecreatefromstring, die was zeg maar één click away van de functies die je net noemde in de PHP manual
Er zijn veel verschillende oplossingen voor jouw probleem. Je geeft een beetje weinig informatie over de configuratie waarop je draait; maar je zou bijvoorbeeld een PHP-script kunnen schrijven dat een bestand opent ala:quote:Op donderdag 12 oktober 2006 16:15 schreef profielnaam het volgende:
hoi, ik probeer een scriptje te maken dat elke 5 uur een bestand download van meerdere servers.
zelf heb ik een html file gemaakt dat om de zoveel tijd een pagina update, maar daarmee wordt 1. het bestand niet automatisch opgeslagen en 2. ik kan geen meerdere sites opgeven waarvan gedownload moet worden.
Ik zou ook willen dat het bestand alleen gedownload wordt als het niet gelijk is aan het bestaande bestand.
1 |
De snelste manier om te controleren of het bestand dat je wilt downloaden hetzelfde is dan je bestaande bestand is via md5()quote:Op donderdag 12 oktober 2006 16:15 schreef profielnaam het volgende:
hoi, ik probeer een scriptje te maken dat elke 5 uur een bestand download van meerdere servers.
zelf heb ik een html file gemaakt dat om de zoveel tijd een pagina update, maar daarmee wordt 1. het bestand niet automatisch opgeslagen en 2. ik kan geen meerdere sites opgeven waarvan gedownload moet worden.
Ik zou ook willen dat het bestand alleen gedownload wordt als het niet gelijk is aan het bestaande bestand.
waar kan ik zulke php code vinden ? of als iemand al een soortgelijk script heeft, zou dat geshared kunnnen worden ?
Dat is natuurlijk ontzettend nutteloos, omdat je voor md5file() eerst het bestand moet downloadenquote:Op donderdag 12 oktober 2006 16:51 schreef fate het volgende:
[..]
De snelste manier om te controleren of het bestand dat je wilt downloaden hetzelfde is dan je bestaande bestand is via md5(). Het hele bestand erdoor en controleren met je vorige md5() string. Dit gaat veel sneller dan het ganse bestand te vergelijken. Als het dan niet gelijk is; opnieuw downloaden.
1 2 3 | $array = array(0 => "iets", 1 => "nog iets", 4 => "anders nog iets?"); ?> |
1 2 3 4 5 6 7 | php if(count($array) == 0) $maximum = 0; else $maximum = ((int) (max(array_flip($array)))); ?> |
1 2 3 4 5 6 | if(count($array) == 0) $maximum = 0; else $maximum = ((int) (max(array_keys($array)))); ?> |
1 2 3 4 5 | $query = "SELECT l.session_stamp, l.tijd, l.ip_address FROM logged_in AS l WHERE l.user_id = '" . $id . "'"; ?> |
1 2 3 4 5 6 | $query = "SELECT l.tijd, l.ip_address FROM logged_in AS l INNER JOIN users AS u ON l.user_id = u.id WHERE l.session_stamp = '" . $sid . "' AND u.id = '" . $userid . "'"; ?> |
Ik gebruik verder nog geen dingen erbij, dit zijn de enige checks die ik uitvoer. Dus na de login wordt de data naar de DB geschreven, en dat wordt voortdurend gecontroleerd... Of ben ik nu té simpel bezig?quote:Mits je een sessionid-systeem maakt dat genoeg verschillende sessionid's kan genereren
Als je een session-systeem schrijft moet je iets hebben dat de session identificeert. Dit is in jouw geval de sessionidquote:Op zaterdag 14 oktober 2006 15:17 schreef SkaterSam het volgende:
Ok, ja je hebt inderdaad gelijk met de INNER JOIN, ik heb nog steeds niet echt de "feeling" om dat in een query te kunnen zetten, maar dat moet ik een beetje nog aanleren dus. Ik snapte alleen niet wat je hier mee bedoelde:
[..]
Ik gebruik verder nog geen dingen erbij, dit zijn de enige checks die ik uitvoer. Dus na de login wordt de data naar de DB geschreven, en dat wordt voortdurend gecontroleerd... Of ben ik nu té simpel bezig?
lig er aan: zijn het 20 query's zou ik gaan proberen ze zoveel mogelijk apart in een soort van array te zetten (die boven aan de pagina of in een ander bestand wordt gedefineerdquote:Op zaterdag 14 oktober 2006 15:30 schreef super-muffin het volgende:
Ik ben nou bezig met mijn eigen site aan het omzetten in PHP en mySQL.
Nu staan veel query's midden in de pagina. Ik vind dat niet echt netjes. Stoppen jullie die in een apart bestand of stel ik me aan?
Imho is de mooiste oplossing om de logistiek achter een website te scheiden van de presentatie. Wat ik dus meestal doe is een PHP-bestand schrijven waar alle bewerkingen worden uitgevoerd en waarin ik een template laadt die mijn gegevens kan presenteren.quote:Op zaterdag 14 oktober 2006 15:30 schreef super-muffin het volgende:
Ik ben nou bezig met mijn eigen site aan het omzetten in PHP en mySQL.
Nu staan veel query's midden in de pagina. Ik vind dat niet echt netjes. Stoppen jullie die in een apart bestand of stel ik me aan?
Miniem, maar een check is op z'n minst wel netjes. Als je je sessionid een PRIMARY KEY maakt wordt ie automatisch ook UNIQUE en dan krijg je een foutmelding terug als je een al bestaande session id probeert te inserten, dus daar zou je eventueel op kunnen checkenquote:Op zaterdag 14 oktober 2006 15:32 schreef SkaterSam het volgende:
Maar hoe vaak komt het voor dat dezelfde sessionid's worden gegenereerd @random? Het betreft trouwens nu nog een systeem waar maar enkele mensen op inloggen... Een stuk of 10 zeg maar, dan is die kans toch miniem...?
Op aanraden van Crazaay (geloof ik) heb ik eens naar CodeIgniter gekeken. Hiermee wordt het je behoorlijk makkelijk gemaakt om een cleane website te maken.quote:Op zaterdag 14 oktober 2006 16:09 schreef JeRa het volgende:
[..]
Imho is de mooiste oplossing om de logistiek achter een website te scheiden van de presentatie. Wat ik dus meestal doe is een PHP-bestand schrijven waar alle bewerkingen worden uitgevoerd en waarin ik een template laadt die mijn gegevens kan presenteren.Zoiets kun je bewerkstelligen met Smarty.
Ja, maar dat zou dan moeten gebeuren als je inlogt, en niet nadat je al bent ingelogd.quote:Op zaterdag 14 oktober 2006 16:10 schreef JeRa het volgende:Miniem, maar een check is op z'n minst wel netjes. Als je je sessionid een PRIMARY KEY maakt wordt ie automatisch ook UNIQUE en dan krijg je een foutmelding terug als je een al bestaande session id probeert te inserten, dus daar zou je eventueel op kunnen checken
lege kolommen kan je toevoegen door een extra <td> in je tabel te zetten... gewoon geen data inzettenquote:Op woensdag 11 oktober 2006 20:34 schreef Swetsenegger het volgende:
Ja dat doet die snippet van Piles ook, werkt inderdaad prima, behalve dat ik nu moet uitvinden hoe ik lege kolommen plak.
[..]
Ja dat is dus mooi kut, want ook DAT moet ik oplossen
gebruik anders deze ` (dus naast het uitroepteken..) voor ieder getal, dan slikt Excel allesquote:Op woensdag 11 oktober 2006 20:34 schreef Swetsenegger het volgende:
Ja dat is dus mooi kut, want ook DAT moet ik oplossen
Aha, wel een goeie om te bookmarken.quote:Op zaterdag 14 oktober 2006 16:09 schreef JeRa het volgende:
[..]
Imho is de mooiste oplossing om de logistiek achter een website te scheiden van de presentatie. Wat ik dus meestal doe is een PHP-bestand schrijven waar alle bewerkingen worden uitgevoerd en waarin ik een template laadt die mijn gegevens kan presenteren.Zoiets kun je bewerkstelligen met Smarty.
De afhandeling van CSV door Excel is behoorlijk brak. De voorloopnullen zijn er nog wel doorheen te krijgen, maar een string met een komma erin wordt opgesplitst in 2 cellen, zelfs als de string tussen "" staat. dat kan je weer oplossen door een tab als schijdingsteken te gebruiken en alle tabs in de strings door een spatie te vervangen.quote:Op woensdag 11 oktober 2006 20:34 schreef Swetsenegger het volgende:
[..]
Ja dat is dus mooi kut, want ook DAT moet ik oplossen
Uiteindelijk geniet het de voorkeur om als uitgangspunt het model 2 paradigma te nemen. Dat betekent onder andere dat je inderdaad dus geen enkele business code in je HTML plaatst. In plaats daarvan gebruik je een templating systeem, zoals JeRa met Smarty al aan heeft gegeven. Uiteraard hangt het af van de omvang van een website in hoeverre een dergelijke benadering echt noodzakelijk is. In ieder geval is het een goed uitgangspunt om je ontwikkel- en daarbij je abstractieniveau te verhogen wat zeker noodzakelijk is, wanneer je begint aan het ontwikkelen van webapplicaties.quote:Op zaterdag 14 oktober 2006 15:30 schreef super-muffin het volgende:
Ik ben nou bezig met mijn eigen site aan het omzetten in PHP en mySQL.
Nu staan veel query's midden in de pagina. Ik vind dat niet echt netjes. Stoppen jullie die in een apart bestand of stel ik me aan?
Die kans mag dan wel miniem zijn, maar de kans is aanwezig en dat lijkt mij al voldoende om deze uit te sluiten. Stel dàt het gebeurt; dat wil je niet. Een oplossing kan dan zijn om middels een soort lus-systeem een random key te genereren, waarbij hij telkens blijft genereren totdat een key is gegenereerd welke nog niet voorkomt in de tabel. In 99% van de gevallen al de lus slechts één maal doorlopen worden, maar mocht er bij toeval toch een key worden gegenereerd die reeds bestaat, dan maakt ie weer een nieuwe.quote:Op zaterdag 14 oktober 2006 15:32 schreef SkaterSam het volgende:
Maar hoe vaak komt het voor dat dezelfde sessionid's worden gegenereerd @random? Het betreft trouwens nu nog een systeem waar maar enkele mensen op inloggen... Een stuk of 10 zeg maar, dan is die kans toch miniem...? En met AUTO_INCREMENT bedoel je als ik vanuit de DB een sessionid zou aanmaken?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //Controleer of de login geen dubbele session stamps oplevert... function checkLogin() { // Maak enkele variables om in de DB te voegen session_regenerate_id(); $fingerprint = $this->makeFingerprint(); $fingerprint = mysql_real_escape_string($fingerprint); // Controleer of die variable al bestaat $login_query = "SELECT COUNT(l.session_stamp) AS fingerprint FROM logged_in AS l WHERE l.session_stamp = '" . $fingerprint . "'"; $login_resource = mysql_query($login_query); $login_result = mysql_fetch_assoc($login_resource); if ($login_result['fingerprint'] == 1) { $this->checkLogin(); } return $fingerprint; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | do { // Maak random session id session_regenerate_id(); $fingerprint = $this->makeFingerprint(); $fingerprint = mysql_real_escape_string($fingerprint); // Controleer de session id $query = 'SELECT COUNT(...) AS num FROM tabel etc etc'; $result = mysql_query($query); $data = mysql_fetch_assoc($result); } while (intval($data['num']) > 0); ?> |
Ha, ja zo kan het ook, ik vroeg me ook al af of mijn manier niet erg gevoelig was voor bugs... Want mijn manier doet precies hetzelfde toch ? Of wordt het dan een soort van nested loop... ?quote:Op zondag 15 oktober 2006 14:12 schreef JeRa het volgende:
@SkaterSam
Ik denk eerder dat FuifDuif zoiets bedoelt:
[ code verwijderd ]
Jouw functie werkt niet, omdat je $this->checkLogin() wel aanroept maar $fingerprint helemaal niet verandert :) als je dit had geschreven:quote:Op zondag 15 oktober 2006 14:24 schreef SkaterSam het volgende:
[..]
Ha, ja zo kan het ook, ik vroeg me ook al af of mijn manier niet erg gevoelig was voor bugs... Want mijn manier doet precies hetzelfde toch ? Of wordt het dan een soort van nested loop... ?
1 2 3 | $fingerprint = $this->checkLogin(); } |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |