GI | vrijdag 23 september 2011 @ 14:28 | |||||||
Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt Zie ook: • PHP Dataverwerking • Officiële PHP website • PHP Documentatie • MySQL Reference Manual • Yet Another PHP Faq • PHP Cheat Sheet • PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc Tutorials: • W3Schools PHP • W3Schools SQL | ||||||||
GI | vrijdag 23 september 2011 @ 14:28 | |||||||
Ja, want leesbare code krijg je natuurlijk door op die manier te coderen... | ||||||||
Pakspul | vrijdag 23 september 2011 @ 15:13 | |||||||
Uiteraard kun je het moeilijker doen | ||||||||
Chandler | vrijdag 23 september 2011 @ 15:50 | |||||||
Ik wilde blijkbaar te moeilijk zelf had ik ook al een oplossing met - maar wilde eigenlijk ook de titel controleren maar dat gaat op deze manier ook wel werken | ||||||||
Pakspul | vrijdag 23 september 2011 @ 15:59 | |||||||
Regex hier gebruiken in volgens mij ook nog trager, dan wanneer je strpos + substr gebruikt. | ||||||||
Sitethief | vrijdag 23 september 2011 @ 16:00 | |||||||
Iemand ervaring met PDO + InnoDB? Insert queries die met PDO + MyISAM goed liepen doen het met InnoDB niet via PDO, wel direct in de database. Kheb al flink gezocht naar informatie hier over maar kan niet echt specifiek deze case vinden. Bij Inserts via PDO met InnoDB met gebruik van BindParam() gaat het mis. BindParam() geeft wél true terug, en debugDumpParams () geeft ook aan dat de parameters ook gebonden zijn. Maar er wordt gewoon ':name' ipv 'NaamVanObject' geinsert. Iets wat nog vervelender is als ':key' als string ipv als int in een foreign key veld geinsert wordt (of iig een poging). Ik heb geen zin om de functionaliteiten van PDO volledig te om zeilen alleen maar omdat Innodb hier blijkbaar niet goed mee om gaat. Overigens maakt het niet uit hoe je de parameters mee geeft, BindParam, Bindvalue, of direct in de execute(); | ||||||||
qu63 | zondag 25 september 2011 @ 17:23 | |||||||
Hoi! Ik ben bezig om een script te maken wat RSS-feeds inleest in mijn database. Als voorbeeld heb ik even de Fok-feed genomen. Mijn database bestaat heel simpel uit 5 velden, Id, Title, Link, Descr en Date. Als Id gebruik ik de Id uit de link.
Nu wordt mijn database alleen een puinhoop omdat de RSS-feed de nieuwste items bovenaan zet en de Id's dus niet meer op elkaar aansluiten. Hier een dump van PHPMyAdmin:
Ik heb gezocht naar hoe ik alles achterstevoren in kan voeren en of ik kan sorteren na de update, beide geen succes Iemand anders tips? -edit- Tabel:
| ||||||||
GlowMouse | zondag 25 september 2011 @ 17:26 | |||||||
heb je voorbeeldcode en versienummers? Ik vind het een vreemd verhaal namelijk. | ||||||||
GlowMouse | zondag 25 september 2011 @ 17:28 | |||||||
@qu63: de ORDER BY in je index bepaalt de volgorde waarin je data weergeeft. De fysieke volgorde in je tabel is onbelangrijk. | ||||||||
qu63 | zondag 25 september 2011 @ 17:29 | |||||||
D'oh! | ||||||||
Pakspul | zondag 25 september 2011 @ 20:10 | |||||||
Ooit een cursus SQL gehad, anders pak eens een boek. | ||||||||
Sitethief | maandag 26 september 2011 @ 08:39 | |||||||
@Glowmouse, ja heb ik. Geef me even. | ||||||||
Sitethief | maandag 26 september 2011 @ 13:43 | |||||||
Conclusie na de hele code opnieuw geschreven te hebben, named parameters werken niet bij een insert, niet in de execute(), niet in BindParam/Bindvalue, niet bij PDO en niet bij mysqli Dan maar met placeholders werken... Wel vaag. | ||||||||
Intrepidity | maandag 26 september 2011 @ 14:33 | |||||||
Je weet dat je de parameters niet tussen aanhalingstekens moet zetten he? Dan worden ze als string behandeld. Dus niet INSERT [...] VALUES(':name') maar INSERT [...] VALUES(:name). | ||||||||
Sitethief | maandag 26 september 2011 @ 15:15 | |||||||
Intrepidity, daar heb je helemaal gelijk in. Nu loop ik tegen een ander probleem aan Dit is een stukje testcode, buiten de class om.
Dit levert me de volgende error code op;
| ||||||||
GlowMouse | maandag 26 september 2011 @ 15:20 | |||||||
v moet niet tussen quotes. En je kunt $v gebruiken ipv $data[$k]. | ||||||||
Sitethief | maandag 26 september 2011 @ 15:31 | |||||||
Jullie zijn geweldig, en dat ik dat dan niet gezien heb... Teveel naar mijn eigen code staren... | ||||||||
Sitethief | maandag 26 september 2011 @ 15:32 | |||||||
Mijn probleem was dat ik tot dan toe alleen strings in parameters heb gebruikt... En domweg niet bij nadacht dat dat niet overal zou werken. | ||||||||
dirkjo | dinsdag 27 september 2011 @ 11:46 | |||||||
Hmm ik zit even vast. Op m'n site staat een script dat over het algemeen vrij lang moet draaien, maar tijdens het draaien van dit script kan je de pagina sluiten. Nu is het zo dat wanneer je de pagina sluit terwijl het script draait, het script gewoon verder gaat. Dit wil ik juist niet Heb al wat gelezen, maar kom er niet echt uit. Iemand van jullie die weet hoe je dit kan oplossen? | ||||||||
Catbert | dinsdag 27 september 2011 @ 11:53 | |||||||
De enige manier is via JS als je de pagina sluit een andere pagina aanroepen die dan zorgt dat dat script stopt. Normaal gaat een webbrowser niet aan de server melden dat je 'em sluit. Maar als iemand JS uit heeft staan gaat dat gewoon niet werken. Een andere optie is je script aanpassen dat hij zichzelf in de browser moet refreshen iedere paar seconden, dus dat je het werk dat 'ie doet opdeelt in stukken, zodat het vanzelf stopt als 'ie niet refreshed. Dit kun je ook via Ajax doen. Maar dat werkt dus alleen als het 'werk' op te delen is. | ||||||||
mstx | dinsdag 27 september 2011 @ 11:57 | |||||||
Normaal wel, tenzij je browser echt crashed. Als je op stop/escape drukt of de pagina/tab sluit krijt de server een seintje dat je het laden annuleert. PHP stopt dan het script tenzij je ignore_user_abort(true); instelt. | ||||||||
dirkjo | dinsdag 27 september 2011 @ 12:01 | |||||||
PHP Settings:
Die staat dus uit | ||||||||
Catbert | dinsdag 27 september 2011 @ 12:02 | |||||||
Dat werkt alleen als tijdens het versturen de client de verbinding actief verbreekt. Het is geen 'seintje', de verbinding is gewoon 'weg'. Maar daar kun je dus om verschillende redenen (crash van browser) niet op vertrouwen. | ||||||||
Tijn | dinsdag 27 september 2011 @ 12:05 | |||||||
Wat maakt het uit dat het script doorgaat terwijl de user z'n browser al heeft gesloten? | ||||||||
Catbert | dinsdag 27 september 2011 @ 12:07 | |||||||
Als 10 gebruikers dat doen en er staan 10 scripts je DB zwaar te belasten om niks lijkt het me wel duidelijk dat dat onwenselijk is. | ||||||||
Tijn | dinsdag 27 september 2011 @ 12:09 | |||||||
Maar als die 10 mensen hun browser niet hadden gesloten, was de load precies hetzelfde geweest. Als die load het probleem is, moet je dat aanpakken. Maar of mensen nou wat met de output van je script doen of niet, is toch aan hun? | ||||||||
Catbert | dinsdag 27 september 2011 @ 12:12 | |||||||
Probleem is niet alleen het sluiten maar ook mensen die op F5 drukken bijvoorbeeld omdat het ze te lang duurt. Het is sowieso niet 'goed' om scripts te hebben die zo lang draaien. Een pagina moet gewoon snel 'klaar' zijn. Als je batch-achtige zaken hebt moet je dat in achtergrondprocessen oplossen. | ||||||||
Tijn | dinsdag 27 september 2011 @ 12:16 | |||||||
Daar ben ik het helemaal mee eens. Maar het probleem is dus niet dat je moet zorgen dat je script stopt zodra een user z'n browser sluit, maar überhaupt zorgen dat een user niet lang op een pagina hoeft te wachten. | ||||||||
Chandler | dinsdag 27 september 2011 @ 12:47 | |||||||
In dirkjo zijn geval ga ik er vanuit dat het maar 1 gebruiker is | ||||||||
Catbert | dinsdag 27 september 2011 @ 13:10 | |||||||
Dan snap ik het probleem niet zo. | ||||||||
dirkjo | dinsdag 27 september 2011 @ 14:03 | |||||||
Wat het uitmaakt? Nou op het moment dat die pagina aan een script aan het uitvoeren is kan je als bezoeker de site niet meer openen. Tenminste, voor zover ik gemerkt heb. Andere ip adressen kunnen het wel, maar hetzelfde ip adres kan dat dus niet meer. Op dit moment gaat het om een paar bezoeker/gebruikers, maar ik wil het wel fatsoenlijk hebben functioneren. Het is al aan het groeien namelijk | ||||||||
GlowMouse | dinsdag 27 september 2011 @ 14:04 | |||||||
Dat doet je browser, pak maar een andere browser op dezelfde pc. | ||||||||
Catbert | dinsdag 27 september 2011 @ 14:08 | |||||||
Dan moet je het sowieso anders in gaan richten. Je wil dan ook niet dat er meerdere van dat soort batches parallel gaan werken waarschijnlijk. Wat doet het script exact? | ||||||||
dirkjo | dinsdag 27 september 2011 @ 16:11 | |||||||
Script is constant bezig met de twitter API. Haalt gegevens op en verstuurt ze, het is geen zwaar script; maar het duurt wel lang (door de delay time die tussen elke 'job' zit). | ||||||||
dirkjo | dinsdag 27 september 2011 @ 16:14 | |||||||
Terwijl die bezig is in chrome laad firefox de website ook niet. Laat ik de website via een proxy doet die het wel (OS: ubuntu) Fout; is inderdaad de browser. Weet je dan toevallig ook waarom? | ||||||||
Catbert | dinsdag 27 september 2011 @ 16:22 | |||||||
Tja. Ik zou dat niet in een dergelijk script doen maar in een achtergrondproces. | ||||||||
GlowMouse | dinsdag 27 september 2011 @ 16:24 | |||||||
Of als het aan de user getoond wordt: asynchroon ophalen via kortlopende requests.nee, de browser zal de verbinding wellicht toch openhouden en max. 1 connectie per server aanmaken | ||||||||
dirkjo | dinsdag 27 september 2011 @ 16:35 | |||||||
Nog nooit mee gewerkt, toevallig linkje naar een mooi documentje erover? | ||||||||
Catbert | dinsdag 27 september 2011 @ 16:37 | |||||||
Tja. Met een fatsoenlijke webapplicatie gebaseerd op .Net of Java is dat een eitje, maarja Ik doe zelf eigenlijk niks meer met PHP. | ||||||||
GlowMouse | dinsdag 27 september 2011 @ 16:38 | |||||||
http://www.php.net/manual/en/features.commandline.php | ||||||||
dirkjo | dinsdag 27 september 2011 @ 16:45 | |||||||
PHP vind ik een erg toffe taal, maar ook benodigd voor de API (correct me if i'm wrong) | ||||||||
Catbert | dinsdag 27 september 2011 @ 16:49 | |||||||
Waarom zou je voor de twitter API PHP nodig hebben? | ||||||||
dirkjo | dinsdag 27 september 2011 @ 17:16 | |||||||
Omdat ik dat dacht Kennelijk niet dus | ||||||||
Sitethief | vrijdag 30 september 2011 @ 10:54 | |||||||
Als ik vanuit een child class de construct van de parent class wil uitvoeren, dan hoef ik de class toch alleen maar te instantiëren? Want het wil niet helemaal... Ik extend de databaseModel class, in de construct van die class wordt een connect uitgevoerd. In de child class gebruik ik database functies, die afhankelijk zijn van de een bestaande connectie. Als ik de child class instantieer zou hij toch de cconstruct en dus ook de connect van de parent class moeten uitvoeren? | ||||||||
U.N.K.L.E. | vrijdag 30 september 2011 @ 10:57 | |||||||
Ja, dat zou wel moeten gebeuren ja PHP versie? | ||||||||
Sitethief | vrijdag 30 september 2011 @ 10:58 | |||||||
5.3.0 Ik zit ff te kijken waar het mis gaat... | ||||||||
U.N.K.L.E. | vrijdag 30 september 2011 @ 10:59 | |||||||
kun je niet even iets echo'en in je construct om te kijken of ie er wel echt komt. En hij heet ook echt function __construct() ? | ||||||||
Sitethief | vrijdag 30 september 2011 @ 11:04 | |||||||
De construct werkte gewoon toen ik nog geen child class had... als ik lala echo in de construct zie ik dat ook gewoon, zelfde geld voor de connect functie | ||||||||
Sitethief | vrijdag 30 september 2011 @ 11:07 | |||||||
Ik heb het gevoel dat dit niet een inheritance probleem is, ik ga ff verder debuggen. | ||||||||
Catbert | vrijdag 30 september 2011 @ 11:09 | |||||||
In java is het zo dat je de constructor van een parent expliciet aan moet roepen als je dat wil, zou me niet verbazen als dat in PHP ook zo was maar zeker weten doe ik het niet. | ||||||||
Sitethief | vrijdag 30 september 2011 @ 11:14 | |||||||
Nope, want de child class erft alle methods, prpoerties etc van de parent. Dus ook de construct, je kunt hem zelfs overschrijven. | ||||||||
Sitethief | vrijdag 30 september 2011 @ 11:17 | |||||||
Oh stom, probleem gevonden. *schaam* *schaam* | ||||||||
U.N.K.L.E. | vrijdag 30 september 2011 @ 13:30 | |||||||
nou wat was het | ||||||||
Pakspul | vrijdag 30 september 2011 @ 13:35 | |||||||
Gok: In de construct -> parent::__construct(); | ||||||||
Light | vrijdag 30 september 2011 @ 18:00 | |||||||
In PHP moet je de constructor van de parent class expliciet zelf aanroepen. In Java hoeft dat niet. Als je daar in de constructor niet begint met een aanroep naar een andere constructor van dezelfde class (function overloading) of een expliciete aanroep naar een constructor van de parent class, dan wordt een implicite aanroep naar een parameterloze constructor van de parent class toegevoegd. | ||||||||
Catbert | vrijdag 30 september 2011 @ 18:07 | |||||||
Dat was ik idd vergeten, thanks | ||||||||
SecurityException | vrijdag 30 september 2011 @ 20:20 | |||||||
Ik heb momenteel het ongenoegen dat ik in de PHP code van een hobbyist PHP`er moet duiken. Het betreft een webwinkel met zo'n 50000 producten, met per product een aantal foto's. Een van de dingen die er moeten gebeuren is een flinke opruiming; zo zit er voor honderden MBs aan foto's in mappen van producten die niet (meer) bestaan, en zitten er andersom ook veel producten in de database die er eigenlijk niet meer thuishoren. De database-records zijn inmiddels weg. Rest mij nu nog om de onbruikbare bestanden te verwijderen. Ik heb een simpel scriptje gemaakt dat door de fotomap heen looped en controleert of het bestand nog bruikbaar is of niet. Nu betreft het natuurlijk een flink aantal bestanden en kreeg ik zojuist deze fout:
Spreekt voor zich, normaliter ga je dan even php.ini in en schroef je dat limiet iets omhoog. De webwinkel in kwestie draait echter op een shared hostingpakketje waar ik dus niet in de PHP configuratie kom. Ook het volgende bovenaan het script zetten mocht niet baten:
Dan geeft de error namelijk nog steeds '30' seconden aan, oftewel hij doet gewoon niks met de ini_set regels. Wie heeft er een oplossing? [ Bericht 0% gewijzigd door SecurityException op 30-09-2011 20:42:40 ] | ||||||||
The_Terminator | vrijdag 30 september 2011 @ 20:37 | |||||||
En dit: set_time_limit(60); ? Overigens: Je kunt dmv een phpinfo(); aanroep erachter komen of safe mode aan staat. | ||||||||
SecurityException | vrijdag 30 september 2011 @ 20:43 | |||||||
Had ik ook al geprobeerd. Eveneens helemaal niks. Safe mode staat uit. Het is wel een nieuwere versie van PHP die de hostingboer in kwestie draait en safe_mode zit daar zover ik weer sowieso niet meer in. | ||||||||
The_Terminator | vrijdag 30 september 2011 @ 20:47 | |||||||
Heb je het ook al met een .htaccess met de inhoud: php_value max_execution_time 60 geprobeerd? | ||||||||
SecurityException | vrijdag 30 september 2011 @ 20:53 | |||||||
Nu wel. Maar ook dat maakt geen verschil. (Dit soort dingen zijn de reden dat ik stiekem een hekel aan PHP heb, even geheel terzijde) | ||||||||
Catbert | vrijdag 30 september 2011 @ 20:58 | |||||||
Waarom run je 'em niet gewoon een paar keer? Je verwijdert iedere run een zwik foto's. | ||||||||
SecurityException | vrijdag 30 september 2011 @ 20:59 | |||||||
Zo ga ik het nu even inrichten ja. Want in één keer gaat niet lukken. Via Google kom je op tienduizenden pagina's met 'oplossingen' voor dit probleem, maar geen een werkt. | ||||||||
SecurityException | vrijdag 30 september 2011 @ 21:04 | |||||||
Zo, opgelost door er maar 5000 per keer te verwijderen, en dan op een knopje te drukken die de 5000 bestanden er na weer controleert. Lijkt me trouwens lullig als je een script hebt dat je niet op kunt delen, deze beperking. Een flinke datadump bijvoorbeeld... | ||||||||
Light | vrijdag 30 september 2011 @ 21:08 | |||||||
Welke PHP-versie is dat dan? | ||||||||
SecurityException | vrijdag 30 september 2011 @ 21:11 | |||||||
5.3.7 Maar ik lees net dat safe_mode pas in 5.4 helemaal d'r uit gesloopt gaat worden. Hij staat in dit geval dus nog gewoon uit. | ||||||||
wobbel | zondag 2 oktober 2011 @ 21:11 | |||||||
Hoe werkt cURL pcies? Heb nu het volgende:
| ||||||||
wobbel | zondag 2 oktober 2011 @ 21:15 | |||||||
Wat een ruk documentatie van cURL zeg... CURLOPT_RETURNTRANSFER => TRUE | ||||||||
GlowMouse | zondag 2 oktober 2011 @ 22:24 | |||||||
De default-settings zijn niet optimaal, maar het is wel heel flexibel allemaal. | ||||||||
Sitethief | zondag 2 oktober 2011 @ 22:36 | |||||||
Nope, de connect functie vullen met $variable ipv $this->variable *schaam* Maar dat krijg je dus als je twee wijzingen tegelijk uitvoerd, en een child class creeëren, en de waardes voor de connect uit de this halen (die ze weer ergens anders vandaan haalt) ipv met de class call meekrijgen. Dan zoek je de oorzaak op de verkeerde plek... | ||||||||
Sitethief | maandag 3 oktober 2011 @ 14:15 | |||||||
Ik kan zo een twee drie geen case bedenken waar het ophalen van twee tabellen in een SELECT handig zou zijn, ipv alle andere tabellen via JOINS op te halen...... weet iemand wel cases waarbij dit nuttig zou zijn? | ||||||||
GlowMouse | maandag 3 oktober 2011 @ 14:20 | |||||||
Wat bedoel je precies? | ||||||||
Sitethief | maandag 3 oktober 2011 @ 14:40 | |||||||
Wat is het nut van twee tabellen opvragen in een select, waarbij je verder de relatie niet opgeeft?? | ||||||||
Sitethief | maandag 3 oktober 2011 @ 14:42 | |||||||
-niet dus- [ Bericht 94% gewijzigd door Sitethief op 03-10-2011 14:52:31 (foutje) ] | ||||||||
GlowMouse | maandag 3 oktober 2011 @ 14:43 | |||||||
Je hoort n*m rijen terug te krijgen, met n rijen in products en m rijen in categories. | ||||||||
Sitethief | maandag 3 oktober 2011 @ 14:44 | |||||||
argh, ik kan hier geen posts editten.... | ||||||||
GlowMouse | maandag 3 oktober 2011 @ 14:45 | |||||||
Dan moet je je adblocker uitzetten. | ||||||||
Sitethief | maandag 3 oktober 2011 @ 14:45 | |||||||
Nee, is proxy op werk die bepaalde adds blokkeert... | ||||||||
GlowMouse | maandag 3 oktober 2011 @ 14:47 | |||||||
Als het een grote werkgever is, kun je mailen met Danny. | ||||||||
Sitethief | maandag 3 oktober 2011 @ 14:54 | |||||||
Nee, max 40 man, maar goed, lang level Tor! Anyway, wanneer zou je meerder tabellen op die manier willen ophalen? Anders laat ik die mogelijkheid gewoon uit mijn database class, want andere tabellen worden alleen dmv joins opgehaald. | ||||||||
GlowMouse | maandag 3 oktober 2011 @ 14:59 | |||||||
Wat jij doet is gelijk aan:
| ||||||||
Sitethief | maandag 3 oktober 2011 @ 15:03 | |||||||
Nee, dat is niet erg nuttig . | ||||||||
MrNiles | maandag 3 oktober 2011 @ 15:30 | |||||||
als ik een pagina van 1 site wil includen op een andere site...hoe kan ik dat doen?? waar ik een foutmelding op krijg: include file_get_contents fopen foutmelding: URL file-access is disabled in the server configuration phpinfo allow_url_fopen On On (maar toch dezelfde foutmelding) allow_url_include Off Off | ||||||||
GlowMouse | maandag 3 oktober 2011 @ 15:38 | |||||||
curl | ||||||||
MrNiles | maandag 3 oktober 2011 @ 16:04 | |||||||
voorbeelden leveren een blank scherm op, geen errors
wat gaat (doe ik) fout | ||||||||
GlowMouse | maandag 3 oktober 2011 @ 16:06 | |||||||
geen echo | ||||||||
MrNiles | maandag 3 oktober 2011 @ 16:10 | |||||||
doet niets echo $returned_content; | ||||||||
The_Terminator | maandag 3 oktober 2011 @ 17:02 | |||||||
Is cURL überhaupt wel op de server geinstalleerd? Zou je moeten kunnen zien via phpinfo(); | ||||||||
Pakspul | maandag 3 oktober 2011 @ 18:19 | |||||||
error_reporting(E_ALL); en var_dump($returned_content); | ||||||||
MrNiles | dinsdag 4 oktober 2011 @ 08:16 | |||||||
cURL support enabled bool(false) wat wil dat zeggen? | ||||||||
PiRANiA | dinsdag 4 oktober 2011 @ 08:19 | |||||||
http://nl3.php.net/curl_exec
| ||||||||
MrNiles | dinsdag 4 oktober 2011 @ 08:32 | |||||||
dat false een failure is snap ik maar wat failt er dan Is het script fout..of is het uitgeschakelt op de server? complete cURL phpinfo
| ||||||||
boem-dikkie | dinsdag 4 oktober 2011 @ 09:19 | |||||||
Weet iemand hier een gemakkelijke manier om op een website de foto's in te laden van een andere FTP directory? Ik heb uiteraard gegevens van beide FTP's. | ||||||||
GlowMouse | dinsdag 4 oktober 2011 @ 09:24 | |||||||
ga zelf debuggen: http://nl.php.net/curl_exec wat is 'in te laden'? | ||||||||
boem-dikkie | dinsdag 4 oktober 2011 @ 09:26 | |||||||
Ik wil op een website alle foto's die in een bepaalde directory staan in een slider gooien. Zodat mensen alleen maar nieuwe foto's in die dir hoeven te zetten en hij ze automatisch op de website plaatst. Dat is normaal niet zo lastig maar omdat het hier om een andere FTP server gaat dan waar de website die de foto's moet laten zien staat weet ik even niet hoe ik dit kan aanpakken. | ||||||||
Scorpie | dinsdag 4 oktober 2011 @ 09:27 | |||||||
Waarom via FTP? Gewoon embedden geen betere optie? | ||||||||
boem-dikkie | dinsdag 4 oktober 2011 @ 09:31 | |||||||
Ik bedoel niet per se via FTP, maar hoe te embedden? | ||||||||
MrNiles | dinsdag 4 oktober 2011 @ 09:46 | |||||||
sorry dat ik maar 0,1% van jou php kennis heb uit mijn antwoord zou toch wel kunnen blijken dat ik geen idee heb wel richting in te zoeken misschien wil ik iets wat technisch niet mogelijk is op de server... een schopje in de goede richting zou welkom zijn | ||||||||
GI | dinsdag 4 oktober 2011 @ 09:52 | |||||||
Hij heeft wel een punt. Een schopje in de juiste richting ismoeilijk omdat er 100 richtingen zijn. | ||||||||
GI | dinsdag 4 oktober 2011 @ 09:53 | |||||||
Aangezien je de bestandlijst eigenlijk alleen maar nodig hebt kom je met " http://php.net/manual/en/function.ftp-rawlist.php " een heel eind denk ik. http://www.php.net/manual/en/function.ftp-nlist.php is ook een leuke Google is your friend (Niet denigrerend bedoelt) " php get file list from ftp server " | ||||||||
GlowMouse | dinsdag 4 oktober 2011 @ 09:56 | |||||||
vooruit: curl heeft er een speciale functie voor. zijn de files alleen via ftp, of ook via http bereikbaar (kun je hotlinken)? | ||||||||
boem-dikkie | dinsdag 4 oktober 2011 @ 09:56 | |||||||
Haha, ik weet dat zoeken met Google makkelijk is. Het enige waar ik altijd over struikel is de termen die ik moet gebruiken om de juiste dingen te vinden. Vooral bij redelijk specifieke dingen. Thanks! Ik ga even kijken naar je suggestie! | ||||||||
GI | dinsdag 4 oktober 2011 @ 09:56 | |||||||
Ik bedoelde dat jij een punt had | ||||||||
boem-dikkie | dinsdag 4 oktober 2011 @ 09:56 | |||||||
Ja, kan wel hotlinken. | ||||||||
GI | dinsdag 4 oktober 2011 @ 09:57 | |||||||
Dan zou ik via de ftplist een lijst ophalen en die dan via http://anderdomein.com/plaatje.jpg in je weergave opnemen | ||||||||
boem-dikkie | dinsdag 4 oktober 2011 @ 09:59 | |||||||
Top. Ga ik vanavond meteen even proberen. | ||||||||
GlowMouse | dinsdag 4 oktober 2011 @ 10:24 | |||||||
En zorgen dat je niet bij elke page request die ftp-lijst ophaalt, dat is een beetje zonde voor de snelheid van je pagina. | ||||||||
MrNiles | dinsdag 4 oktober 2011 @ 10:51 | |||||||
heb nu een voorbeeldje gevonden wat ik werkend heb gekregen mbt tot curl maar een vraagje waar ik op internet geen antwoord kon vinden op test.domeinX.nl.test.php wil ik www.domeinX.nl/blabla.php laten zien dit gaat fout, bool(false) zelfde bestand op test.domeinX.nl.test.php alleen nu www.domeinY.nl/blabla.php die doet het prima waar kan dat aanliggen? mag je niet binnen het zelfde domein een curl uitvoeren? Niet dat dat nuttig is, maar het was meer een testje | ||||||||
Crazy Harry | dinsdag 4 oktober 2011 @ 11:24 | |||||||
Na een tijdje zelf aan te klooien, stel ik de vraag nu maar even hier. Het is ongetwijfeld een n00b-vraag waarbij ik iets over het hoofd zie. Ik lees html-pagina's in en zoek daarin naar het euro-teken. Deze kan verschillende verschijningsvormen hebben. Ik heb de volgende code:
De derde werkt prima. De 4e is waar ik momenteel een probleem mee heb. Uiteraard zijn de spaties tussen & en euro en ; in de daadwerkelijke code weggelaten. Echter maakte Fok! hier ook een euro-teken van, terwijl dat dus in de code-tag staat... Ik heb al allerlei combinaties met htmlentities, html_entity_decode en htmlspecialchars geprobeerd maar tot nu toe werkt het nog niet. Kan iemand mij hiermee helpen? Bij voorbaat dank. | ||||||||
GlowMouse | dinsdag 4 oktober 2011 @ 11:30 | |||||||
Wat een rare code, wat doen return null en break? | ||||||||
Light | dinsdag 4 oktober 2011 @ 11:39 | |||||||
Die code levert ook onverwachte resultaten op als de string begint met een euro-teken. | ||||||||
Crazy Harry | dinsdag 4 oktober 2011 @ 11:42 | |||||||
De code is ongetwijfeld verre van perfect (ik ben niet heel ervaren in PHP). Als het teken niet gevonden wordt, moet er niets (null) teruggeven worden, en mag hij niet verder gaan met de rest (break). Dat laatste is misschien niet zo heel slim bedenk ik me nu Aan de andere kant wordt er anders doorgegaan met de code terwijl het euro-teken al gevonden is. Maar omdat hij dan niet op een andere manier gevonden wordt, wordt alsnog null teruggegeven, vandaar de break. Maar dat kan inderdaad ongetwijfeld beter. omdat? | ||||||||
Tijn | dinsdag 4 oktober 2011 @ 11:43 | |||||||
De functie gaat sowieso niet door na een return. | ||||||||
Light | dinsdag 4 oktober 2011 @ 11:50 | |||||||
Omdat stripos() dan 0 teruggeeft. En als de string niet gevonden wordt, krijg je false terug. In jouw geval is de afhandeling voor beide gevallen hetzelfde, je returnt beide keren null. Dit werkt wel:
| ||||||||
Crazy Harry | dinsdag 4 oktober 2011 @ 12:03 | |||||||
Mja, dat verwachtte ik ook, alleen met testen deed ie dat eens wel, nu kan dat aan mijn test gelegen hebben. Nu overigens nog eens geprobeerd en gaat het wel goed... Ik heb het laten staan omdat het in principe niet uitmaakt of het er staat, er gaat niet meer door fout. Ik snap nog niet waarom het niet goed gaat, ik merk nu alleen maar met testen dat het inderdaad niet goed gaat. Met de voorgestelde code wordt het wel minder compact, maar goed, alles voor minder bugs Maar mij ging het dus eigenlijk om het stukje & euro ; die ik niet gevonden kan krijgen. | ||||||||
Tijn | dinsdag 4 oktober 2011 @ 12:05 | |||||||
Omdat er in jouw code geen onderscheid wordt gemaakt tussen 0 (het euro-teken staat aan het begin van de string) en false (het euro-teken is niet gevonden in de string). | ||||||||
Crazy Harry | dinsdag 4 oktober 2011 @ 12:07 | |||||||
De compacte if statement ziet 0 als false begrijp ik daaruit? Ik dacht namelijk dat het niets anders dan een compacte maar echte if-statement was, maar die werkt dus alleen met booleans dan? | ||||||||
Tijn | dinsdag 4 oktober 2011 @ 12:13 | |||||||
Het heeft niks met de compacte syntax te maken. Als je in je conditie van je if-statement geen operators gebruikt, is er geen verschil tussen 0, false, null of een lege string/array. | ||||||||
GlowMouse | dinsdag 4 oktober 2011 @ 12:14 | |||||||
Als je mooiere code wilt, kun je beter $euros = array('¤','€', ...); definiëren en met foreach werken. | ||||||||
Crazy Harry | dinsdag 4 oktober 2011 @ 12:17 | |||||||
Ah zo. Dat is een goeie om op te letten. Geldt dat voor andere talen ook dat je weet? Dat is inderdaad wel een idee. En nu het & euro ; stukje nog | ||||||||
Crazy Harry | dinsdag 4 oktober 2011 @ 12:35 | |||||||
Ahum.... Laat maar.... Blijkbaar was de gehele vreemde code het probleem. Ik heb mijn code tot het uiterste geminimaliseerd om & euro ; te vinden. En nu werkt ie wel...
Uiteraard weer zonder de spaties tussen $ en euro; | ||||||||
Chandler | dinsdag 4 oktober 2011 @ 12:41 | |||||||
Kleine vraag, ik wil een [ code ] omzetten naar een <pre> html statement. de code is iets als [ code ] if ($iets) { doedit(); } [/code] als ik deze met de volgende regel omzet krijg ik dubbele enters?
nu wil ik dus die enters gaan vervangen (van 2 dus 1 maken). en dacht dat wel op zo'n manier kon als dit
maar dat gaat helaas niet werken, krijg een dikke foutmelding van php Kan iemand mij vertellen hoe ik dit wel kan doen? | ||||||||
GlowMouse | dinsdag 4 oktober 2011 @ 12:59 | |||||||
Als dat een vraag is, is het antwoord nee. Wat dit met strtoupper te maken heeft zie ik ook niet. | ||||||||
Chandler | dinsdag 4 oktober 2011 @ 13:05 | |||||||
Dat was het voorbeeld, zoals op PHP.net staat! http://nl.php.net/preg_replace vandaar dat ik dacht dat ik dit ook kon aanpassen om het met str_replace oid te kunnen laten werken bv; (let op #ise, extra e modifier)
maar dit geeft dus een prachtige error | ||||||||
Cue_ | woensdag 5 oktober 2011 @ 09:58 | |||||||
Ik moet een scriptje schrijven die ervoor zorgt dat we kunnen loggen hoe vaak en welke users gebruik maken van bepaalde php pagina's. Zodat we oude troep kunnen wegdoen en de gebruikte kunnen verbeteren. Misschien dat jullie mij een richting kunnen geven waar ik naar dien te zoeken of dat jullie hier al een goede site voor weten? | ||||||||
boem-dikkie | woensdag 5 oktober 2011 @ 10:19 | |||||||
Google Analytics? | ||||||||
Cue_ | woensdag 5 oktober 2011 @ 10:28 | |||||||
Dat is echt voor internetwebsites toch? Gaat om logging van pagina's die op een server staan en intern worden gebruikt. | ||||||||
remi1986 | woensdag 5 oktober 2011 @ 11:14 | |||||||
Kan het mishebben, maar geloof dat GA wel gaat werken. Vond dit nog klik, misschien is dat nog wat. En anders zelf een PHP scriptje schrijven die stats bijhoudt EDIT: Vond dit stukje over GA en intranet http://www.google.com/sup(...)cb263740621905&hl=en | ||||||||
Cue_ | woensdag 5 oktober 2011 @ 11:51 | |||||||
Denk dat GA niet gaat werken aangezien het bij ons niet meer is dan http://(naampje)/pagina.php Zelf een script schrijven is niet erg. Want het is maar voor even dat het moet gebeuren. Waar ik zelf dit tegen kwam.. maar nog niet kunnen uitproberen
| ||||||||
GlowMouse | woensdag 5 oktober 2011 @ 12:47 | |||||||
Voor alleen loggen heb je aan de logfiles van je webserver al genoeg. | ||||||||
Sitethief | woensdag 5 oktober 2011 @ 13:45 | |||||||
Wat is beter, meerdere queries via een class met PDO preparen die allemaal via dezelfde connectie lopen, met als nadeel dat er meerdere queries in deze class aanwezig zijn. Of de class zo gebruiken dat iedere class aanroep gelijkstaat aan een (prepared) query, met als nadeel dat je meerdere keren deze class moet aanroepen. Het gaat hier vooral om veiligheid en snelheidswinst. | ||||||||
Catbert | woensdag 5 oktober 2011 @ 13:56 | |||||||
Is niet te zeggen zonder detailinfo te hebben over het gebruik. Daarnaast is dit al snel een gevalletje "premature optimization". | ||||||||
Pakspul | woensdag 5 oktober 2011 @ 14:05 | |||||||
Kijk hier eens naar: http://www.talkincode.com(...)reg_replace-400.html Volgens mij lijkt dit meeste op wat jij zoekt:
Kan zo even niet testen, maar als je het nog niet lukt laat het even weten. | ||||||||
boem-dikkie | woensdag 5 oktober 2011 @ 14:11 | |||||||
Het wordt wat moeilijker ben ik bang. De bestanden die ik moet hebben staan op een NAS waarmee je moet inloggen met een wachtwoord en gebruikersnaam. | ||||||||
Sitethief | woensdag 5 oktober 2011 @ 14:42 | |||||||
@Catbert, daar ben ik me van bewust, alleen deze class gaat queries uitvoeren over databases met miljoenen records, een beetje optimalisatie is daarbij op zijn plaats lijkt me. Maar aangezien het hier gaat over max 5 queries per actie kiezen we er nu voor om een query per instantie te hanteren. Eventueel overschrijven /deconstructen we oude instanties ivm geheugengebruik. | ||||||||
boem-dikkie | woensdag 5 oktober 2011 @ 17:15 | |||||||
Weet iemand waarom ik een witte pagina krijg zodra ik submappen ga gebruiken op rij 4? Als ik daar photo/map invul dan krijg ik een witte pagina. Als ik er -la voor zet krijg ik wel de inhoud te zien maar dan wordt het geoutput als ftp_rawlist en dat wil ik niet. [ Bericht 99% gewijzigd door boem-dikkie op 05-10-2011 17:22:30 ] | ||||||||
GlowMouse | woensdag 5 oktober 2011 @ 17:38 | |||||||
debuggen, wat geeft var_dump($contents), error_reporting, etc. | ||||||||
Light | woensdag 5 oktober 2011 @ 17:48 | |||||||
Misschien ./photo/map gebruiken? Verder zou ik op regel 5 foreach ipv for gebruiken. Dan hoef je geen aannames te doen over de keys van de array. | ||||||||
boem-dikkie | woensdag 5 oktober 2011 @ 17:58 | |||||||
Ik krijg met een var_dump dit terug: array(0) { } Error reports geeft niks. | ||||||||
GlowMouse | woensdag 5 oktober 2011 @ 17:59 | |||||||
dan geeft je ftp-server gewoon niks terug een sniffer kan helpen bij zoiets | ||||||||
boem-dikkie | woensdag 5 oktober 2011 @ 18:04 | |||||||
Hij struikelt over spaties. Heb het al opgelost. | ||||||||
Light | woensdag 5 oktober 2011 @ 18:04 | |||||||
Weet je zeker dat de map bestaat? (Wat gebeurt er als je een map wilt uitlezen die niet bestaat?) | ||||||||
Light | woensdag 5 oktober 2011 @ 18:06 | |||||||
Uit de PHP docs van ftp_nlist:
| ||||||||
boem-dikkie | woensdag 5 oktober 2011 @ 18:07 | |||||||
Jep, had het ook al gevonden. | ||||||||
Chandler | woensdag 5 oktober 2011 @ 18:18 | |||||||
LOL, ik ben er al achter waarom ik extra enters heb!!! komt door de enters die ik met nl2br toevoeg aan de <pre> inhoudt! deze moet ik dus verwijderen oplossing (werkend)
| ||||||||
GlowMouse | woensdag 5 oktober 2011 @ 18:24 | |||||||
inhoudt | ||||||||
Chandler | woensdag 5 oktober 2011 @ 18:28 | |||||||
taal purist verder even een andere vraag. Is het sneller om preg_replace met array's te laten werken of te lopen (for/while/foreach)? kon hier geen artikeltje over vinden en ben zelf te beroerd om daar een leuke test case voor te schrijven aangezien ik wel verwachte dat hier wel over geschreven zou zijn. | ||||||||
GlowMouse | woensdag 5 oktober 2011 @ 18:29 | |||||||
| ||||||||
cablegunmaster | donderdag 6 oktober 2011 @ 04:25 | |||||||
Simpel programma, met veel uitgebreide voorbeelden voor pdf files tcpdf . Free license Iets wat ik al een tijdje zocht een die geen gebruik maakt van pdflib. (Licentie kosten ) . Welke je minstens 1000 eu bespaart per licentie. Handige van het programma, Simpel html / css opmaak met vervolgens een pdf file als resultaat . Voorbeelden: http://www.tcpdf.org/examples.php [ Bericht 7% gewijzigd door cablegunmaster op 06-10-2011 04:30:17 ] | ||||||||
dirkjo | donderdag 6 oktober 2011 @ 15:22 | |||||||
Waarschijnlijk zie ik iets snoeihard over het hoofd, maar ik krijg constant een error op deze lijn:
| ||||||||
GlowMouse | donderdag 6 oktober 2011 @ 15:25 | |||||||
Echo je query, en let op SQL injection. | ||||||||
Luchtkoker | donderdag 6 oktober 2011 @ 15:33 | |||||||
Het is ook niet echt heel fraai om al die variabelen zo in je string quotes te houden, liever:
| ||||||||
GlowMouse | donderdag 6 oktober 2011 @ 15:37 | |||||||
Of sprintf gebruiken. | ||||||||
dirkjo | donderdag 6 oktober 2011 @ 15:40 | |||||||
Op dit moment krijgt elke variabel een mysql_remove_special_string(), zijn er nog meer die ik er aan zou moeten toevoegen? Ga het even aanpassen en proberen. | ||||||||
GlowMouse | donderdag 6 oktober 2011 @ 15:43 | |||||||
remove_special? het koekje al niet en ik mis de echo van de query. | ||||||||
dirkjo | donderdag 6 oktober 2011 @ 15:47 | |||||||
Sorry, real_escape_string.. Geen flauw idee hoe ik aan remove special kom Een momentje; even iets anders afmaken | ||||||||
dirkjo | donderdag 6 oktober 2011 @ 15:53 | |||||||
Probleem gevonden, was echt iets heel doms Vraag me ook niet hoe het gekomen is //Maar als ik je dan toch aan het lastig vallen ben GM; Heb je nog meer tips wat betreft beveiliging? Heb nu overal (ook de koekjes ondertussen) de real_escape_string staan, maar dat is dan ook het enige [ Bericht 16% gewijzigd door dirkjo op 06-10-2011 16:00:24 ] | ||||||||
GlowMouse | donderdag 6 oktober 2011 @ 15:58 | |||||||
Een error, dat is dan duidelijk. | ||||||||
GlowMouse | donderdag 6 oktober 2011 @ 16:06 | |||||||
http://www.php.net/manual/en/ heeft een heel hoofdstuk over beveiliging. | ||||||||
dirkjo | donderdag 6 oktober 2011 @ 16:48 | |||||||
Dan ga ik die even lezen | ||||||||
boem-dikkie | zondag 9 oktober 2011 @ 23:40 | |||||||
Oké. Nog even over mijn vorige vraag. Ik heb het voor elkaar gekregen om met ftp_nlist op mijn eigen server de bestandsnamen van een andere FTP server op te halen.. Ik moet deze foto's nu laten zien. Nou zou je zeggen dat dat wel wil met gewoon <img> maar niet dus. Als ik ze link naar http://zijnserver.com/foto/bla.png werkt het niet, zodra ik er FTP voor zet werkt het wel. Het pad is dus juist, alleen er gebeurd iets waardoor ik op die andere site via dat pad de foto's niet kan vinden. Die andere website is een NAS waar via dynDNS een naam wordt gegeven aan het IPadres. Iemand (die mijn warrige verhaal snapt) een idee hoe ik dit kan oplossen? | ||||||||
Thomass | zondag 9 oktober 2011 @ 23:53 | |||||||
Als het werkt wanneer je er ftp voorzet, wat is dan je probleem? | ||||||||
boem-dikkie | zondag 9 oktober 2011 @ 23:56 | |||||||
Het probleem is dat als mensen dan naar die pagina gaan ze moeten inloggen. Ik wil dat ze gewoon de foto's kunnen zien. | ||||||||
Thomass | maandag 10 oktober 2011 @ 00:05 | |||||||
Ok, maar ftp://pad/ is iets _compleet_ anders dan http://pad/. Het een heeft absoluut niets met het ander te maken en dus kun je niet zomaar ftp in http veranderen en verwachten dat het werkt. | ||||||||
Tijn | maandag 10 oktober 2011 @ 01:00 | |||||||
Dan moet je zorgen voor een webserver die de foto's kan weergeven. | ||||||||
GlowMouse | maandag 10 oktober 2011 @ 01:01 | |||||||
of je downloadt ze met php naar je eigen server | ||||||||
GI | maandag 10 oktober 2011 @ 07:02 | |||||||
Heb je zelf beheer over die server waar je het met FTP vandaan moet halen ? Is er een http:// link die naar dezelfde map als jouw FTP map verwijst ? en anders is het inderdaad kwestie van de map leeg te trekken met PHP, de files lokaal op te slaan en vervolgens ook nog eens te zorgen dat als ze daar weggehaald worden, dat ze bij jou ook verdwijnen. | ||||||||
Scorpie | maandag 10 oktober 2011 @ 07:10 | |||||||
Das nogal logisch, want FTP en HTTP zijn 2 compleet andere dingen. Je FTP is beveiligd met een username en pass. Trek gewoon via FTP die directory leeg, sla de foto`s lokaal op en toon ze dan, of kijk naar de mogelijkheid om een webserver op je NAS te draaien. | ||||||||
boem-dikkie | maandag 10 oktober 2011 @ 09:19 | |||||||
Dat snap ik wel. Ik snap alleen niet waarom ik via HTTP niet bij die files kan en via FTP wel. Diegene die die FTP server gebruikt heeft een of ander programma'tje draaien die alle namen van bestanden veranderd in een random naam van cijfers en letters. | ||||||||
Scorpie | maandag 10 oktober 2011 @ 09:23 | |||||||
Draait er uberhaupt een HTTP server op die NAS? | ||||||||
boem-dikkie | maandag 10 oktober 2011 @ 09:26 | |||||||
Ja want hij heeft ook twee andere websites draaien op die NAS. | ||||||||
GI | maandag 10 oktober 2011 @ 09:33 | |||||||
Dan moet je er dus alleen voor zorgen dat je erachter komt welk http adres koppelt aan de ftp folder | ||||||||
boem-dikkie | maandag 10 oktober 2011 @ 09:36 | |||||||
Wellicht handig. Zal even kijken. | ||||||||
GI | maandag 10 oktober 2011 @ 09:37 | |||||||
Om even een cliche door de bocht te gooien : "Denk in oplossingen, niet in problemen". Ze staat op de server, de server heeft een webserver. 1+1=2. | ||||||||
boem-dikkie | maandag 10 oktober 2011 @ 09:38 | |||||||
True. | ||||||||
Tijn | maandag 10 oktober 2011 @ 09:40 | |||||||
Omdat de document root van de webserver blijkbaar niet hetzelfde is als de homefolder van de FTP-user. | ||||||||
boem-dikkie | dinsdag 11 oktober 2011 @ 11:32 | |||||||
Ik heb het uitgevogeld. De map /photo/ waar de foto's in staan die ik wil bereiken is beheerd door een programma Photo Station op de NAS die als webserver dient. Hierdoor is het dus onmogelijk om zonder het daadwerkelijke Photo Station die foto's op te halen en neer te plempen op een andere website.. Weten jullie of er misschien een functie is waarmee ik gemakkelijk in kan loggen op die FTP (nas), elke 12 uur check op updates en dan alles automatisch kopieer naar de FTP waar ook de website staat die de foto's moet laten zien? | ||||||||
The_Terminator | dinsdag 11 oktober 2011 @ 11:47 | |||||||
Je zou de standaard FTP functies van PHP kunnen gebruiken en het script dmv een cronjob elke 12 uur laten uitvoeren. Zie ook: http://www.php.net/manual/en/ref.ftp.php | ||||||||
Sitethief | woensdag 12 oktober 2011 @ 11:17 | |||||||
xdebug+netbeans | ||||||||
ursel | woensdag 12 oktober 2011 @ 13:51 | |||||||
Kan misschien aan mij liggen, maar kan het nergens vinden. Mijn Zend_Soap_Client spuugt als die klaar is met de functie getLastRequest er netjes een xml uit. Alles gaat eigenlijk ook gewoon goed. Alleen de gehele XML wordt getoont op 1 regel, ipv netjes met linebreaks etc. Iemand ideeën?
| ||||||||
remi1986 | donderdag 13 oktober 2011 @ 14:58 | |||||||
Ik ben bezig met een klein artikel waardering systeem. Op een pagina kan een gebruiker aangeven of die pagina 'nuttig' was (dit is ja/nee, wat in de database wordt neergezet als 1/0). Nu wil ik vanuit een soort van beheer systeem dit uitlezen. De structuur is heel simpel: De tabel met artikelen
De tabel met feedback
Ik heb met een simpele query met een left join de tabellen aan elkaar, alleen wil ik het percentage weten welke op "ja" (=1) hebben geklikt
Dit is in het kort de query zoals ik die nu heb (ik heb nog wat aliassen toegevoegd, maar is niet relevant). De query werkt zover. Van ieder artikel, krijg ik daarnaast het aantal waarderingen. Nu wil ik weten hoeveel van die waarderingen dus 1 zijn. Dit krijg ik niet voor elkaar. Dacht zelf in de richting van
Wie kan me helpen? Kan het eventueel wel in PHP doen, maar het is mooier en scheelt code als het direct met MySQL kan. | ||||||||
GlowMouse | donderdag 13 oktober 2011 @ 15:02 | |||||||
Denormaliseer en stop het aantal in de tabel article. Anders zoek je:
| ||||||||
Scorpie | donderdag 13 oktober 2011 @ 15:02 | |||||||
http://forums.mysql.com/read.php?52,134684,134741#msg-134741 Zoiets ? | ||||||||
remi1986 | donderdag 13 oktober 2011 @ 15:16 | |||||||
Super, dit is precies wat ik zocht! | ||||||||
Chandler | vrijdag 14 oktober 2011 @ 09:59 | |||||||
Vraag aan de experts! Ik wil een site aanpassen qua 'wachtwoorden'. Nu gebruikt de site standaard MD5 (die met een simpele rainbowtable kan gehacked worden). Nu wil ik deze aanpassen en omzetten naar sha oid. Alleen is het niet mogelijk om het originele wachtwoord te achterhalen, hoe zou ik deze user base toch beter kunnen beschermen. Zelf zit ik te denken aan dit. VAN DB -> MD5(PASS) -> SHA1(MD5 - SALT - MD5) -> NAAR DB Idee of zit ik verkeerd te denken? | ||||||||
mstx | vrijdag 14 oktober 2011 @ 10:04 | |||||||
Ik had hetzelfde probleem en heb het ook ongeveer zo opgelost, maar dan met sha512. Ik weet niet of er ook nadelen zitten aan 2x hashen, behalve dan dat het ietsje langer duurt. | ||||||||
GlowMouse | vrijdag 14 oktober 2011 @ 10:07 | |||||||
Zorg dat de salt per user uniek is, één keer de MD5 in de SHA is wel voldoende. | ||||||||
Chandler | vrijdag 14 oktober 2011 @ 10:08 | |||||||
Hoe bedoel je dat de salt per user uniek moet zijn? doel je dan op gebruik van USER ID, Registratie datum of andere gegevens? | ||||||||
Ouqz | vrijdag 14 oktober 2011 @ 10:15 | |||||||
Beter kan je als iemand inlogt dit proces uitvoeren. Dus als de gegevens van het inlog formulier kloppen, en de user zijn password is nog niet aangepast naar de nieuwe hash, gewoon met een tijdelijke column in de user tabel die default op false staat checken, dan een update doen op de password column. Dus waar je normaal gesproken een sessie aanmaakt bij de login, ook nog even het wachtwoord updaten in de db als dit nog niet is gedaan. Een minder gebruikersvriendelijke, maar wel snellere optie, is om gewoon iedereen zijn wachtwoord te resetten en een mail sturen dat ze hun wachtwoord opnieuw moeten instellen of zelf een nieuw random wachtwoord aan iedere gebruiker sturen. | ||||||||
Koepad | vrijdag 14 oktober 2011 @ 10:16 | |||||||
Op tweakers.net hebben ze op het moment een overgangsperiode. Ze zijn overgegaan naar een nieuwe manier van hashen. De eerste keer dat je inlogt wordt dat nog geconfirmeerd met de oude hash en wordt direct een nieuwe hash aangemaakt en de oude verwijderd (neem ik aan). Maar je kunt idd ook dubbel hashen, lijkt me weinig mis mee. En voor de salt kun je idd vanalles gebruiken wat je opslaat over een user: gebruikersnaam, registratiedatum, desnoods met een random-string generator voor iedere user een speciale saltstring maken en opslaan in je users tabel. | ||||||||
Catbert | vrijdag 14 oktober 2011 @ 10:17 | |||||||
Zowel SHA als MD5 zijn niet veilig. Rainbow tables is niet je grootste probleem. Je grootste probleem is dat zelfs SHA te snel is. GPU bruteforcen is tegenwoordig de manier waarop deze passwords gekraakt worden, niet d.m.v. rainbow tables want die zijn te verslaan met een simpele salt. Ter info: http://chargen.matasano.c(...)to-know-about-s.html Conclusie: je moet bcrypt gebruiken, en geen MD5 of SHA. http://stackoverflow.com/(...)ing-passwords-in-php Dat laatste heb je natuurlijk geen hol aan. Als ze je userdatabase hebben, hebben ze ook je salts. Kun je net zo goed de username als een van de salts gebruiken. | ||||||||
Ouqz | vrijdag 14 oktober 2011 @ 10:24 | |||||||
bcrypt is overkill. Een sterke dynamische salt voor elke user met sha(512) is voldoende voor de meesten. Zodra je hele database kan worden ingekeken ben je een stuk sterker met een dynamisch stuk salt. | ||||||||
Tijn | vrijdag 14 oktober 2011 @ 10:26 | |||||||
Je zou ook met een standaardoplossing zoals deze kunnen werken. Hoef je het niet zelf te knutselen. | ||||||||
Koepad | vrijdag 14 oktober 2011 @ 10:28 | |||||||
Dan hebben ze een stukje van je salt. Ze weten niet hoe vaak jij die nog achterstevoren, binnenstebuiten, base64 en md5't. En wat je nog meer aan gegevens gebruikt. En bovendien het hele idee van een salt is dat het onmogelijk wordt om hashes te vergelijken. Daarvoor boeit het nieteens of de aanvaller weet hoe de salt eruit ziet. Als ze maar uniek zijn. | ||||||||
Catbert | vrijdag 14 oktober 2011 @ 10:29 | |||||||
Ik zeg niet dat je niet moet salten. Ik bedoel alleen dat een oplossing puur op MD5 en/of SHA een beetje te wensen overlaat omdat tegenwoordig passwords gewoon gebruteforced worden. Natuurlijk is bcrypt voor een simpele site misschien wat overkill, maar bcrypt is tenminste redelijk future-proof. | ||||||||
Tijn | vrijdag 14 oktober 2011 @ 10:32 | |||||||
Is het idee van salten niet dat bruteforcen weinig zin heeft en dat daarom MD5 of SHA1 opeens helemaal niet zo brak meer zijn? | ||||||||
ursel | vrijdag 14 oktober 2011 @ 10:34 | |||||||
Je bescherm je toch wel tegen bruteforcen neem ik aan? Na X aantal mislukte pogingen binnen Y periode is gewoon geen toegang. | ||||||||
Tijn | vrijdag 14 oktober 2011 @ 10:36 | |||||||
Het gaat er voornamelijk om wat je doet als je hele usertabel uitlekt. | ||||||||
ursel | vrijdag 14 oktober 2011 @ 10:39 | |||||||
Zie daarvoor weer de reactie van Koepad
| ||||||||
Koepad | vrijdag 14 oktober 2011 @ 10:39 | |||||||
Nee, bruteforcen kun je altijd doen. salten doe je zodat als iemand je database te pakken krijgt, hij niet simpelweg de hashes kan vergelijken met een andere database met hashes die hij gemaakt heeft met zijn "check wie jou geblokkeerd heeft op msn"-website. | ||||||||
Catbert | vrijdag 14 oktober 2011 @ 10:54 | |||||||
Als ze je database hebben hebben ze waarschijnlijk ook je code. Dus ze weten waarmee je salt en hoe vaak je hashed. Je wil dus zorgen dat ze niet 100 miloen hashes per seconde kunnen vergelijken op een hedendaagse GPU. Daarom 'moet' je m.i. tegenwoordig overgaan op blowfish-gebaseerde cyphers. | ||||||||
Tijn | vrijdag 14 oktober 2011 @ 10:58 | |||||||
Nou, dat lijkt me niet. 9/10 keer dat er een database uitlekt komt dat doordat de applicatie een lek had en er bv een SQL injectie kon worden uitgevoerd. Code lekt voor zover ik weet lang zo vaak niet uit als een database. Niet dat het verder slecht is om erbij stil te staan wat er gebeurt als je code wel uitlekt natuurlijk. Security by obscurity enzo, dat wil je niet. Maar de statement "als iemand je database heeft, heeft 'ie waarschijnlijk ook je code" lijkt me wat overdreven. | ||||||||
remi1986 | vrijdag 14 oktober 2011 @ 11:01 | |||||||
Het wil deze week niet echt lukken met de queries.. Ik heb hier een database waar datums en tijden worden opgeslagen in een varchar veld (niet mijn werk!) 99% van de datums en tijden staan er in als YYYYMMDDHHMMSS Die 1% staat er in als DDMMYY. Nu wil ik om het gelijk te trekken, die DDMMYY velden omzetten naar YYYYMMDDHHMMSS Nu had ik daarvoor een query gemaakt, maar dat gaat dus niet goed.
Heeft iemand een idee? | ||||||||
remi1986 | vrijdag 14 oktober 2011 @ 11:03 | |||||||
EDIT: ow wat ik hier doe is het ff in een tijdelijke kolom opslaan, zodat ik niet de huidige gegevens overschrijf (veld file_exp) | ||||||||
Catbert | vrijdag 14 oktober 2011 @ 11:04 | |||||||
Daar moet je wel vanuit gaan. Dat is het hele punt van vooruit denken over beveiliging. M'n glazen bol ligt bij de lommerd dus als je me ff vertelt wat er misgaat? | ||||||||
Catbert | vrijdag 14 oktober 2011 @ 11:07 | |||||||
Gokje:
Ik ga er van uit dat file_exp een date(time) veld is en geen string veld. | ||||||||
remi1986 | vrijdag 14 oktober 2011 @ 11:09 | |||||||
Nee, omdat het type gelijk moet blijven. De waarden in file_expiration_date worden straks aangepast. Zoals ik aangaf is file_exp nu een tijdelijke kolom. Het is niet mijn structuur, maar 'moet' het aanpassen | ||||||||
Catbert | vrijdag 14 oktober 2011 @ 11:10 | |||||||
In dat geval:
| ||||||||
remi1986 | vrijdag 14 oktober 2011 @ 11:14 | |||||||
pffff het kan soms inderdaad zo makkelijk zijn. I.p.v. met die IF te knoeien, kan je ook gewoon een WHERE gebruiken. Mijn dank is weer groot KOFFIEEEE !!!! | ||||||||
Catbert | vrijdag 14 oktober 2011 @ 11:22 | |||||||
You're welcome | ||||||||
Chandler | vrijdag 14 oktober 2011 @ 11:54 | |||||||
Leuke discussie over salts Ik heb er nu voor gekozen om even een extra veld in mijn tabel te zetten ivm wachtwoorden, na eerste keer inlog wordt het huidige wachtwoord vervangen met het nieuwe wachtwoord en zet ik het nieuwe veld op 1 Tnx mensen! | ||||||||
dirkjo | zondag 16 oktober 2011 @ 14:25 | |||||||
Ik zou zo 123 niet weten waar ik dit probleem moet plaatsen, dus doe ik het maar in m'n oude vertrouwde topic Iemand hier beetje ervaring met de mod_rewrite? Ik krijg bij de volgende rewrite rule een 500 error:
Terwijl die bij deze nergens over zeurt:
Ik vind alleen die 2e optie niet mooi staan, dus wil het graag op de eerste manier doen. Iemand een oplossing hiervoor? | ||||||||
PiRANiA | zondag 16 oktober 2011 @ 14:29 | |||||||
De redirect match álles (.*), dus ook index.php?page=blabla . Zo blijf je oneindig redirecten. | ||||||||
Light | zondag 16 oktober 2011 @ 14:33 | |||||||
Heb je dit geprobeerd?
Da's dus niet helemaal hetzelfde als je eerste regel, ik heb een $ toegevoegd. | ||||||||
PiRANiA | zondag 16 oktober 2011 @ 14:35 | |||||||
Waarom zou dat verschil maken? | ||||||||
PiRANiA | zondag 16 oktober 2011 @ 14:38 | |||||||
| ||||||||
Light | zondag 16 oktober 2011 @ 14:53 | |||||||
Omdat er dan precies 1 mogelijke match is. Maar ik heb het niet getest. | ||||||||
dirkjo | zondag 16 oktober 2011 @ 15:29 | |||||||
Geprobeerd, baat niet. Even proberen //EDIT: You're my hero! Na het toevoegen van dat stukje code werkt het | ||||||||
dirkjo | zondag 16 oktober 2011 @ 15:39 | |||||||
--nevermind, opgelost-- [ Bericht 48% gewijzigd door dirkjo op 16-10-2011 15:43:55 (probleem opgelost) ] | ||||||||
schwa78 | zondag 16 oktober 2011 @ 20:11 | |||||||
Ik heb sinds een paar dagen een raar probleem op een aantal van mijn websites. Wanneer een pagina opgevraagd wordt wordt de verbinding door de server gereset. Dit gebeurt alleen bij een POST oproep van de pagina. Via GET is de pagina wel op te vragen en werkt alles naar behoren. Het rare is dat niet alle POST oproepen of pagina's op de server hier last van hebben. Slechts enkele pagina's. Voorbeeld: Inloggen op http://www.fanfic.nl/ roept http://www.fanfic.nl/process.php aan en geeft een aanmelding via POST en niet via GET. Hernoemen/verplaatsen van de pagina lost niets op. Wie weet in welke richting ik het moet zoeken? Heb echt geen flauw idee. | ||||||||
Scorpie | zondag 16 oktober 2011 @ 20:13 | |||||||
Wat zeggen de log files? Draai je apache? windows of Linux? Welke paketten? Ec etc. | ||||||||
schwa78 | zondag 16 oktober 2011 @ 20:25 | |||||||
Alles draait op een LAMP opstelling. PHP versie 5.1.6. Logfiles zal ik zo eens opzoeken. Volgens mij is de PHP versie onlangs geupgrade. Zou het daar aan kunnen liggen? En wat zou dan het probleem kunnen veroorzaken? | ||||||||
cablegunmaster | zondag 16 oktober 2011 @ 22:50 | |||||||
Waar ik dan zelf op zou testen is
[ Bericht 3% gewijzigd door cablegunmaster op 16-10-2011 23:00:41 ] | ||||||||
GlowMouse | zondag 16 oktober 2011 @ 23:16 | |||||||
http://nl3.php.net/var_dump
| ||||||||
Tijn | maandag 17 oktober 2011 @ 00:28 | |||||||
Euh, weet je dat zeker? PHP 5.1.6 is uit 2006. Behoorlijk antiek dus. | ||||||||
schwa78 | maandag 17 oktober 2011 @ 09:17 | |||||||
Mijn host smsde vanochtend dat het weer zou moeten werken. Ik zal met hem overleggen wat er precies misging. Ook zal ik vragen welke versie van PHP er nu draait en kijken welke versie dat moet worden. xcu.nl bestaat idd niet meer Dank voor de hulp! | ||||||||
Darkomen | dinsdag 18 oktober 2011 @ 09:55 | |||||||
Niet helemaal het juist topic maar ik hoop hier mn antwoord te vinden. Ik zit vast aan een 64bit windows server.... met iis en heb dus nu een probleem met Cronjobs. Task Scheduler is onvoldoende Ik heb verschillende php files die op verschillende momenten moeten worden aangeroepen. Zcron en Pycron heb ik geprobeerd, Pycron doet helemaal niks. Zcron krijg ik schijnbaar niet juist ingesteld om de juiste php file te openen. Hebben jullie een goede vervanger voor windows?? | ||||||||
GlowMouse | dinsdag 18 oktober 2011 @ 09:57 | |||||||
Wat is er mis met Task Scheduler? | ||||||||
Darkomen | dinsdag 18 oktober 2011 @ 10:10 | |||||||
Die kan ik niet uitgebreid instellen, zoals alleen ma-vrij om 19.00 | ||||||||
GI | dinsdag 18 oktober 2011 @ 10:12 | |||||||
Is het dan geen oplossing om in plaats van scheduler te veranderen een weekly task op maandag 19:00 en eentje op vrijdag 19:00 uit te voeren ? | ||||||||
mschol | dinsdag 18 oktober 2011 @ 10:13 | |||||||
je kan gewoon weekly selecteren en dan de dagen aanvinken? | ||||||||
GlowMouse | dinsdag 18 oktober 2011 @ 10:14 | |||||||
Precies, en als je iets grafisch niet kunt dan kan het met de command-line tool at wel. | ||||||||
Darkomen | dinsdag 18 oktober 2011 @ 10:14 | |||||||
Excuus, ik ben dus gewoon blind Thanks | ||||||||
hello_moto1992 | dinsdag 18 oktober 2011 @ 11:59 | |||||||
Hallo, Zou iemand mij misschien op weg kunnen helpen met het volgende probleem: Ik zou graag een script willen maken waarin php automatisch bepaalde dingen herkent. Bijv: "19:00 boodschappen doen" Dat er dan twee variabelen aangemaakt worden, namelijk "19:00" en "boodschappen doen". Dit moet dan weer naar een database geschreven worden. | ||||||||
Tijn | dinsdag 18 oktober 2011 @ 12:06 | |||||||
Bedoel je gewoon zoiets? Hij splitst nu op de eerste spatie en zet alles voor die spatie in de variabele $tijd en alles na de eerste spatie in de variabele $activiteit. | ||||||||
PiRANiA | dinsdag 18 oktober 2011 @ 12:10 | |||||||
Is het allemaal dezelfde vorm? "19:00 boodschappen doen" "23:00 gaan slapen" "08:00 ontbijten" Of is het soms ook anders? "middageten 13:00" "morgen de hond uitlaten" | ||||||||
hello_moto1992 | dinsdag 18 oktober 2011 @ 12:19 | |||||||
Ja precies, het is de bedoeling dat het wat ingewikkelder wordt. Bijvoorbeeld "19-11-2011 verjaardag", "ontbijten 8:00 - 9:00" | ||||||||
PiRANiA | dinsdag 18 oktober 2011 @ 12:21 | |||||||
Dat gaat veel werk kosten . Open er even een nieuw topic over, want dit is echt een apart onderwerp . | ||||||||
The_Terminator | dinsdag 18 oktober 2011 @ 12:23 | |||||||
Valt wel mee volgensmij. Je hoeft alleen maar te detecteren waar de tijd en/of datum staat en dan kun je er vanuit gaan dat de rest van de string de 'actie' bevat. | ||||||||
PiRANiA | dinsdag 18 oktober 2011 @ 12:27 | |||||||
Dat wordt waarschijnlijk een hoop regels (regexes) schrijven voor verschillende tijdformaten . | ||||||||
Tijn | dinsdag 18 oktober 2011 @ 12:45 | |||||||
Uit de voorbeelden die nu worden genoemd, blijkt al dat er niet alleen sprake kan zijn van een actie op een bepaalde datum/tijd, maar ook van een datum/tijd tot een datum/tijd. Dat maakt gelijk een heleboel verschillende varianten mogelijk en die moeten allemaal beschreven worden, plus dat die beschrijvingen elkaar niet in de weg mogen zitten natuurlijk. Waarom is de input eigenlijk zo vrij, hello_moto1992? Is het niet beter om in de interface van je applicatie wat gerichter naar de datum/tijd te vragen? | ||||||||
GlowMouse | dinsdag 18 oktober 2011 @ 12:47 | |||||||
Hoe ga je dat uit een tekst halen? "Vanavond om 18.00 gaan we eten. Daarna gaan we gezellig programmeren om 20.00 in PHP". | ||||||||
Luchtkoker | dinsdag 18 oktober 2011 @ 13:03 | |||||||
Vraag het aan het Google calendar team, die willen je vast wel wat code sturen. | ||||||||
Pakspul | dinsdag 18 oktober 2011 @ 13:30 | |||||||
Ik zou beginnen met een stuk code die tekst kan begrijpen, dus die ziet of iets een tijd of datum is. Dan zou je er tegen kunnen zeggen:
Moet opleveren - Eten om 17:00 - Programmeer sessie om 20:00 - Tandarts bezoek om 10:15 op 21-10-2011 Het zou echt super vet zijn, maar je moet echt donders goed rekening houden met mogelijkheden van volgorde, want een persoon kan ook zeggen: om 17:00 eten. Het is in ieder geval wel een leuk iets om over na te denken, want je krijgt dat een systeem dat begrijpt wat je zegt, of kan interpreteren wat je bedoelt. | ||||||||
PiRANiA | dinsdag 18 oktober 2011 @ 13:31 | |||||||
Hier verder: [PHP] Script om data te herkennen . | ||||||||
Darkomen | dinsdag 18 oktober 2011 @ 15:32 | |||||||
Zijn we weer, de server begint aardig te draaien dus ik ben scripts aan het ombouwen van ~php 4.3 naar 5.3 Dat levert dus wat problemen op met bijvoorbeeld de shorttags, en mssqlconnect Aangezien dat dus niet meer ondersteunt word, dit is vervangen met SQLSRV Oude situatie levert zeg 100 regels op volgens mssql_num_rows mssql_query($query); mssql_num_rows($result); maar sqlsrv_num_rows geeft niks? sqlsrv_query( $conn, $query ); sqlsrv_num_rows($result) Terwijl er wel regels terugkomen uit de query? | ||||||||
GlowMouse | dinsdag 18 oktober 2011 @ 15:35 | |||||||
$result = sqlsrv_query( $conn, $query );? | ||||||||
Darkomen | dinsdag 18 oktober 2011 @ 15:43 | |||||||
Had idd beter ff de hele code kunnen plaatsen: $query = "select id from table where column = 'waarde' "; Oude situatie levert zeg 100 regels op volgens mssql_num_rows $result = mssql_query($query); $count = mssql_num_rows($result); maar sqlsrv_num_rows geeft niks? $result = sqlsrv_query( $conn, $query ); $count = sqlsrv_num_rows($result) Terwijl er wel regels terugkomen uit de query? | ||||||||
GlowMouse | dinsdag 18 oktober 2011 @ 15:45 | |||||||
var_dump($result,$count). | ||||||||
Darkomen | dinsdag 18 oktober 2011 @ 15:48 | |||||||
resource(9) of type (SQL Server Statement) bool(false) | ||||||||
Darkomen | dinsdag 18 oktober 2011 @ 15:51 | |||||||
Hm, maar eens even wat meer inlezen, je moet dus een keyset aangeven. $params = array(); $options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET ); $result = sqlsrv_query( $conn, $query, $params, $options ); | ||||||||
Darkomen | woensdag 19 oktober 2011 @ 09:23 | |||||||
Hm.... volgende bijna zelfde probleem, het enige verschil wat ik zie is de query. De db heeft records staan, als ik de zelfde query uitvoer in sql server management krijg ik ze namelijk wel te zien.
Vardump: resource(9) of type (SQL Server Statement) Query: use testdb select TicketNr from dbo.odsp_Tickets WHERE Status!='Resolved' AND Status!='Closed' AND Status!='Pending' AND (Afdeling='TestDepp1' OR Afdeling='Testdepp2' ) $totalTickets: -1 | ||||||||
GI | woensdag 19 oktober 2011 @ 09:37 | |||||||
Ik gok zomaar dat het de use db in het statement is, maar dat kan ook totaal de verkeerde kant opzijn. | ||||||||
Darkomen | woensdag 19 oktober 2011 @ 09:44 | |||||||
Je hebt gelijk, dat was hem! Ik kan weer een stukje verder. | ||||||||
Chandler | woensdag 19 oktober 2011 @ 12:28 | |||||||
Ik heb een vraag, stel ik heb een x aantal tabellen! deze wil ik gebruiken om statistieken uit te halen. dus bv tabellen foto's, vrienden, blogs, reacties, logins, downloads, etc etc etc ieder tabel heeft een veld user_id. Nu wil ik zo snel mogelijk uit al deze tabellen een lijst halen van hoeveel 'rows' deze tabellen per gebruiker bevatten.. Hoe doe ik dat? ik dacht zo:
maar helaas, dit geeft voor de eerste gebruiker een heel grote waarde, en verder zowat alleen maar 0 op een paar 'gebruikers' na die een paar 'verdwaalde' items hebben qua counts? Iemand een idee? [ Bericht 79% gewijzigd door Chandler op 19-10-2011 14:42:52 ] | ||||||||
GlowMouse | woensdag 19 oktober 2011 @ 12:30 | |||||||
Gebruik subqueries, of beter, denormaliseer. | ||||||||
Chandler | woensdag 19 oktober 2011 @ 12:35 | |||||||
wat bedoel je met denormaliseer? En subqueries is natuurlijk mogelijk, maar deze wil ik eigenlijk gaan gebruiken voor een view... | ||||||||
GI | woensdag 19 oktober 2011 @ 12:36 | |||||||
Volgens mij ben je een stuk liever voor je database als je de totalen per tabel gaat bepalen en daarna bij het weergeven dingen bij elkaar gaat plakken, Dit is nodeloos zwaar imho. | ||||||||
Chandler | woensdag 19 oktober 2011 @ 12:37 | |||||||
Klopt, dat ben ik met je eens, maar zou het kunnen met een view? als tabellen niet veranderen veranderen waarden toch ook niet? ik denk maar ff hoor | ||||||||
GlowMouse | woensdag 19 oktober 2011 @ 12:46 | |||||||
Per gebruiker deze aantallen bijhouden zodat je ze zonder count kunt ophalen. dat verschil merk je niet | ||||||||
Chandler | woensdag 19 oktober 2011 @ 12:48 | |||||||
Wat merk je niet? meerdere queries of 1? | ||||||||
baaart | woensdag 19 oktober 2011 @ 13:45 | |||||||
@Chandler, weet niet hoe vaak je dit overzicht gaat aanroepen, maar als het vaak is kan je natuurlijk ook een caching tabel maken. Laat je iedere nacht vullen (bijvoorbeeld) met een optie om de tabel te verversen met de huidige waardes. Simpel scriptje, scheelt een hoop. | ||||||||
Chandler | woensdag 19 oktober 2011 @ 14:42 | |||||||
Ik heb mijn idee nu aangepast en een extra tabel/class aangemaakt voor counters. Met deze simpele class kan ik nu een tabel gebruiken voor extra statistieken (counters) voor foto's, blogs, vrienden, etc etc etc | ||||||||
mcf | woensdag 19 oktober 2011 @ 15:52 | |||||||
Hallo iedereen, ik zit nu al zolang te coden dat ik er even niet meer uit kom, een beetje een mindblock. Ik zit nu met het volgende probleem en vroeg me af of jullie kunnen helpen. Ik wil deze array graag in een $_SESSION[''] krijgen maar snap nu niet zo snel hoe ik dit ga doen.
Bij voorbaat dank! | ||||||||
Tijn | woensdag 19 oktober 2011 @ 15:55 | |||||||
Wat bedoel je precies? Deze array in de $_SESSION-array zetten kan gewoon zo:
Is dat wat je wil? | ||||||||
mcf | woensdag 19 oktober 2011 @ 15:56 | |||||||
Oh nice, nooit geweten. Zo leer je elke dag weer wat Bedankt, dit is inderdaad wat ik wil/ | ||||||||
Tijn | woensdag 19 oktober 2011 @ 16:35 | |||||||
Euh, ok | ||||||||
Scorpie | woensdag 19 oktober 2011 @ 16:37 | |||||||
Lol, | ||||||||
boem-dikkie | woensdag 19 oktober 2011 @ 19:36 | |||||||
Hmm. Over een .htaccess rewrite. Ik heb een pagina: overzicht_fotos_categorie.php?id=Fashion En ik wil dat hij gewoon werkt als /Fashion/ Ik heb dit in mijn .htaccess RewriteEngine On RewriteBase / RewriteRule ^([a-z]+)?$ overzicht_fotos_categorie.php?id=$1[L] Toen ik ?id=9 gebruikte en bij RewriteRule 0-9 had staan deed hij het wel. | ||||||||
GlowMouse | woensdag 19 oktober 2011 @ 19:38 | |||||||
F is een hoofdletter en valt dus niet in a-z. | ||||||||
boem-dikkie | woensdag 19 oktober 2011 @ 19:46 | |||||||
Ik heb het nu zo en dit werkt wel: RewriteRule ^([a-z]+)?$ overzicht_fotos_categorie.php?id=$1 [NC] [NC] gebruikt zodat de RewriteRule niet case-sensitive is. Alleen pakt hij namen met een spatie nu niet. | ||||||||
GlowMouse | woensdag 19 oktober 2011 @ 19:50 | |||||||
Je kon ook a-z vervangen door A-Za-z. Je snapt nu ook hoe je spaties kunt matchen. | ||||||||
Intrepidity | woensdag 19 oktober 2011 @ 20:56 | |||||||
Werkt de 'i' modifier in de regex zelf eigenlijk ook in .htaccess files of heb je daar per definitie de [NC] voor nodig? | ||||||||
GlowMouse | woensdag 19 oktober 2011 @ 20:58 | |||||||
Apache gebruikt wel PCRE, maar ik zie al geen mogelijkheid om pattern modifiers in te vullen. | ||||||||
cablegunmaster | vrijdag 21 oktober 2011 @ 10:35 | |||||||
Ik probeerde alle duplicaten te verwijderen en alleen de eigenlijke update over te houden uit 2 verschillende .sql bestanden.
5 min verder... toch een oplossing
Bijna goed bovenstaande query is handig om een tabel op te schonen als je dubbele inhoud hebt . op 1 veld geselecteerd. Wat ik nodig had waren alleen de nieuwe gegevens :
edit: Volgende keer maar kladblaadje pakken [ Bericht 34% gewijzigd door cablegunmaster op 21-10-2011 16:15:25 ] | ||||||||
YazooW | vrijdag 21 oktober 2011 @ 18:27 | |||||||
Een database kopiëren/opslaan van een andere site gaat natuurlijk niet zomaar, wel kan je op de meeste sites zelf door logisch na te denken erachter komen wat de datastructuur is. Als je kan benoemen op welke positie bepaalde informatie staat en dit opslaat kun je zeer dicht bij een kopie van de daadwerkelijke database komen. Ik heb het hierbij trouwens puur en alleen over content die publiekelijk toegankelijk is. Ik ben op zoek naar meer informatie hierover, ben zelf wel een aantal dingen tegen gekomen maar ik kom er nog niet uit. Hoop hier eigenlijk ook mensen te vinden die datgene wat ik wil al een keer eerder succesvol heeft gedaan en mij kan vertellen hoe hij/zij dat dan heeft gedaan. Om een simpel voorbeeld te geven van wat ik wil: Stel je deze site voor: - 1 pagina die een lijst met hyperlinks bevat: appels, peren, bananen, kiwi's etc - En dan meerdere pagina's met daarop informatie over de hyperlink waarop je geklikt hebt. Als voorbeeld een pagina "Appels". Pagina appels bevat de volgende inhoud:
Elke "fruitpagina" zit hetzelfde in elkaar, ze bevatten de velden water, vezel, energie en suikers, alleen de waarde verschilt steeds per pagina/fruit. Nu wil ik deze data automatisch opslaan, dus dat ik niet 1 voor 1 die links moet gaan open klikken etc etc. Vervolgens alles opslaan in een tekstbestandje of automatisch naar mijn eigen database schrijven? Ik ken de mogelijkheden simpelweg niet. Ik hoop dat er hier iemand is die mij misschien een beetje op weg kan helpen. Voorbeeld hierboven is trouwens wel super simpel, site waarvan ik de data wil gaan opslaan bevat duizenden verschillende pagina's, vandaar dat ik het dus geautomatiseerd wil gaan doen. Content op die site is trouwens vrij te gebruiken, is geen materiaal waarop copyright rust o.i.d. | ||||||||
mstx | vrijdag 21 oktober 2011 @ 18:37 | |||||||
- Pagina ophalen met file_get_contents() (of CURL oid, of direct met de DOM parser) - Inhoud parsen met een DOM parser. - Via het DOM de <a> tags selecteren die je wilt hebben - Door de <a> tags loopen en elke href ophalen met file_get_contents() - Alle pagina's weer parsen met de DOM parser - Via het DOM de tabel uitlezen en de data opslaan En bij duizenden linkjes zou ik het niet allemaal meteen achter elkaar doen maar er een interval tussen zetten. | ||||||||
YazooW | vrijdag 21 oktober 2011 @ 18:51 | |||||||
Dus om het even te vertalen naar mijn voorbeeld. file_get_contents laat ik los op de hyperlinks pagina waarna ik vervolgens door middel van DOM de data uit die pagina trek die ik nodig heb. En dan vervolgens kan ik met de data die ik heb verkregen uit mijn hyperlinkspagina het proces weer herhalen maar dan in een loop omdat het meerdere pagina's zijn. Thanks voor je hulp! Dat DOM ziet er wel super relaxt uit. Kwam zelf niet verder dan macro tooltjes Oplossing in PHP is natuurlijk veel makkelijker want de data die ik nu zo ophaal kan ik natuurlijk ook weer makkelijk rechtsstreeks schrijven naar mijn eigen database in plaats van te kutten met tekst bestandjes. | ||||||||
YazooW | zondag 23 oktober 2011 @ 15:32 | |||||||
Zit een beetje te testen met die simplehtmldom, PHP is niet helemaal mijn ding maar begin het toch aardig te snappen. Nu wil ik de inhoud van alle dd tags extracten, de site bevat 11 dd's, en het script hieronder returnt ook 11 dd's, alleen returnt hij ze alle 11 als "Array". Wat doe ik hier fout?
| ||||||||
The_Terminator | zondag 23 oktober 2011 @ 16:07 | |||||||
Wat staat er in de array's? Je kunt ze printen dmv print_r.
| ||||||||
YazooW | zondag 23 oktober 2011 @ 16:11 | |||||||
Snap eerlijk gezegd niet waarom het script opeens 11x Array tevoorschijn tovert. Met jou stukje code is dit nu mijn output: Terwijl de inhoud van de DD's bestaat uit: Naam, Leeftijd, Lengte, etc etc. | ||||||||
The_Terminator | zondag 23 oktober 2011 @ 16:14 | |||||||
De array's zijn leeg... Doe eens:
En post de output. | ||||||||
YazooW | zondag 23 oktober 2011 @ 16:21 | |||||||
In Chrome laadt hij een tijdje waarna Chrome vervolgens een fout geeft, geen output dus. In Firefox: Dit is slechts een klein gedeelte van de gehele output, hij blijft maar doorgaan met dit soort code op het scherm te toveren totdat er zoveel op staat dat mijn Firefox crasht. | ||||||||
The_Terminator | zondag 23 oktober 2011 @ 16:37 | |||||||
Heb je de code die ik heb gepost onder de foreach geplaatst? Dat is namelijk niet de bedoeling Maargoed, probeer dit eens (als vervanging voor jouw code, niet eronder plaatsen...):
| ||||||||
YazooW | zondag 23 oktober 2011 @ 16:43 | |||||||
Nee had die foreach vervangen door jou stukje code, niet eronder geplaatst. Maar nu met die "innertext" werkt die wel! Hartelijk bedankt! Nu ga ik kijken hoe ik het script zo kan krijgen dat hij dit proces 100x ofzo achter elkaar herhaalt op 100 verschillende pagina's, pagina's hebben allemaal dezelfde indeling. | ||||||||
YazooW | zondag 23 oktober 2011 @ 17:43 | |||||||
Ik zit alweer vast Ik heb nu de volgende 2 stukjes code: getPlayerUrl.php , trekt het pad van de url uit een tabel en returnt vervolgens een lijst met urlpaths onder elkaar.
getPlayerInfo.php , extract alle info van een speler en zet dit netjes onder elkaar.
Dmv het eerste stukje code haal ik dus de url op, het tweede stukje code moet dan weer verder gaan werken op de url die geextract is uit code 1. Dus stel dat mijn output bij de eerste code 20 urls bevat dan moet het tweede stukje code dus 20x uitgevoerd worden op die 20 verschillende url's. Hoe ga ik dit aanpakken? | ||||||||
#ANONIEM | zondag 23 oktober 2011 @ 18:00 | |||||||
Kun je niet gewoon je eerste resultaten in een array zetten? Daar kun je dan met gemak doorheen lopen. | ||||||||
wobbel | zondag 23 oktober 2011 @ 20:08 | |||||||
Ik zit ook vast ik ben echt een held met reguliere expressies Ik wil [faq=3362] vervangen door <a href="#3362">FAQ #3362</a> | ||||||||
GlowMouse | zondag 23 oktober 2011 @ 20:14 | |||||||
zoiets? preg_replace("/\\[faq=(\\d)+\\]/", '<a href="#\\1">FAQ #\\1</a>', $str); | ||||||||
Pakspul | zondag 23 oktober 2011 @ 20:24 | |||||||
Er bestaat zoiets in regex als looking forward waarmee je in één patroon het volgende kan doen. [faq=123] => <a href="#123">FAQ# 123</a> [faq=123]Titel van een bepaalde FAQ[/faq] => <a href="#123">Titel van een bepaalde FAQ</a> Ik zat even te zoeken naar een mooi voorbeeld, maar het is zeker de moeite waard om eens naar te kijken. | ||||||||
wobbel | zondag 23 oktober 2011 @ 22:54 | |||||||
@GloeiMuis...ty @Pakspul Zou ik waarderen, iets meer info erbij zou ook niet verkeerd zijn | ||||||||
KomtTijd... | maandag 24 oktober 2011 @ 01:11 | |||||||
Kan dit? de AND? De bedoeling is dat ik alle namen krijg van users uit groep 1 belongs:
| ||||||||
GlowMouse | maandag 24 oktober 2011 @ 01:38 | |||||||
Dat kan, maar waarom een LEFT JOIN? | ||||||||
KomtTijd... | maandag 24 oktober 2011 @ 02:14 | |||||||
Honestly? Omdat ik totaal niet nagedacht heb over watvoor join het handigst is. -edit- kan hier natuurlijk een inner join gebruiken, ik hoef geen leeg record terug als een naam ontbreekt (wat theoretisch zelfs onmogelijk is maar je weet maar nooit). Maar aan de query verandert dat verder niets toch? [ Bericht 31% gewijzigd door KomtTijd... op 24-10-2011 02:21:25 ] | ||||||||
boem-dikkie | maandag 24 oktober 2011 @ 08:12 | |||||||
Waarom gebruik je eigenlijk twee tabellen hiervoor? | ||||||||
Intrepidity | maandag 24 oktober 2011 @ 08:36 | |||||||
Waarschijnlijk omdat zijn properties variabel zijn. Hoe wil je dit formuleren in 1 tabel? Het ruikt hier overigens naar NoSQL, maar ik neem gemakshalve maar even aan dat dat geen optie is. | ||||||||
Pakspul | maandag 24 oktober 2011 @ 08:51 | |||||||
Niet in één preg_replace, maar ik denk dat je de oplossing niet verkeerd zal vinden. | ||||||||
Pakspul | maandag 24 oktober 2011 @ 08:53 | |||||||
Per groep een tabel aanmaken en deze dynamisch met code gaan beinvloeden. Ik moest een keer zo'n oplossing maken aangezien meneer heilig overtuigd was van dat dat de beste mogelijkheid was. Wat is hij later op zijn bek gegaan | ||||||||
GlowMouse | maandag 24 oktober 2011 @ 10:50 | |||||||
Bij een inner join maakt het niet uit of je iets in de ON of in de WHERE-clause zet. | ||||||||
KomtTijd... | maandag 24 oktober 2011 @ 11:43 | |||||||
Hoe zie je dat voor je Niet dat het uberhaupt mogelijk is aangezien ik dan een module die ik zelf niet onderhoud moet gaan hacken met alle nadelen van dien, maar ik zou niet zo snel zien hoe je dit in één tabel zou kunnen combineren. Tenzij je alle informatie van de gebruikers in de users-tabel gaat frotten met bitfields enzo. Ik heb keuze uit MySQL of MySQL dus nee idd, maar NoSQL is toch juist voor als je heul geen moeilijke joins enzo nodig hebt? En ja de properties kunnen vanalles zijn, van namen en adressen tot de avatar en signature. Kijk da's dan wel weer handig. | ||||||||
Dizer | maandag 24 oktober 2011 @ 11:52 | |||||||
Hoi ik heb een vraagje, kan iemand mij helpen met het plaatsen van deze code in php?
Alvast bedankt! |