_Flash_ | donderdag 15 maart 2012 @ 12:04 | |||||
![]() 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 | ||||||
_Flash_ | donderdag 15 maart 2012 @ 12:25 | |||||
Ok. Zal ik eens een vraag neerzetten. Stel je hebt een tabel met klanten en een tabel met adressen. Eén klant heeft drie adressen. Nu ben je een zoekfunctie aan het schrijven die ook in de adressen moet gaan zoeken naar bepaalde keywords. Dit wil je in één query doen, waar dan alle unieke klanten uit komen rollen waarbij de keywords voorkomen in minimaal 1 van de doorzoekbare velden van de klant en/of bijbehorende adressen. Nu kan je via 3 left joins de drie adressen aan een klant breien en dan in de WHERE via LIKE gaan testen. Dit gaat zwaar ten koste van de performance. Hoe zou je dit het beste kunnen oplossen? Idee van mijzelf: plemp alle adresinformatie in één nieuwe kolom (tekstarea) in de klantentabel en zoek hierbinnen. Scheelt je JOINS en is relatief eenvoudig, bij een update van adresinformatie moet je even dit veld ook updaten. Wie weet er wat slimmers? | ||||||
GlowMouse | donderdag 15 maart 2012 @ 12:29 | |||||
Die twee opties zijn vergelijkbaar. | ||||||
_Flash_ | donderdag 15 maart 2012 @ 12:39 | |||||
Qua performance zijn ze niet vergelijkbaar. Als je ze aan elkaar joint en dan gebruik maakt van LIKE om in die 20 a 30 extra velden te zoeken, dan kost dat zo een seconde of 20 tot 60. (Stel 1000 klanten en dus ook 3000 adressen). Hou je de adresinformatie ook in een hulp-kolom in de klantentabel bij, dan werkt de zoekfunctie bijna instantaneous. Ik vraag me af of er via mysql nog wat te bedenken is dat snel en toch eleganter dan het genoemde alternatief werkt. Ik bedenk me, dat is niet echt een PHP-vraag, maar goed :-) | ||||||
GI | donderdag 15 maart 2012 @ 13:38 | |||||
Waarom hou je in de adressentabel niet een key (of meerdere keys) bij om te kijken bij welke klant het hoort ? | ||||||
_Flash_ | donderdag 15 maart 2012 @ 13:50 | |||||
Zit de vertraging in dit geval niet in het toepassen van LIKE op zoveel velden? NB, voor iedere key en ieder extra veld ontstaat weer een ritsje extra LIKES: WHERE (klant.naam LIKE %key1% OR adres1.plaats LIKE %key1% OR...) AND (klant.naam LIKE %key2% OR adres1.plaats LIKE %key2% OR...) | ||||||
#ANONIEM | donderdag 15 maart 2012 @ 14:25 | |||||
@_FLASH_ gebruik PostgrSQL ipv MysQL en doe een FULLTEXT search ipv like. FULLTEXT search is vele malen snellen dan een LIKE. | ||||||
ursel | donderdag 15 maart 2012 @ 14:35 | |||||
Ook voor MySQL zijn daar oplossingen voor. Hoef je niet direct andere DB neer te zetten. | ||||||
GlowMouse | donderdag 15 maart 2012 @ 14:42 | |||||
Dan doe je wat verkeerd, je zult de index voor de join wel vergeten zijn. Maar de resultaten zijn ook anders. | ||||||
_Flash_ | donderdag 15 maart 2012 @ 14:57 | |||||
Ongetwijfeld ![]() De id's van beide tabellen zijn primary keys. In de join zeg ik iets als SELECT ... FROM klant LEFT JOIN adres AS adres1 ON klant.id=adres.id_klant WHERE ... Bedoel je met "index voor de join" iets dat ik in de tabellen zelf moet instellen of iets in de query? | ||||||
GlowMouse | donderdag 15 maart 2012 @ 15:29 | |||||
Post de EXPLAIN van je query met joins en like eens. | ||||||
_Flash_ | donderdag 15 maart 2012 @ 16:09 | |||||
Oei daar vraag je me wat. Op de live site is het deel van de adressen er nu hardhandig uitgecomment om de performance weer acceptabel te krijgen. Zal vanavond even echo'en en copypasten. Edit; toch even handmatig de PHP code hersteld die de query genereert, ter lering en/of vermaak: $zoektermen = explode(" ", $zoekstring); foreach ($zoektermen AS $zoekterm) { $where_deel .= " AND (".$system_prefix."klant.klantnaam LIKE '%".$zoekterm."%' OR ".$system_prefix."klant.klantcode LIKE '%".$zoekterm."%' OR ad1.adres1 LIKE '%".$zoekterm."%' OR ad1.adres2 LIKE '%".$zoekterm."%' OR ad2.adres1 LIKE '%".$zoekterm."%' OR ad2.adres2 LIKE '%".$zoekterm."%' OR ad2.plaats LIKE '%".$zoekterm."%' OR ad1.telefoon LIKE '%".$zoekterm."%' OR ad2.telefoon LIKE '%".$zoekterm."%')"; } $sql_query = mysql_query("SELECT COUNT(".$system_prefix."klant.id) as aantal FROM (".$system_prefix."klant LEFT JOIN ".$system_prefix."klant_adres AS ad1 ON (".$system_prefix."klant.id=ad1.klant AND ad1.soort=1)) LEFT JOIN ".$system_prefix."klant_adres AS ad2 ON (".$system_prefix."klant.id=ad2.klant AND ad2.soort=2) WHERE ".$system_prefix."klant.status='ok'".$where_deel.";"); | ||||||
_Flash_ | donderdag 15 maart 2012 @ 16:19 | |||||
De explain: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE prefix_klant ALL NULL NULL NULL NULL 1451 Using where 1 SIMPLE ad1 ALL NULL NULL NULL NULL 2902 1 SIMPLE ad2 ALL NULL NULL NULL NULL 2902 Using where | ||||||
GlowMouse | donderdag 15 maart 2012 @ 16:29 | |||||
In ad1 en ad2 mist de index op klant. Ik zou hier een index maken op (klant,soort) (1 index op 2 velden). | ||||||
The_Terminator | donderdag 15 maart 2012 @ 19:07 | |||||
Wat is eigenlijk het voordeel van 1 index op 2 velden en in welke situaties is dat het beste te benutten? Ik heb dat nooit goed gesnapt... | ||||||
GlowMouse | donderdag 15 maart 2012 @ 20:25 | |||||
zie het als een gesorteerde lijst; een telefoonboek is één index op (plaats,naam). Dat werkt makkelijker dan wanneer er alleen op plaats of alleen op naam is gesorteerd, maar alleen als je een naam zoekt in een specifieke plaats (of sorteert op plaats,naam; of bij één plaats wilt sorteren op naam). | ||||||
kucher | donderdag 15 maart 2012 @ 20:33 | |||||
Een index alleen heeft niet heul veul nut tenzij je graag GROUP BY gebruikt op die 2 kolommen (zover ik weet), maar een (primary key/foreign key/unique) constraint met 2 (of meer) kolommen wel. | ||||||
GlowMouse | donderdag 15 maart 2012 @ 20:34 | |||||
helaas, geen koelkast | ||||||
RenRen- | donderdag 15 maart 2012 @ 20:45 | |||||
Is goed! Ik ga proberen de rest werkend te maken, en als ik dan nog tijd heb kom ik hier nog wel mijn neus om de hoek steken. Heel erg bedankt ![]() Oh, dit ga ik proberen, bedankt! ![]() | ||||||
Muffle | zondag 18 maart 2012 @ 18:36 | |||||
Wie zou mij kunnen helpen met PHP code? Het betreft algoritmes invoeren om punten te berekenen, maar hiervoor moeten variabelen worden gemaakt enzovoort. | ||||||
#ANONIEM | zondag 18 maart 2012 @ 19:58 | |||||
Zelf beginnen en als je er niet uitkomt horen we het wel. | ||||||
_Flash_ | zondag 18 maart 2012 @ 21:22 | |||||
Hoe ver ben je en waar gaat het fout? | ||||||
Mirel | zondag 18 maart 2012 @ 23:48 | |||||
Ik moet een contactformulier maken op een website die ik sinds kort beheer (www.sbscoaching.nl). Ik kom er net achter dat ik niks kan invullen in de tekstboxen. Die doen het gewoon in een testbestand. Hoe komt dit? Ik weet niet echt waar ik naar moet zoeken.. De site heeft zover ik weet nergens een contactformulier staan. Ik zie in de backend wel een mapje genaamd phpmailer, maar ik weet niet waar die voor is. | ||||||
Crutch | maandag 19 maart 2012 @ 10:32 | |||||
Ik kom er niet uit. Cookies die ik 'check' en 'set' in een if-statement worden niet onthouden wanneer ik de browser afsluit en daarna weer open. Als ik een cookie 'set' buiten een if-statement dan blijft deze wel aanwezig. Dus cookies worden gewoon geaccepteerd, check. Register Globals staat op 'on', check. Ik kwam ook ergens de functie ob_start(); tegen, maar dat maakt verder geen verschil als ik die functie aanroep aan het begin van mijn code. Als ik een cookie aanmaak in een if-statement en ik ververs de pagina dan is ie wel aanwezig, maar sluit ik de browser en open ik de pagina opnieuw dan is ie weer weg. Ik gebruik overigens MAMP in OSX. | ||||||
The_Terminator | maandag 19 maart 2012 @ 10:43 | |||||
Geef je een geldigheidsduur mee aan de setcookie functie? | ||||||
Crutch | maandag 19 maart 2012 @ 10:49 | |||||
STOP DE PERSEN!! Ja deed ik dus wel, maar ik zag over het hoofd dat ik eerder tijdens het testen ergens in mijn if-statement nadat ik de cookie aanmaakte de cookie nogmaals aanmaakte zonder geldigheidsduur. ![]() Tja dan vervalt ie wanneer je de browser sluit. Gewoon slordig van me, maar toch bedankt. ![]() | ||||||
_Flash_ | maandag 19 maart 2012 @ 12:08 | |||||
Phpmailer is een tool om mailtjes mee te versturen. Wat bedoel je met "Ik kom er net achter dat ik niks kan invullen in de tekstboxen. Die doen het gewoon in een testbestand."? Heb je al een begin gemaakt met het opmaken van het HTML-formulier opgemaakt en een PHP-script dat de mailing verzorgt? Waar gaat het mis? Zo te zien zit er trouwens geen CMS achter de site. Is dat niet een idee om te koppelen? | ||||||
Mirel | maandag 19 maart 2012 @ 12:12 | |||||
Het HTML formulier is af, en het phpscript erachter ook, maar die kan ik nog niet testen. Ik kan letterlijk niks in een tekstveld typen: http://sbscoaching.nl/contact-test.php Er is niks mis met het formulier zover ik weet, ik heb die even op een testpagina op m'n eigen site gezet en daar kan ik wel gewoon dingen erin tikken. Zo'n tekstboxje heb ik even verplaatst op een andere plek in de sbscoaching site (zonder form tag), en daar kan ik ook niks invullen. | ||||||
_Flash_ | maandag 19 maart 2012 @ 12:18 | |||||
Haal die drie java-dingetjes even uit de <body>. De maker van die HTML heeft de pagina dmv die commando's beveiligd tegen klikken, rechtsklikken en selecteren e.d. Daarom gebeurt er niks als je in zo'n tekst-vakje klikt. | ||||||
#ANONIEM | maandag 19 maart 2012 @ 14:29 | |||||
Wat? Meen je dit? Welke pipo heeft bedacht dat dit een goed idee was? GELIJK weer uitzetten anders weet je zeker dat je script gehackt wordt. Ze hebben niet voor niets die functie verwijderd in de nieuwste PHP versie. | ||||||
GlowMouse | maandag 19 maart 2012 @ 14:31 | |||||
als je netjes code dan valt dat wel mee | ||||||
#ANONIEM | maandag 19 maart 2012 @ 14:32 | |||||
Het is een serieus veiligheids probleem... dat kun je niet goedpraten. | ||||||
Mirel | maandag 19 maart 2012 @ 14:34 | |||||
Ah thanks. Zulke dingen zijn toch waardeloos ![]() Maar welke zijn het precies? Ik zie niks in de source. Op de indivuele pagina op de server staat ook niks. Op de index staat dit, maar het is iets anders, niet voor de muiskliks:
| ||||||
#ANONIEM | maandag 19 maart 2012 @ 14:37 | |||||
Niks wat daarbij staat... dit moet je vinden
| ||||||
Mirel | maandag 19 maart 2012 @ 14:38 | |||||
OH DAT. Die shit heb ik er zelf in moeten doen ooit. ![]() ![]() | ||||||
#ANONIEM | maandag 19 maart 2012 @ 14:39 | |||||
laat me raden: de eigenaar van de site is voor het eerst online en denkt ik moet alles beveiligen tegen alles ![]() | ||||||
Mirel | maandag 19 maart 2012 @ 14:44 | |||||
Zoiets | ||||||
Mirel | maandag 19 maart 2012 @ 14:54 | |||||
Ok die zooi is nu in te vullen, maar de submit doet niks. Browser zegt dat http://sbscoaching.nl/contactformulieraction.php niet bestaat ![]() Hij staat echt daar:
Ik moet nog de rest van de variabelen erin doen. Ik vraag me overigens af hoe ik ze onder elkaar krijg. Dat met die ' en " komma's voor en na een string snap ik niet. Zoiets?
Die string ID's zijn slordig ja ![]() | ||||||
GlowMouse | maandag 19 maart 2012 @ 14:57 | |||||
check je error log | ||||||
Crutch | maandag 19 maart 2012 @ 14:59 | |||||
ok staat uit en alles werkt, dank je. | ||||||
Mirel | maandag 19 maart 2012 @ 15:00 | |||||
Remote server or file not found Check that the address is spelled correctly, or try searching for the site. Is wel goedgespeld. ![]() Ik zie nergens anders een plek waar errors komen dan in de browser. | ||||||
Crutch | maandag 19 maart 2012 @ 15:07 | |||||
Klik er eens op dan. | ||||||
Mirel | maandag 19 maart 2012 @ 15:08 | |||||
Dat doe ik, en dan geeft de browser een error dat het niet bestaat of dat de naam fout is. Maar dat is niet zo. Of mis ik nu iets? ![]() | ||||||
Catch22- | maandag 19 maart 2012 @ 15:10 | |||||
hij geeft een HTTP500 error, je hebt dus een fout in je script. Debuggen 101 | ||||||
#ANONIEM | maandag 19 maart 2012 @ 15:11 | |||||
misschien een htaccess error ![]() | ||||||
Mirel | maandag 19 maart 2012 @ 15:11 | |||||
In opera zag ik niet wat voor soort error het was. In firefox was het enkel een lege pagina. Maar ik vraag ook hier wat de fout in het script is. Het gedeelte wat in de mail te zien is is me nooit duidelijk, met al die komma's ![]() | ||||||
Sitethief | maandag 19 maart 2012 @ 15:11 | |||||
sluit regel 5 eerst maar eens correct af. | ||||||
Crutch | maandag 19 maart 2012 @ 15:11 | |||||
![]() | ||||||
Sitethief | maandag 19 maart 2012 @ 15:12 | |||||
En of je gebruikt enkele aanhalingstekens om je strings, of dubbele, maar allebei is niet nodig ![]() | ||||||
Catch22- | maandag 19 maart 2012 @ 15:12 | |||||
Dus; fix een goede editor en lees een debugguide.je kan die variabelen toch gewoon inline gooien? | ||||||
Mirel | maandag 19 maart 2012 @ 15:12 | |||||
Oke. Die had ik van een tutorial gevonden ![]() | ||||||
Mirel | maandag 19 maart 2012 @ 15:14 | |||||
Er was ook iets dat als ik de laatste ' en " weghaalde, dat de php ; z'n kleurtje kwijtraakte, wat betekende dat de code onjuist was. | ||||||
Sitethief | maandag 19 maart 2012 @ 15:24 | |||||
Als je jezelf vastlegt om een van beide te gebruiken kun je ook niet zomaar door de war komen, vroeger was er nog een snelheidsprobleem tussen beiden dat is er nu niet. Met de code die jij schrijft zou ik opteren voor de single quote, zodat je er veilig HTML tussen kan zetten die dubbele quotes gebruiken, hoef je die niet te escapen. Officieel mogen enkele quotes ook in HTML, alleen zie je dat veel minder imho Het lijkt me een stap te ver om nu diep in te gaan in het memory gebruik van concatenate en manieren om dit te versnellen etc etc. Probeer eerst de basis concepten van PHP te begrijpen. | ||||||
Chandler | dinsdag 20 maart 2012 @ 14:00 | |||||
Kleine vraag, waarschijnlijk kijk ik ergens overheen Stel ik heb 2 classes
Waar ga ik de fout in? omg. wil in een class een andere class laden en dan de parent qua gegevens updaten en dan weer verdergaan met de parent en deze gegevens kunnen gebruiken. | ||||||
Sitethief | dinsdag 20 maart 2012 @ 14:06 | |||||
Je kunt volgens mij niet in in een parent de child class oproepen, met andere woorden, extending gaat maar een kant op, namelijk parent->child. Nu heb je volgens mij een loop want je roept in hoofd plugin aan en die extend hoofd en die roept plugin aan etc etc. | ||||||
Pakspul | dinsdag 20 maart 2012 @ 14:29 | |||||
Wat ben je van plan? Want ik zit even je code door te lezen, maar ik snap er helemaal geen hol van. Childs aanroepen in je parent class en parent functies aanroepen die niet bestaan? Duik eerst eens in het OO programmeren, want je hebt er volgens mij nog niet echt kaas van gegeten en gooi protected abstract function validate(); even in je hoofd klasse, zodat je verplicht wordt om in kinder klasses deze aan te roepen. | ||||||
#ANONIEM | dinsdag 20 maart 2012 @ 14:35 | |||||
Begin maar opnieuw met OO. | ||||||
Chandler | dinsdag 20 maart 2012 @ 18:23 | |||||
Wat ik wil is gewoon in een class een andere class aanroepen, deze class voert bepaalde code uit en moet daarvoor weer variabelen in de hoofd class aanpassen, that's all. @Scorpie; je hebt gelijk al heb ik al vele malen een hoop documentatie doorgelezen maar krijg het er blijkbaar niet in! ![]() | ||||||
#ANONIEM | dinsdag 20 maart 2012 @ 18:25 | |||||
Waarom wil je variabelen wijzigen in je hoofdclass? | ||||||
Chandler | dinsdag 20 maart 2012 @ 18:28 | |||||
Ik ben bezig met een 1 produkt webshop en daarin wil ik plugins verwerken maar zie nu dat ik die beter buiten de class kan aanroepen en dan de shop class kan aanroepen om gegevens te verwerken!. | ||||||
mafkees10 | woensdag 21 maart 2012 @ 23:39 | |||||
Buiten dat bovenstaande enorme troep is, kan je toch in je klasse gewoon een nieuwe instantie aanmaken en in een variabele stoppen? In je parent hou je dan de instanties bij. Waarom extend plugin hoofd? Weet je wat extenden is en waar t voor gebruikt wordt? Ik heb een vermoeden dat je het als doorgeefluik aan het gebruiken bent... | ||||||
#ANONIEM | donderdag 22 maart 2012 @ 16:14 | |||||
Gisteren maar een nieuw project gestart(na het hebben van een vage droom). Hier kan ik weer gelijk alle nieuwe technieken voor leren en gebruiken ![]() Het is een simulator ![]() | ||||||
PiRANiA | donderdag 22 maart 2012 @ 16:18 | |||||
Heeft iemand een goed idee hoe ik IP's het beste kan opslaan in een databaas? Het worden op termijn miljoenen rows die goed doorzoekbaar moeten zijn. Omzetten naar int? Of zal char goed zijn? Binary misschien? | ||||||
mstx | donderdag 22 maart 2012 @ 16:24 | |||||
Unsigned int, opslaan kan dan makkelijk met INET_ATON() en weer ophalen met INET_NTOA(). | ||||||
Ofyles2 | donderdag 22 maart 2012 @ 16:27 | |||||
Ik houd het voorlopig bij VARCHAR, dit om voorbereid te zijn op IPv6. Uiteraard kijk ik wel of het eenvoudiger kan. | ||||||
#ANONIEM | donderdag 22 maart 2012 @ 18:52 | |||||
Lijkt me makkelijker dan om 1 veld ip4 te hebben en 1 ip6. | ||||||
LightLuke | vrijdag 23 maart 2012 @ 14:10 | |||||
Ik kom er even niet uit, ik verwijder een record in mijn database waardoor ik dus een gat krijg in de data het was 1,2,3,4,5 Ik verwijder 2 dus nu heb ik 1,3,4,5. Met welke mysql update query krijg ik gewoon weer een rijtje 1,2,3,4 eruit? | ||||||
mschol | vrijdag 23 maart 2012 @ 14:29 | |||||
is het een autoincrement waarde? niet netjes maar zou moeten werken:
| ||||||
LightLuke | vrijdag 23 maart 2012 @ 14:31 | |||||
Het is geen autoincrement waarde ![]() | ||||||
#ANONIEM | vrijdag 23 maart 2012 @ 15:05 | |||||
waarom zou je dat willen? In welke situatie gebruik je dit? | ||||||
Diabox | vrijdag 23 maart 2012 @ 15:17 | |||||
Dan bepaal je zelf toch gewoon de waarde?? Edit: Laat maar, vraag verkeerd geinterpreteerd ![]() | ||||||
LightLuke | vrijdag 23 maart 2012 @ 15:54 | |||||
In het bepalen van de volgorde van een playlist. de genoemde getallen staan voor de positie van een track in een playlist. | ||||||
Catch22- | vrijdag 23 maart 2012 @ 15:55 | |||||
| ||||||
LightLuke | vrijdag 23 maart 2012 @ 15:59 | |||||
Haha thanks! Dat is hem ![]() | ||||||
kucher | zaterdag 24 maart 2012 @ 09:58 | |||||
Het hangt af van de toepassing, je kan • Gewoon niet IP-adressen bewaren als dat niet een vereiste is voor de functionaliteit van het programma • De eerste 48 bits opslaan in een bigint • Bij het ontbreken van een IP-type, aangepaste typen en arrays het volledige adres opslaan in 2 bigints (niet echt een optie in de meeste gevallen) • Het adres met nullen opslaan in een char(39) De eerste optie is de makkelijkste, de tweede is een goede interim-oplossing en bij de laatste 2 oplossingen moet je IPv4 omzetten in gelijkwaardige IPv6-adressen (:: ffff: ...). Het beste zou zijn om een native IP gegevenstype hebben met functies ter ondersteuning, zoals multicast() en routable(). Als de functionaliteit vereist is om IP-adressen op te slaan in MySQL, dan zou ik optie 4 nemen, anders 1 of 2. Tenzij je een IPv6 router aan het implementeren bent in stored functions, dan is optie 3 het efficiëntst (oftewel nooit). [ Bericht 7% gewijzigd door kucher op 24-03-2012 10:09:32 ] | ||||||
wipes66 | zaterdag 24 maart 2012 @ 12:07 | |||||
md5 hash van de ip's opslaan als binary(16) ? | ||||||
Light | zaterdag 24 maart 2012 @ 13:19 | |||||
Een md5 hash past niet in een binary(16) veld. Daarnaast ben je alle zoekopties kwijt als je een hash gebruikt. (Het zou ook kunnen dat er twee ip's met dezelfde md5 hashes bestaan.) | ||||||
wipes66 | zaterdag 24 maart 2012 @ 16:01 | |||||
md5 is 16 bytes dus dat moet passen. collision is inderdaad een nadeel, maar voor veel toepassingen maakt dat niet veel uit. | ||||||
kucher | zaterdag 24 maart 2012 @ 16:21 | |||||
MD5 (Message Digest Algorithm 5) is een veelgebruikte cryptografische hashfunctie met een 128-bit hashwaarde. | ||||||
Sitethief | zaterdag 24 maart 2012 @ 18:53 | |||||
a 128-bit (16-byte) hash value. | ||||||
kucher | zaterdag 24 maart 2012 @ 21:23 | |||||
IPv6 is the successor to the Internet's first addressing infrastructure, Internet Protocol version 4 (IPv4). In contrast to IPv4, which defined an IP address as a 32-bit number, IPv6 addresses have a size of 128 bits. Trek je eigen conclusie. | ||||||
Light | zaterdag 24 maart 2012 @ 22:03 | |||||
De MD5 berekendingen die ik ken, leveren een MD5 hash op als een string van 32 karakters. | ||||||
kucher | zaterdag 24 maart 2012 @ 22:43 | |||||
De 128-bit (16-byte) MD5-hashes worden meestal weergegeven als 32-cijferige hexadecimale getallen. | ||||||
ralfie | zaterdag 24 maart 2012 @ 23:10 | |||||
Misschien is het te laat maar zijn we het niet allemaal eens met elkaar hier? | ||||||
kucher | zondag 25 maart 2012 @ 00:06 | |||||
Nee, lol. De stupide om een 128-bits IP adres door nota bene een 128-bits hashfunctie te halen is voorbij mij. | ||||||
Blue_Panther_Ninja | zondag 25 maart 2012 @ 23:32 | |||||
![]() ![]() | ||||||
cablegunmaster | maandag 26 maart 2012 @ 11:12 | |||||
Wat wil je ervan bewaren? Want het kan zijn zoals in de link aangegeven is dat bepaalde tabellen veranderd zijn in de DB. daarom kun je het beste controleren met een eigen installatie op XAMPP localhost (voorbeeld ) en daar je DB installeren om te kijken of er verschillen in zijn. Dit gaat over een kleinere versie stap dan jij dat nu hebt. Als het om een grote aantal gebruikers gaat is het de moeite waard, anders raad ik aan toch een nieuwe DB in te zetten. Bron: http://support.open-realt(...)Import-user-Database Al heeft dit een import functie: http://www.zriel.com/joom(...)-csv-file-16-17-25-3 Hoe dit werkt? 1. maak een nieuw bestand op je server aan met alle gegevens. ( CSV dump van je DB) 2. maak een nieuw bestand aan met een .php extensie en zet daarin alle php en vervolgens zet je onderaan het example en laat deze verwijzen naar je CSV file. Hiermee importeer je al je users. Maak altijd voor de zekerheid een backup van je DB en van je Nieuwe DB die je installeert. Mogelijk helpt dit iets. [ Bericht 9% gewijzigd door cablegunmaster op 26-03-2012 11:19:09 ] | ||||||
Blue_Panther_Ninja | maandag 26 maart 2012 @ 14:02 | |||||
Ik,XAMPP gebruiken??Mooi niet,ik heb LAMP. ![]() | ||||||
Sitethief | maandag 26 maart 2012 @ 14:34 | |||||
Je weet dat de X in XAMPP staat voor om het even welke OS, dus ook voor LAMP ? | ||||||
#ANONIEM | maandag 26 maart 2012 @ 14:39 | |||||
Lamp = Linux Apache Mysql Php anyway: Heeft iemand hier ervaringen met pathfinding op een grid? | ||||||
Faux. | maandag 26 maart 2012 @ 17:31 | |||||
Hallo, ik wil graag aan de slag met de imgur API. Nu hebben zij het volgende script om bestanden naar de imgur-servers up te loaden:
Ik wil dat graag samen laten werken met een HTML-formuliertje. Hoe zorg ik ervoor dat de afbeelding die de gebruiker uploadt gelijk naar imgur wordt verzonden en niet eerst op mijn server wordt opgeslagen? ![]() | ||||||
GlowMouse | maandag 26 maart 2012 @ 17:32 | |||||
toch tijdelijk op je eigen server opslaan | ||||||
#ANONIEM | maandag 26 maart 2012 @ 17:33 | |||||
Er wordt altijd een tijdelijk bestand aangemaakt op de server. | ||||||
Faux. | maandag 26 maart 2012 @ 17:33 | |||||
En brengt dat veiligheidsrisico's met zich mee? ![]() | ||||||
#ANONIEM | maandag 26 maart 2012 @ 17:36 | |||||
Depends wat je voor veiligheidschecks hebt. | ||||||
Faux. | maandag 26 maart 2012 @ 17:39 | |||||
En als je de afbeelding van de gebruik opslaat, uploadt naar imgur en gelijk weer verwijderd, loop je dan geen risico? | ||||||
GlowMouse | maandag 26 maart 2012 @ 17:40 | |||||
over welk risico heb je het precies? Let ook op je grammatica. | ||||||
Faux. | maandag 26 maart 2012 @ 17:44 | |||||
verwijdert ![]() De risico's die hier beschreven worden: http://corpocrat.com/2007(...)-file-upload-in-php/ | ||||||
GlowMouse | maandag 26 maart 2012 @ 17:47 | |||||
daar staat een hele makkelijke oplossing genoemd | ||||||
kucher | maandag 26 maart 2012 @ 22:14 | |||||
Je hoeft het niet te verwijderen, dat doet PHP zelf al. | ||||||
GlowMouse | maandag 26 maart 2012 @ 22:19 | |||||
dat moet wel, aangezien je niet altijd files uit de upload_tmp_dir mag lezen (oa. als safe mode aanstaat of open_basedir ingesteld is) en je dus eerst move_uploaded_file moet aanroepen | ||||||
Sitethief | dinsdag 27 maart 2012 @ 16:12 | |||||
Dillema Ik heb een class waarin enkele debug en log functies staan die vooral gebruikt worden om fouten te ontdekken, debuggen, en loggen. Dat loggen gebeurt in sommige gevallen naar de database. En de database class logt wanneer er iets verkeerd gaat... Zie hier mijn dillema, ik kan natuurlijk mijn debug.log class opsplitsen, maar ergens vind ik dat geen ideale oplossing. | ||||||
Dalando | dinsdag 27 maart 2012 @ 16:50 | |||||
Ik kwam deze tegen en ik dacht ik laat hem even hier achter, misschien goed voor in de OP. http://phptuts.nl/home/ | ||||||
#ANONIEM | dinsdag 27 maart 2012 @ 18:14 | |||||
Goede site, tutorials zijn lekker uptodate (zoals het hoort). Dit durf ik tenminste te geven aan een beginner! Zeker een aanrader. | ||||||
Pino112 | dinsdag 27 maart 2012 @ 18:22 | |||||
Sarcastisch? | ||||||
#ANONIEM | dinsdag 27 maart 2012 @ 18:22 | |||||
Nee, anders zou ik wel zeggen dat de site klote is... en dat holbewoners zelfs niet gebruik maakten van globals. [ Bericht 5% gewijzigd door #ANONIEM op 27-03-2012 18:23:21 ] | ||||||
Pino112 | dinsdag 27 maart 2012 @ 18:23 | |||||
Ik zag tuts uit 2008 staan, dus daarom mijn twijfels. ![]() | ||||||
The_Terminator | dinsdag 27 maart 2012 @ 18:23 | |||||
De laatste tutorial stamt uit eind 2009. Ik kan dat nou niet bepaald 'up-to-date' noemen... | ||||||
#ANONIEM | dinsdag 27 maart 2012 @ 18:24 | |||||
Als je kijkt zie je dat de techniek die gebruikt wordt gewoon goed is. Ik had eerst ook mijn twijfels erover, maar zeker voor een beginner is dit een betere start dan een PHP for Dummies boek. | ||||||
Ofyles2 | dinsdag 27 maart 2012 @ 19:49 | |||||
Momenteel is PHP6 nog niet wijdverbreid. | ||||||
kucher | dinsdag 27 maart 2012 @ 21:32 | |||||
PHP6 is dood, maar het verschil tussen 5.2 en 5.4 is wel groot. | ||||||
#ANONIEM | dinsdag 27 maart 2012 @ 22:49 | |||||
Dat wel, maar om dat een beginner te gaan leren ![]() ![]() | ||||||
Light | dinsdag 27 maart 2012 @ 22:52 | |||||
namespaces is iets van PHP 5.3. Als je iets typisch PHP 5.4 als vorobeeld wilt geven, kun je bijvoorbeeld traits nemen. Maar om dat nou bij een beginner uit te leggen, lijkt me niet slim... | ||||||
Pakspul | woensdag 28 maart 2012 @ 09:16 | |||||
Ik zie het nut van namespaces bij PHP niet helemaal in. Je moet de bestanden toch includen dus die tijd ben je al kwijt. Als PHP goed omgaat met niet geheel inlezen van de bestanden totdat de namespace wordt aangeroepen, dan heeft het wel een voordeel aangezien hij dan pas gaat inlezen wat hij nodig heeft. Enige wat ik trouwens van PHP zag dat nog een verbetering was is het gebruik van woord "static" n functies. Dat hij het afdwingt deze functies beter te gebruiken. Liever had ik punten gezien als: • betere type casting $var1 = string en blijft een string, niet dat het halvewege de code ineens een integer kan worden. • Return types in functie name, zodat je precies weet wat je terug krijgt. • Verplicht parameter types opgeven • Functie overloading | ||||||
#ANONIEM | woensdag 28 maart 2012 @ 16:11 | |||||
Het nut is dat je nooit meer 2 dezelfde classes kan aanroepen. Aangezien er meerdere classes kunnen bestaan met dezelfde naamgeving is dat dus handig. Ook hoeft includen dus niet meer. voor mijn huidige applicatie is dit perfect! static methods bestaat al een tijdje hoor ![]() Ik ben het wel eens met je dat method parameter types aangegeven moeten kunnen worden in een interface/abstract class. overloading bestaat al waarom zou je return types in de functienaam willen? Je hoort gewoon iets terug te geven en dat zet je in een comment boven de functie. | ||||||
Pakspul | woensdag 28 maart 2012 @ 19:37 | |||||
Hoe weet PHP dan waar de classes staan als includen niet meer hoeft? Weet ik, maar waar ik op doel is dat het volgende mogelijk is zonder foutmelding
Dit mag niet, static moet er bij anders klopt het gewoon niet.
![]() Dit kan in PHP niet:
Wat wel heel handig is. Commentaar dwingt het niet af en dat zou wel ideaal zijn. Ook voor het opvoeden van de programmeur die wordt dan gedwongen om goed om te gaan met types. | ||||||
#ANONIEM | woensdag 28 maart 2012 @ 20:03 | |||||
Ik maak zelf gebruik van een autoloader (zoals je normaal ook zou hebben). Dat is toch logisch? het voordeel van static is dat er geen instance gemaakt hoeft te worden van de class. Dit is gewoon zoals het hoort imo. overloading houdt iets anders is. http://php.net/manual/en/language.oop5.overloading.php Ik neem dan aan dat je zoiets zou willen:
dat zou inderdaad wel van pas komen. | ||||||
Pakspul | woensdag 28 maart 2012 @ 20:13 | |||||
Dan worden de bestanden toch nog gewoon geinclude? Maar goed, dubbel class namen kan handig zijn. Nee, want je static functie kan anders zijn dan je normale funtie. In je normale functie kun je gebruik maken van je $this variabel.
Zo programmeer je static functies (niet kijken naar de classes, kon even niets beters verzinnen ![]() Duidelijk dat PHP en OO wereld twee andere dingen bedoelen. Ik doel op hoe het in OO wereld hoort: http://en.wikipedia.org/wiki/Function_overloading Liever op de c# manier
| ||||||
#ANONIEM | woensdag 28 maart 2012 @ 20:21 | |||||
Ja maar het aanroepen van de class gaat dus anders ![]() Je kunt in static functies gebruik maken van self:: Hmm interessant, ik kan begrijpen waarom je dat zou willen ja. Nu ik erover nadenk... waarom ik dat wel zou willen ![]() Ik zou het dan liever zo zien, ik vind het wel fijn als er ook echt function bij staat ![]()
Voorbeeldje van mijn autoloader:
Hoe ik in bestanden iets aanroep:
EDIT: de FoK! php highlight ondersteunt nog geen namespaces ![]() [ Bericht 12% gewijzigd door #ANONIEM op 28-03-2012 20:23:14 ] | ||||||
Pakspul | woensdag 28 maart 2012 @ 20:26 | |||||
Weet ik, maar dat zijn wel twee verschillende dingen en die gebruik je niet door elkaar heen. Als je statische functies gebruikt mag $this niet voorkomen en dat is in PHP nu wel mogelijk. Extra type werk ![]() ![]() Snap het idee, maar ben benieuwd of introductie van namespaces ook invloed heeft op performance. | ||||||
#ANONIEM | woensdag 28 maart 2012 @ 20:31 | |||||
Tja er kloppen wel meer dingen niet (qua logica) in PHP. Meh ik vind function erbij horen xD alhoewel je kunt voorstellen dat het een behoorlijk lange naam wordt op zo'n manier
Ja het heeft zeker effect op performance. Ik kan het artikel niet zo snel vinden, maar het was een stuk sneller (met grote apps) dan normale loading. [ Bericht 2% gewijzigd door #ANONIEM op 28-03-2012 20:32:12 ] | ||||||
Pakspul | woensdag 28 maart 2012 @ 20:36 | |||||
En als we dan toch nog even bezig zijn fields mogen ook toegevoegd worden. http://msdn.microsoft.com/en-us/library/ms173118.aspx Fokking ideaal! | ||||||
#ANONIEM | woensdag 28 maart 2012 @ 20:40 | |||||
Ik zie niet zo snel het voordeel ervan in tegenover een eigen class maken. | ||||||
Light | woensdag 28 maart 2012 @ 21:00 | |||||
Ik vind die code lelijk, maar dat komt vooral omdat functienamen en propertyname met een hoofdletter beginnen. Da's wel gebruikelijk voor class names, niet voor andere dingen. En die static functie heb je niet nodig als je dit kunt doen:
In PHP kun je een functie maken die optionele parameters heeft. Dat is vergelijkbaar met je overloading voorbeeld. Ik vraag me af of er dynamically typed talen zijn waar dat in werkt. | ||||||
Pakspul | woensdag 28 maart 2012 @ 21:00 | |||||
Je kunt checks uitvoeren op je class variabelen. Of readonly variabelen maken.
| ||||||
#ANONIEM | woensdag 28 maart 2012 @ 21:02 | |||||
Dat is gewoon een hele andere programmeer style ineens ![]() Komt vast ooit wel in PHP terecht. | ||||||
Pakspul | woensdag 28 maart 2012 @ 21:04 | |||||
Uppercamelcase is lowercamelcase mag je gebruiken zoals je wil, als je maar consistent bent in het gebruik. Het was ook een voorbeeld en wat jij doet kan niet aangezien. PHP geeft dan een error. Het is weer zo'n afgeraffelde oplossing. Dit maakt PHP ook een makkelijke taal, maar officieel moet het gewoon anders en dat zou wel mooi zijn als ze dat eens ingaan voeren. Want ze zijn al bezig om een volwassen taal te worden. Nadeel is dat de mensen dan heel veel code opnieuw moeten gaan schrijven. | ||||||
Pakspul | woensdag 28 maart 2012 @ 21:05 | |||||
Voorbeeld is geschreven in c#, maar dat werkt wel super goed. Readonly variabelen ook, soms kan dat best handig uitkomen. | ||||||
Sitethief | woensdag 28 maart 2012 @ 21:09 | |||||
Moet? mag PHP nog een eigen taal zijn, of moet het allemaal een pot nat zijn en allemaal hetzelfde? | ||||||
Light | woensdag 28 maart 2012 @ 21:10 | |||||
Dat kan in PHP ook:
| ||||||
Pakspul | woensdag 28 maart 2012 @ 21:15 | |||||
Nou ja moet, zou leuk zijn als ze de standaarden volgen. Weet ik, maar die get/set functies in vind ik dan weer niet mooi ![]() | ||||||
Light | woensdag 28 maart 2012 @ 21:27 | |||||
Dat is het belangrijkste. ![]() Sinds PHP 5.4 kan het wel, iig als je twee haakjes toevoegt (en misschien ook zonder die extra haakjes):
Nee, het is een valide manier van werken, helemaal in de tijd dat typehinten in PHP nog niet mogelijk was. PHP is dynamically typed, en dat heeft voor- en nadelen. Jouw idee over hoe dingen moeten, zijn niet altijd mogelijk. En als je een statically typed taal wilt, moet je geen PHP gebruiken. | ||||||
Light | woensdag 28 maart 2012 @ 21:28 | |||||
Dan kun je nog altijd de magic funnctions __get en __set gebruiken. | ||||||
Pakspul | woensdag 28 maart 2012 @ 21:36 | |||||
en _call en _callStatic Opties zat, maar heb geen zin om methodes te bouwen om functionaliteiten na te bootsen. | ||||||
Light | woensdag 28 maart 2012 @ 22:05 | |||||
Bij de fields in C# bouw je ook methods. Je geeft ze alleen niet zo expliciet een naam. | ||||||
Mirel | donderdag 29 maart 2012 @ 11:14 | |||||
edit | ||||||
MrNiles | vrijdag 30 maart 2012 @ 14:20 | |||||
kun je met php de rotatie van een foto achterhalen, dus als een foto portrait is gemaakt, ook portrait wordt weergegeven en niet landscape zit een rotatie in de data van een foto? | ||||||
KomtTijd... | vrijdag 30 maart 2012 @ 14:23 | |||||
http://php.net/manual/en/function.exif-read-data.php sommige fototoestellen nemen idd een rotatie op in de exif data. | ||||||
MrNiles | vrijdag 30 maart 2012 @ 14:45 | |||||
thanks..iemand al ooit iets mee gedaan? ik wil een fotoupload op een site.. stuur een foto naar een specifiek mailadres, de foto komt met de juiste rotatie op een site zoiets is het idee | ||||||
kucher | vrijdag 30 maart 2012 @ 20:41 | |||||
Kijk eens op packagist.org. | ||||||
Blue_Panther_Ninja | vrijdag 30 maart 2012 @ 21:30 | |||||
O jah, nieuwe Joomla database gemaakt!! ![]() hoe kan ik dit weghalen?? ![]() [ Bericht 15% gewijzigd door Blue_Panther_Ninja op 30-03-2012 22:47:17 ] | ||||||
stefanhaan | vrijdag 30 maart 2012 @ 23:10 | |||||
even inloggen en dan kun je in de settings maintenance mode uit zetten als het goed is. Tevens leuke hentai tab heb je open ![]() | ||||||
Blue_Panther_Ninja | zaterdag 31 maart 2012 @ 00:03 | |||||
Even proberen!! Ik ben bijna 6 jaar H-palm member,er is nog 1 he! ![]() | ||||||
kucher | zaterdag 31 maart 2012 @ 00:05 | |||||
meh | ||||||
Blue_Panther_Ninja | zaterdag 31 maart 2012 @ 00:16 | |||||
index.php
Welke moet ik weg hebben voor de site login in gedoe als het offline is? | ||||||
stefanhaan | zaterdag 31 maart 2012 @ 00:21 | |||||
dat kun je niet vanuit de index ![]() ![]() | ||||||
Blue_Panther_Ninja | zaterdag 31 maart 2012 @ 01:22 | |||||
Zie post 141. ![]() | ||||||
stefanhaan | zaterdag 31 maart 2012 @ 01:24 | |||||
Ja maar wil je alleen het inloggen weghalen of de hele under construction? | ||||||
Blue_Panther_Ninja | zaterdag 31 maart 2012 @ 01:40 | |||||
alleen inloggen. ![]() | ||||||
Dale. | dinsdag 3 april 2012 @ 10:02 | |||||
Vraagje... Ik heb 3 queries
De resultaten die ik selecteer wil ik combineren. Nu dacht ik eerst gewoon UNION maar dat kan dus niet omdat ik niet dezelfde velden selecteer. Toen dacht ik het kan ook gewoon zo...
Nu werkt dit eigenlijk in vrijwel alle gevallen. Alleen bij een paar ID's blijft de query uitvoeren tot een timeout. Ik geloof dat dit is omdat het resultaat van een tabel NULL is en hij dus in feite niets vind. Wanneer ik echter de queries voor die specifieke ID apart uitvoer returned hij het resultaat wel onmiddelijk... Waarom doet hij het dus wel wanneer ik de queries apart uitvoer maar niet in 1 gebundelde query? | ||||||
#ANONIEM | dinsdag 3 april 2012 @ 10:07 | |||||
Volgens mij is je gebundelde query niet hetzelfde als je drie verschillende queries. [ Bericht 12% gewijzigd door #ANONIEM op 03-04-2012 10:07:40 ] | ||||||
Dale. | dinsdag 3 april 2012 @ 10:13 | |||||
Ja zoiets vermoed ik ook al. Hij gaat, denk ik, een relatie zoeken waarmee de where clause overeenstemt. Dus hij zoekt ook in de lege tabel een record met ID='2', die dus niet bestaat en dus oneindig lang gaat zoeken? Is er dan een manier zodat hij dat niet doet? Of is er een andere manier om de resultaten van mijn query simpel te mergen? (Zoals gezegd een union gaat helaas niet). | ||||||
Cue_ | dinsdag 3 april 2012 @ 10:13 | |||||
Moet je niet een OR gebruiken ipv een AND? | ||||||
stefanhaan | dinsdag 3 april 2012 @ 10:16 | |||||
Dit. Allereerst je tabel namen in een enkele query is nergens voor nodig. Dus maak het je niet onnodig lastig dat je alle velden vanuit je query via t.** moet benaderen maar gewoon **. De TOP tag werkt alleen in SQL server (Dacht ik) dus kan je beter LIMIT gebruiken doet exact hetzelfde en is vrijwel overal ondersteunt.
=>
Alleen hou deze restricties in je achterhoofd:
| ||||||
Dale. | dinsdag 3 april 2012 @ 10:23 | |||||
I know ![]() ![]() Gedaan, had geen effect, hoewel ik wel idd dacht dat dit zou werken. | ||||||
stefanhaan | dinsdag 3 april 2012 @ 10:24 | |||||
Daarom poste ik ook dit.Dan zou je net zo goed de 3 query's afzonderlijk kunnen doen of via een JOIN. Maar ik weet niet waarvoor je het wil gebruiken dus wat meer info misschien? ![]() | ||||||
Dale. | dinsdag 3 april 2012 @ 10:33 | |||||
Klopt de drie queries kan ik ook afzonderlijk doen. Alleen wil ik het netwerkverkeer minimaliseren. Wat ik nu eerst dus wil doen is gewoon de resultaten van de 3 queries combineren, achter elkaar zetten dus. Zodat ik het resultaat daarna in 1 brok wordt verstuurd i.p.v. 3 brokken. Daarna gooi ik de boel nog in een storedprocedure. Ik had net ook nog geprobeerd met een FULL OUTER JOIN maar daarbij zelfde resultaat. | ||||||
stefanhaan | dinsdag 3 april 2012 @ 10:36 | |||||
Sowieso als je alleen de top 5 resultaten terug laat sturen. Vind er vrijwel geen netwerkverkeer plaats omdat je maar 15 rows retourneerd ipv 15000 bv. Dus is het in dit geval wel verwaarloosbaar. | ||||||
Dale. | dinsdag 3 april 2012 @ 10:38 | |||||
True maar niet als er grofweg 10.000 pc's dit iedere 5 seconde gaan doen ![]() | ||||||
stefanhaan | dinsdag 3 april 2012 @ 10:41 | |||||
Zelfs dan valt het nog mee mits goede server. | ||||||
Dale. | dinsdag 3 april 2012 @ 10:43 | |||||
Die is er niet maar goed ![]() ![]() | ||||||
GlowMouse | dinsdag 3 april 2012 @ 10:45 | |||||
UNION was toch al genoemd? | ||||||
Dale. | dinsdag 3 april 2012 @ 10:46 | |||||
| ||||||
GlowMouse | dinsdag 3 april 2012 @ 10:50 | |||||
Andere oplossingen worden echt lelijk ![]() hoofdletters als tabel-/kolomnamen zijn echt lelijk ![]() SELECT t.IETS1,t.IETS2,q.IETS3,q.IETS4 FROM TABEL1 AS t LEFT JOIN TABEL 2 AS q ON(q.ID=2) WHERE t.ID=2 LIMIT 1 | ||||||
GlowMouse | dinsdag 3 april 2012 @ 10:54 | |||||
Het is mooier om, als je maar één kolom hebt en bij een andere twee kolommen, toch UNION te gebruiken en dan ipv select veld1 te doen: select veld1,0 | ||||||
Dale. | dinsdag 3 april 2012 @ 11:14 | |||||
Okee! En ja sorry ik heb het database schema niet gemaakt ![]() Ik heb dan dus zoiets als @SET result1 = SELECT ... @SET result2 = SELECT ... @SET result3 = SELECT ... Waarbij result1,2 en 3 dus iets zijn als
Dat zou idd werken helaas merk ik net dat ik dan nog tegen een conversie fout aanloop ![]() | ||||||
GlowMouse | dinsdag 3 april 2012 @ 11:35 | |||||
Nee dat kan niet. De methode van joinen is het enige alternatief op union dat ik kan bedenken. | ||||||
Dale. | dinsdag 3 april 2012 @ 11:35 | |||||
Oke thanks. Dan gewoon maar een loopje en in de programmeertaal mergen. | ||||||
remi1986 | dinsdag 3 april 2012 @ 11:39 | |||||
Ik kwam dit lelijke stukje code tegen in de code van een oud werknemer.
De verwachting is dat hij eruit klapt met een undefined index, maar blijkbaar mag dit. Is dit nieuw? Als $var gedefinieerd wordt als $var = array(), doet hij dat wel namelijk. | ||||||
kucher | dinsdag 3 april 2012 @ 21:09 | |||||
| ||||||
Crutch | donderdag 5 april 2012 @ 11:47 | |||||
Hoe zou ik accessoires gerelateerd kunnen maken aan meerdere producten? Zelf zat ik te denken aan een cel met kommagescheiden waarden(id's) waar het product bij zou passen, maar wordt een query dan niet ongelofelijk omslachtig? En zou ik die accessoires in dezelfde tabel als de producten mogen zetten? | ||||||
Catch22- | donderdag 5 april 2012 @ 11:48 | |||||
koppeltabel maken? product_id | accessoire_id ? en dan een gecombineerde sleutel maken | ||||||
stefanhaan | donderdag 5 april 2012 @ 11:48 | |||||
Dat lijkt me wel de beste oplossing. En het simpelst om te implementeren. | ||||||
Catch22- | donderdag 5 april 2012 @ 11:50 | |||||
Ik mis het devven soms best wel. Ben nu fulltime met de frontend bezig (en interaction design), maar backenddevelopment kan toch ook wel tof zijn soms. Maarja, je kan niet alles doen he | ||||||
Crutch | donderdag 5 april 2012 @ 11:51 | |||||
Ok, koppeltabel dus. ![]() Hoe moet ik die structuur voor me zien? | ||||||
Crutch | donderdag 5 april 2012 @ 12:16 | |||||
Zoiets begrijp ik?
| ||||||
GlowMouse | donderdag 5 april 2012 @ 13:06 | |||||
maar dan zonder id in de tweede tabel | ||||||
Catch22- | donderdag 5 april 2012 @ 13:09 | |||||
en je maakt van accessoire_id en product_id (niet gerelateerd_product_id) een composite key. Hiermee dwing je uniqueness af. | ||||||
Crutch | donderdag 5 april 2012 @ 13:33 | |||||
Dus 'id' is niet verplicht in een tabel? Nou mooi, kan die weg. ![]() En wat Catch22- zegt, bedoel je daarmee dat ik een kolom moet toevoegen waarin ik aangeef bij welk product(id) deze niet hoort? Wat is daar het praktisch nut van? | ||||||
KomtTijd... | donderdag 5 april 2012 @ 13:55 | |||||
hij bedoelt dat het woordje "gerelateerd" een beetje onzinnige toevoeging is aan de kolom-naam. Beter weglaten. En als tweede bedoelt hij, dat je een key ook over meerdere kolommen kan defineren. Daarom is de kolom ID overbodig. Aangezien de combinatie [accessoire_id + product_id] sowieso al uniek is. | ||||||
Catch22- | donderdag 5 april 2012 @ 13:57 | |||||
Met een koppeltabel geef je aan welke 2 entiteiten bijelkaar horen. Deze combinatie is uniek. Dit stel je in door een composite key te gebruiken. Hierdoor heeft die rij niet nog een eigen id nodig, want zijn unique identifier is de composite key ![]() en in een koppeltabel zijn beide id's "gerelateerd_", dus dat moet je gewoon weglaten. | ||||||
Crutch | donderdag 5 april 2012 @ 14:03 | |||||
Oh, lol. Die kolomnamen zijn hier puur ter illustratie. | ||||||
Crutch | donderdag 5 april 2012 @ 14:05 | |||||
Maar hoe werkt zo'n composite key? Kan iemand mij een voorbeeld geven? | ||||||
#ANONIEM | donderdag 5 april 2012 @ 21:56 | |||||
Je hebt 2 hoofdtabellen: Users met info en id Rights met naam van rechten etc en id UserRights met user_id en rights_id Je kunt dus voor 1 user meerdere rechten toekennen en andersom. Zoiets dus:
| ||||||
Light | donderdag 5 april 2012 @ 22:13 | |||||
| ||||||
Crutch | donderdag 5 april 2012 @ 22:16 | |||||
![]() Ik ga er morgen even mee klooien. Beiden bedankt. ![]() | ||||||
Swetsenegger | donderdag 5 april 2012 @ 23:07 | |||||
Ik heb weer eens een query vraagje. Ik heb een nested set model en nu wil ik van een bepaald groepjes nodes de parent naam achterhalen
Dit werkt bijna Het gaat mis bij nodes die 2 niveaus diep zitten. aan deze query moet een where worden toegevoegd:
is dit uberhaupt mogelijk? | ||||||
#ANONIEM | donderdag 5 april 2012 @ 23:16 | |||||
Je kunt hier even kijken (al lijkt je query er al een beetje op) http://stackoverflow.com/(...)e-children-of-a-node Eerlijk gezegd zet ik nooit alles in 1 grote query vaak maakt dit dingen alleen maar langzamer dan bijvoorbeeld een paar losse ![]() | ||||||
Light | donderdag 5 april 2012 @ 23:25 | |||||
Is het niet makkelijker om te stellen dat node.id != parent.id ? Volgens mij ben je er al als je dat toeveoegt aan je query. | ||||||
Light | donderdag 5 april 2012 @ 23:28 | |||||
Als je de indexen goed hebt, kun je behoorlijk grote query's nog snel uitvoeren. Meerdere query's maken kan ook, maar dat vereist weer extra logica in PHP en die kost ook tijd. | ||||||
Swetsenegger | vrijdag 6 april 2012 @ 20:38 | |||||
Nee, zelfde probleem... als je maar 1 niveau diep bent klopt dat namelijk wel. | ||||||
Light | vrijdag 6 april 2012 @ 22:02 | |||||
Hmm... 't klinkt wel als een leuk probleem ![]() | ||||||
Swetsenegger | vrijdag 6 april 2012 @ 22:05 | |||||
![]() Niet mooi zeker niet binnen de elegante nested set oplossing, wel effectief. | ||||||
Light | vrijdag 6 april 2012 @ 22:12 | |||||
Da's ook een optie natuurlijk. Maar ik wil wel proberen een nettere oplossing te vinden. Moet ik alleen eerst die tabelstructuur voor mezelf helder krijgen. | ||||||
GlowMouse | vrijdag 6 april 2012 @ 22:32 | |||||
http://crisp.tweakblogs.n(...)-only-one-query.html | ||||||
Swetsenegger | vrijdag 6 april 2012 @ 22:39 | |||||
Ow maar mijn menu tree opbouwen doe ik ook met 1 query.
| ||||||
GlowMouse | vrijdag 6 april 2012 @ 22:43 | |||||
Jouw query is lelijker omdat hij niet via indices gesorteerd kan worden. | ||||||
Swetsenegger | vrijdag 6 april 2012 @ 22:52 | |||||
Ow vast, maar ik heb nu een menu tree waar je zonder problemen items tussen kan voegen, kan deleten, op kan schuiven, etc. Ideaal om klanten via een cmsje zelf een menu te laten bouwen. En ja... daar komen misschien 40 records in. Deze query draait in 15.2ms voor het volledige menu. | ||||||
smegmanus | zaterdag 7 april 2012 @ 11:42 | |||||
Ik wil een path veranderen (voor een applicatie die foto's weg schrijft naar een bepaalde dir) en gebruik het volgende command:
Het werkt echter niet, wat doe ik verkeerd? ![]() | ||||||
stefanhaan | zaterdag 7 april 2012 @ 11:44 | |||||
Dus moet het worden
Bv. of gebruik je mysql procedures / functions? | ||||||
kucher | zaterdag 7 april 2012 @ 11:47 | |||||
Bewaar alleen het relatieve pad in je db, bedank me later. | ||||||
smegmanus | zaterdag 7 april 2012 @ 11:50 | |||||
We gaan eens testen, bedankt voor zover. | ||||||
Darkomen | zaterdag 7 april 2012 @ 18:24 | |||||
Heren, Ik hoop dat jullie me weer eens kunnen helpen. Ik ben iets aan het bouwen dat de usertabellen van vbullentin 4 gebruikt. Hierin staat de usertimezone welke het verschil van hun tijd zone met GMT. bijvoorbeeld voor mijzelf +1 In mijn script wil ik data gaan opslaan en voor iedereen in de goede tijd weergeven. Dat leek mij vrij simpel. De user geeft een datum en tijd in, hier maak ik een tijdstamp van dmv mktime. Daar haal ik het verschil aan uren vergeleken met gmt af om de gmt tijd te krijgen. Deze sla ik op en als ik deze uit de database haal reken ik deze weer om naar de tijdzone van de user. de server staat op -5 van gmt, dit verreken ik als ik time() aanroep. Ik heb ook geprobeerd om de default tijd zonde van de server op gmt te zetten. Ik krijg het alleen niet voor elkaar om de datums goed te krijgen, misschien dat ik er gister te lang naar heb zitten staren...
| ||||||
kucher | zaterdag 7 april 2012 @ 18:43 | |||||
![]() | ||||||
Darkomen | zaterdag 7 april 2012 @ 18:55 | |||||
zoals je daarachter ziet ben ik veel aan het kutten geweest. Maar mijn 'concept' klopt toch? | ||||||
#ANONIEM | zaterdag 7 april 2012 @ 19:51 | |||||
Ik zou even kijken naar deze uitleg: http://www.php.net/manual/en/datetime.createfromformat.php | ||||||
The_Terminator | zaterdag 7 april 2012 @ 22:11 | |||||
Voordat je denkt dat je iets fout doet terwijl het niet zo is; momenteel is het voor ons GMT +2 omdat het zomertijd is. | ||||||
Swetsenegger | woensdag 11 april 2012 @ 14:26 | |||||
Zie ik iets over het hoofd ![]() Ik heb een tekstfile waarin ik userid's opsla. Die file lees ik in een array, en vervolgens controleer ik over de userID uit mijn sessie in die tekstfile staat. Zo niet, schrijf ik een variabele EN schrijf vervolgens de sessie ID naar de textfile.
Maar nou het lullige. Ik weet 100% zeker dat mijn sessie ID niet in de tekstfile staat (sterker nog, de file is leeg), maar $onload wordt niet geschreven de eerste keer dat ik de file laadt de fwrite wordt wel uitgevoerd. als ik vervolgens de tekstfile leeg maak en opnieuw laadt werkt het wel zoals verwacht. Delete ik echter alle history & sessies en probeer het weer van voor af aan gaat het weer mis. Het lijkt wel of de file schrijven wordt uitgevoerd waardoor de voorwaarde van de if false is.
| ||||||
GlowMouse | woensdag 11 april 2012 @ 14:50 | |||||
$_SESSION['uid'] zal wel leeg zijn, maar dat is standaard debugwerk. Regel 2 is overbodig. | ||||||
Swetsenegger | woensdag 11 april 2012 @ 14:59 | |||||
Nee hij is niet leeg, anders kan hij die ook niet schrijven naar de txt file op regel 8... Ik weet dat regel 2 overbodig is, die heb ik maar toegevoegd om te zien of dat het probleem oplost | ||||||
GlowMouse | woensdag 11 april 2012 @ 15:01 | |||||
var_dump($_SESSION['uid'], $wallPost) | ||||||
GlowMouse | woensdag 11 april 2012 @ 15:04 | |||||
of je browser cache | ||||||
Swetsenegger | woensdag 11 april 2012 @ 15:14 | |||||
string(15) "100003526677056" NULL -edit- Of je zet de goede variabele in je dumb string(15) "100003526677056" array(0) { } | ||||||
Swetsenegger | woensdag 11 april 2012 @ 15:15 | |||||
Ik delete alle history en browser gegevens tussen elke test | ||||||
GlowMouse | woensdag 11 april 2012 @ 15:26 | |||||
wijzig echo $onload; in die($onload), dan kun je hem niet missen | ||||||
Swetsenegger | woensdag 11 april 2012 @ 15:27 | |||||
ik loop nu tegen een facebook restrictie aan, kan niet meer verder testen ![]() | ||||||
Swetsenegger | woensdag 11 april 2012 @ 15:45 | |||||
Script loopt gewoon door. UID wordt in de txt file geschreven maar geen 'die'
Ik begrijp er geen flikker van ![]() | ||||||
boem-dikkie | woensdag 11 april 2012 @ 18:08 | |||||
Iemand een oplossing voor mijn kwestie, of een schop in de goede richting? Ik heb meerdere rows met informatie in een tabel. Eén van de kolommen in een rij heet tags. In die kolommen zitten de tags als volgt: leuk, hoi, hai. Nu wil ik de tags van alle rijen laten zien zonder dat ik duplicates heb. Ik heb bijv. twee rijen: ID | Tags 1 | Een, twee, drie 2 | Vier, vijf, twee, een. Nou wil ik als output: Een, twee, drie, vier, vijf. Ik krijg als ik gewoon de boel select en naar buiten gooi nu: Een, twee, drie, vier, vijf, twee, een. | ||||||
Sitethief | woensdag 11 april 2012 @ 18:29 | |||||
GROUP BY al geprobeerd? | ||||||
KomtTijd... | woensdag 11 april 2012 @ 18:48 | |||||
Waarom sla je meerdere tags in één veld op? | ||||||
boem-dikkie | woensdag 11 april 2012 @ 18:48 | |||||
Jep. Helaas. | ||||||
kucher | woensdag 11 april 2012 @ 19:39 | |||||
Meerdere tags in 1 veld is idd de WTF, daardoor kun je niet SELECT DISTINCT gebruiken of GROUP BY. Met een genormaliseerde database kan dit wel, je hebt dan een aparte tabel met tags en een koppeltabel om de tags ergens aan toe te wijzen. Met een stored procedure die alle tags in een tijdelijke tabel opslaat en vervolgens erop los joint kan het wel maar dat is beduidend meer werk, fout-gevoelig en lang niet zo snel in uitvoering. Iets beters dan dit schiet me niet zo gauw te binnen. Een recursieve query met een CTE zou nog een mogelijkheid kunnen zijn maar dat zou zomaar de WTF award van het jaar kunnen winnen. | ||||||
boem-dikkie | woensdag 11 april 2012 @ 19:42 | |||||
Hehe ja weet ik wel maar ik had geen zin om voor één of twee keer gebruik dat te doen. Maar goed, misschien maar wel gewoon doen. ![]() | ||||||
Keiichi | zaterdag 14 april 2012 @ 21:52 | |||||
Ik heb ruzie met unique keys in innodb icm character sets. Voorheen was alles latin1 encoding. Daar kon ik unique keys hebben die ook onderscheiden werden op puntjes op een a bv. 'ä' en 'a' waren elk uniek Met utf8-general of utf8-unicode, niet meer ![]() ![]() Hoe kan ik unique keys toch goed laten werken op deze manier? | ||||||
Keiichi | zaterdag 14 april 2012 @ 23:38 | |||||
Ik ben nog verder met character encodings aan het kloten, ik heb nu het volgende. De huidige pagina is ISO-8859-1. Ik ben er achter gekomen dat goede browsers automatisch UTF-8 of karakters buiten ISO omzet naar htmlentities. Hierdoor leek het altijd of UTF8 nooit een probleem geweest is. Probleem is dat ik de output uit de database overal door htmlentities ga afvangen, waardoor data onbruikbaar is (alle &'s worden vervangen door & waardoor eerder gemaakt htmlentities() letterlijk getoond worden. Daar kan niemand wat mee. Is er een mogelijkheid om htmlentities die bestaan met rust laten en alle ander karakters die geen htmlentitiy vormen wel door htmlentities() | ||||||
Pakspul | zondag 15 april 2012 @ 00:28 | |||||
Je bent gewoon genaaid ![]() Of nieuw datamodel opzetten en even een script runnen om de tags uit te lezen en in het nieuwe datamodel te plaatsen. | ||||||
Sitethief | zondag 15 april 2012 @ 00:49 | |||||
http://php.net/manual/en/function.htmlentities.php zet double_encode op false. | ||||||
Keiichi | zondag 15 april 2012 @ 01:49 | |||||
![]() Iets anders, welke karacters kunnen er in latin1 voorkomen? Ik heb een veld waar iemand gepresteerd heeft dit karakter in te zetten: http://www.fileformat.info/info/unicode/char/2018/index.htm -edit- Ik word vaak gebeten door karakter encoding nu ik alles naar UTF8 probeer te brengen. ![]() | ||||||
cablegunmaster | zondag 15 april 2012 @ 03:23 | |||||
Ik weet niet wat voor veld je bedoelt, maar als ik jou was en je wil weten wat je mag toepassen , dan zou ik alle velden bijlangs gaan en een lijst met Karakters samenstellen die er wel in mogen. ![]() | ||||||
Keiichi | zondag 15 april 2012 @ 13:15 | |||||
Is die collation daar niet voor bedoeld om ongeldige karakters niet (of anders) op te slaan? Nu lijkt het alsof dat ene specifieke UTF8 geldige karakter gewoon in latin1 voor kan komen. | ||||||
cablegunmaster | zondag 15 april 2012 @ 19:07 | |||||
Knip, | ||||||
drumminggod | zondag 15 april 2012 @ 19:08 | |||||
Hoi. Ik heb een gastenboek gemaakt. Alleen nu heb ik een probleempje. Ik heb 3 velden. • Naam • Bericht • captcha code Nu heb ik alles ingevoerd en moet hij naar mijn mysql gaan. Ik heb even een paar scripts bekeken maar wordt er niet wijzer van. Moet dit met: action="...."> ? Bvd code:
Hij moet dus de gegevens naar de database sturen. (laten zien snap ik wel ![]() | ||||||
cablegunmaster | zondag 15 april 2012 @ 19:09 | |||||
Je hebt nu het html gedeelte zelf af. de ACTION leid naar een php file. Deze zal je moeten aanmaken. Is dit de eerste keer met php? In dit bestand maak je de verwerking richting de DB en waar je de pagina daarna naartoe leid. Wat ik zelf doe is: 1. Connect met SQL server maken. (Xampp , dmv localhost of een online Database.) 2. Velden sanitizen en insert query opstellen. 3. bezoeker doorsturen naar een andere pagina. Connect: http://www.w3schools.com/php/php_mysql_connect.asp | ||||||
drumminggod | zondag 15 april 2012 @ 19:13 | |||||
Ik heb wel aardig ervaring met php. Maar dit wist ik niet!. Ik moet dus een .php maken. Daar naartoe linken en in de .php het gaan plaatsen in mijn database? (ik zal even op w3schools kijken van je linkje!) Dit is mijn totale code:
| ||||||
Pakspul | zondag 15 april 2012 @ 19:16 | |||||
SQL injecties interesseert je geen hol? | ||||||
cablegunmaster | zondag 15 april 2012 @ 19:17 | |||||
Je kan het naar zichzelf laten verwijzen door de pagina naam het eigen te maken. Daarnaast ,
Goed punt : ) en daarom ook altijd: http://php.net/manual/en/function.mysql-real-escape-string.php om je variabelen die je invoert. | ||||||
drumminggod | zondag 15 april 2012 @ 19:20 | |||||
Nou. Dan ben ik vanaf nu een eerste klas dummie.. Want ik zit nu dus echt totaal vast. Ik dacht dat een gastenboekje met een captcha code een eitje was... Mijn beveiliging is dus zo lek als een mandje? | ||||||
cablegunmaster | zondag 15 april 2012 @ 19:22 | |||||
Enkele simpele code en ik kon je DB verwijderen / Tabel verwijderen. ![]()
![]() | ||||||
drumminggod | zondag 15 april 2012 @ 19:26 | |||||
Oei. Dat klinkt niet goed ![]() | ||||||
cablegunmaster | zondag 15 april 2012 @ 19:29 | |||||
Om eerlijk gezegd te zijn ziet je code eruit als copy en paste van een online projectje. ![]()
| ||||||
drumminggod | zondag 15 april 2012 @ 19:33 | |||||
Ik heb de basis van internet. Dat klopt ![]() | ||||||
cablegunmaster | zondag 15 april 2012 @ 19:34 | |||||
Dat maakt je niet meteen een PHP expert ![]() ![]()
![]() | ||||||
drumminggod | zondag 15 april 2012 @ 19:36 | |||||
Het is verstandig om hem helemaal opnieuw te maken? In dat geval weet ik niet hoe ik moet beginnen :$. Haha. Ik kom er alweer achter dat ik er bar weinig van snap! | ||||||
Pakspul | zondag 15 april 2012 @ 19:36 | |||||
Waarom trouwens
En niet gewoon:
| ||||||
cablegunmaster | zondag 15 april 2012 @ 19:38 | |||||
Antwoord staat er al tussen om post met standaard bericht te voorkomen. De Isset is overbodig inderdaad. ![]() ![]() | ||||||
drumminggod | zondag 15 april 2012 @ 19:39 | |||||
Oke.. Ik begin helemaal overnieuw. Volgens mij is deze code echt bagger. Haha. Ik snap de waarom vragen namelijk niet ![]() | ||||||
cablegunmaster | zondag 15 april 2012 @ 19:40 | |||||
Zoek de php for dummies boek op , download XAMPP en ga daar mee bezig met experimenteren. ![]() Xampp is je localhost server. waarmee je op je eigen pc een website in php kan vertalen naar een normale webpagina. (webside scripting). Rest staat wel in het dummy boekje ![]() Of gebruik deze site om je wat te verdiepen, http://www.w3schools.com/php/php_intro.asp | ||||||
drumminggod | zondag 15 april 2012 @ 19:42 | |||||
Ik heb MAMP. Dat is ook een localhost server ![]() Ik zal experimenteren. Bedankt voor de moeite! | ||||||
Sitethief | zondag 15 april 2012 @ 19:59 | |||||
Ik ben zelf ook geen PHP-god, maar dit zinnetje in combinatie met jouw posts in dit topic deed me glimlachen ![]() | ||||||
drumminggod | zondag 15 april 2012 @ 20:01 | |||||
Ik werk er veel mee (school), maar blijkbaar snap ik er gewoon geen drol van. Altijd fijn als je denkt dat je het kan! | ||||||
Pakspul | zondag 15 april 2012 @ 20:05 | |||||
isset is wel mooier, anders krijg je een warning bij error_reporting(E_ALL); | ||||||
drumminggod | zondag 15 april 2012 @ 20:15 | |||||
Oke. Ik heb nu iets. Alleen als ik nu mijn naam NIET heb ingevuld. Of een bericht niet. Dan moet er eigenlijk een foutmelding komen... Alleen nu plaatst hij gewoon lege vakken in mijn db.. Zal wel iets kleins zijn maar voor mij onvindbaar op ww3schools | ||||||
cablegunmaster | zondag 15 april 2012 @ 20:24 | |||||
| ||||||
Pakspul | zondag 15 april 2012 @ 20:47 | |||||
Zo kun je meerdere velden checken ![]() | ||||||
#ANONIEM | zondag 15 april 2012 @ 21:44 | |||||
Ik zou geen empty gebruiken. Dan werkt een spatie alleen ook ![]() ![]() | ||||||
wipes66 | maandag 16 april 2012 @ 13:58 | |||||
Weet iemand nog een goede tool om php code mee te analyseren? Bv om ongebruikte variable/functies, foutieve opmaak etc mee te detecteren. Het liefst eentje met een webinterface (geen cli). ![]() | ||||||
#ANONIEM | maandag 16 april 2012 @ 15:10 | |||||
Ik zou gewoon iets als NuSphere of PHPstorm gebruiken. | ||||||
Light | maandag 16 april 2012 @ 21:17 | |||||
Een string met alleen een spatie is niet empty. | ||||||
#ANONIEM | maandag 16 april 2012 @ 23:53 | |||||
Nee dat is mijn punt. Je moet dus een adequate check doen op je POST. strlen() + trim() + weetikveel() | ||||||
Light | dinsdag 17 april 2012 @ 00:13 | |||||
Maar voordat je iets gaat doen met een post-variable, moet je wel controleren of de variable bestaat. Dat voorkomt notices, en ook die moet je niet willen. | ||||||
#ANONIEM | dinsdag 17 april 2012 @ 00:23 | |||||
Daarvoor gebruik je isset() niet empty. Zoals eerder aangegeven, maar alleen een isset is natuurlijk niet voldoende, net als empty dat niet is. | ||||||
Light | dinsdag 17 april 2012 @ 00:34 | |||||
Yep. Volgens mij bedoelen we hetzelfde maar omschrijven we het anders. | ||||||
Pakspul | dinsdag 17 april 2012 @ 08:30 | |||||
Dit is inderdaad een belangrijk punt, tevens kun je controleren of je formulier wel goed over komt. Je kunt dus andere acties ondernemen als ze niet ge-set zijn. Dit kan betekenen dat er met het formulier is gerommeld. | ||||||
drumminggod | dinsdag 17 april 2012 @ 10:31 | |||||
Bedankt! Het werkt! nog 1 resterend probleempje... Bij het herladen van mijn pagina verstuurd hij mijn berichtje net zo vaak als dat f5 wordt ingedrukt. Ik heb deze code:
Wat is er fout? Ik dacht aan buffer legen... alleen geen idee hoe dat netjes moet. [ Bericht 19% gewijzigd door drumminggod op 17-04-2012 10:39:24 ] | ||||||
cablegunmaster | dinsdag 17 april 2012 @ 11:36 | |||||
Wat is er mis mee? Dat je een tool nodig bent? ![]() | ||||||
Pakspul | dinsdag 17 april 2012 @ 11:39 | |||||
Na het schrijven naar de database de gebruiker doorsturen naar de goede pagina header("Location xxx"); ? | ||||||
cablegunmaster | dinsdag 17 april 2012 @ 11:40 | |||||
1. Simpelste oplossing is een redirect ![]() 2. een Check inbouwen dat als de text precies zo al voorkomt dat hij niet meer een Insert uitvoert maar doorgaat met redirecten.
Headers mogen geen output daarvoor hebben dus een reeks html + vervolgens de header kan tot fouten leiden.
![]() [ Bericht 11% gewijzigd door cablegunmaster op 17-04-2012 11:46:47 ] | ||||||
#ANONIEM | dinsdag 17 april 2012 @ 12:09 | |||||
Liever gewoon code waarbij er niks wordt getoond tot op het einde als alles verwerkt is ![]() ![]() | ||||||
Pakspul | dinsdag 17 april 2012 @ 12:51 | |||||
Dit, tussen door stukken al in elkaar zetten en op het laatste even layoutje er omheen rammen en er uit gooien. Dan kun je er zelf voor kiezen of er uberhaupt iets geprint moet worden en kun je veilig omgaan met header functies. | ||||||
cablegunmaster | dinsdag 17 april 2012 @ 16:38 | |||||
Hallo even een simpel vraagje waar ik toch al een tijdje mee zit Stel ik heb een categorie lijstje. 1 Appels 2 Peren 3 Bananen En nu wil ik ze opschuiven naar boven en naar beneden, hoe switch ik ze van ID? ![]() Ik zat te denken met tussen variabele. Stel ik wil Appels op 2 hebben. Dan moet 1 naar 2 toe en 2 op 1, Hoe kan ik dit aanpassen zonder dat ik problemen krijg in de DB? Of moet ik dan denken aan een Tussen variabele ? ![]() Na enig nadenken kom ik uit dat ik eerst moet kijken naar wat +1 met de ID doet daarvan het selecteer als er niks in zit kan ik het met een insert ernaar toe kopieren en anders als er wel iets inzit het pakken en met elkaar verwisselen. ![]()
En nu nog nadenken hoe ik de subgroepen ga doen van deze klasses ![]() Bah , nu update hij ook de rest ![]() Kan ik een tussenupdate met 0 gebruiken? Of is dit niet aan te raden? ![]() [ Bericht 9% gewijzigd door cablegunmaster op 17-04-2012 17:01:41 ] | ||||||
Pakspul | dinsdag 17 april 2012 @ 17:51 | |||||
Gebruik een order kolom. Haal eerst oude order nummer op en zet die in de nieuwe nummer kun je berekenen door de richting. | ||||||
cablegunmaster | dinsdag 17 april 2012 @ 17:57 | |||||
Is dat niet het probleem opschuiven? ![]() en als je een groot aantal hebt. dan heb je dat probleem alsnog. ff nadenken ![]() Dan heb ik een ID_order kolom en daarop kan ik het continue laten veranderen. Dus dan krijg ik een update die 1-2-3-4 met elkaar kan veranderen. Op basis van het ID van de rij ![]() Moet te doen zijn , alleen wat insert querys aan passen ![]() [ Bericht 12% gewijzigd door cablegunmaster op 17-04-2012 18:05:24 ] | ||||||
Pakspul | dinsdag 17 april 2012 @ 18:14 | |||||
opschuiven maakt toch niet uit, dan sorteer je toch gewoon op die kolom en heb je het allemaal goed. Als je ID nummers gaat veranderen dan begrijp je het idee van een primary key niet helemaal. | ||||||
JDx | woensdag 18 april 2012 @ 22:22 | |||||
Ah leuk, PHP forum, kan af en toe wel helpen bij vragen denk ik zo. | ||||||
Light | woensdag 18 april 2012 @ 23:11 | |||||
Daarom moet je pas output richting browser sturen nadat alle logica is geweest. Dan heb je daar geen last van. En als je toch die redirect-functie gebruikt, zoek dan eerst het verschil tussen Java en JavaScript op. | ||||||
drumminggod | donderdag 19 april 2012 @ 11:51 | |||||
Bij de redirect code krijg ik dit: Fatal error: Call to undefined function redirect() in D:\xxx\UsbWebserver\UsbWebserver\Root\xxx\gastenboek.php on line 147 De pagina heet gastenboek en de code om line 147 is:
| ||||||
boem-dikkie | donderdag 19 april 2012 @ 11:55 | |||||
Je gebruikt een functie die niet gedefinieerd is. Heb je zelf een functie gemaakt die redirect heet? Je kunt mits je geen HTML voor je code hebt staan header('location: gastenboek.php'); gebruiken. | ||||||
drumminggod | donderdag 19 april 2012 @ 11:57 | |||||
natuurlijk! In de header moet het ook staan! | ||||||
boem-dikkie | donderdag 19 april 2012 @ 11:59 | |||||
Ik snap je niet. | ||||||
drumminggod | donderdag 19 april 2012 @ 12:01 | |||||
In de header moet je toch de funtie definieren? | ||||||
boem-dikkie | donderdag 19 april 2012 @ 12:06 | |||||
Die functie kun je overal definieren zolang je hem maar include of er naar verwijst in het document waar je de functie aanspreekt. | ||||||
Sitethief | donderdag 19 april 2012 @ 13:49 | |||||
redirect() is niet een native functie van PHP, wat er bedoelt werd is http://php.net/manual/en/function.header.php | ||||||
Tijn | donderdag 19 april 2012 @ 13:58 | |||||
Een noscript-tag in 2012? Really? Verwacht je veel bezoekers met Netscape 2? ![]() | ||||||
cablegunmaster | donderdag 19 april 2012 @ 14:49 | |||||
failsafe ![]() | ||||||
Light | donderdag 19 april 2012 @ 21:25 | |||||
Gewoon lynx gebruiken ![]() | ||||||
Intrepidity | vrijdag 20 april 2012 @ 10:51 | |||||
Er bestaat ook nog zoiets als javascript uitschakelen of een javascript-blokker als plugin geinstalleerd hebben. Het is een kleine moeite om zo'n tag met een melding op te nemen, vooral voor webapplicaties die functioneel gezien vertrouwen op javascript. | ||||||
JDx | vrijdag 20 april 2012 @ 11:38 | |||||
Iemand trouwens een kort duidelijk tutorial om van /single.php?id=1 te maken /titel-van-post | ||||||
Sitethief | vrijdag 20 april 2012 @ 11:48 | |||||
http://www.workingwith.me.uk/articles/scripting/mod_rewrite Maar dat is eigenlijk deels apache ![]() | ||||||
JDx | vrijdag 20 april 2012 @ 12:05 | |||||
alles staat in een mapje: /artikel/ ik heb een .htacccess bestand met dit:
en een index.php met dit:
En dit werkt gewoon als ik dit doe: /artikel/appels Maar eigenlijk wil ik die niet in een aparte map hebben, dat /artikel/ zou ook dynamisch moeten zijn. | ||||||
mschol | vrijdag 20 april 2012 @ 12:24 | |||||
mapje hoger plaatsen en zoiets gebruiken?:
| ||||||
Tijn | vrijdag 20 april 2012 @ 14:52 | |||||
w3m ondersteunt wel Javascript ![]() | ||||||
#ANONIEM | vrijdag 20 april 2012 @ 16:10 | |||||
Dit is erg gevaarlijke code als je dit zo zou gebruiken. | ||||||
Pakspul | vrijdag 20 april 2012 @ 16:18 | |||||
Multiviews is dan nog geen eens het probleem, daar heb je nog mooiere oplossingen dan hoe je het nu ophaalt in de php file, maar waar vampier op doelt is het sql-injectie stuk. | ||||||
JDx | vrijdag 20 april 2012 @ 16:43 | |||||
Wat is er gevaarlijk aan dan? | ||||||
The_Terminator | vrijdag 20 april 2012 @ 18:51 | |||||
Je escaped de variable $p niet die direct afkomstig is uit de GET array en dus door gebruikers van het script beïnvloedbaar is. Je script is in deze staat vatbaar voor SQL injecties. Tip: http://php.net/manual/en/function.mysql-real-escape-string.php | ||||||
#ANONIEM | zaterdag 21 april 2012 @ 12:50 | |||||
Je moet sowieso nooit gebruikers input vertrouwen. Je moet ze allemaal behandelen als hackers. | ||||||
Tijn | zaterdag 21 april 2012 @ 13:31 | |||||
Dat iedereen kan doen wat 'ie wil met je gehele database. ![]() | ||||||
JDx | zaterdag 21 april 2012 @ 13:32 | |||||
Wat vaag, dit heb ik ook gewoon van een tutorial en gebruik ik al jaren op al mijn sites, moet ik dan een post gebruiken? | ||||||
Tijn | zaterdag 21 april 2012 @ 13:35 | |||||
POST of GET maakt niks uit, het gaat erom dat je de input filtert voordat je het in je query stopt, omdat anders mensen zelf queries kunnen gaan invoeren en daarmee je database kunnen uitlezen en misschien zelfs veranderen. Bijvoorbeeld zo:
Maar beter gebruik je gewoon een setje database functies waardoor je sowieso geen ruwe queries in je code hoeft te zetten. Bizar trouwens dat je al jaren werkt aan meerdere sites en dit niet weet, want dit is echt reden #1 waardoor websites gehacked worden. [ Bericht 3% gewijzigd door Tijn op 21-04-2012 13:42:02 ] | ||||||
themole | zaterdag 21 april 2012 @ 13:47 | |||||
Zou het als ik jou was snel oplossen, de onderste site in je signature is al vatbaar daarvoor. Verander ?id=9 maar eens in ?id='; krijg je meteen een error. | ||||||
Tijn | zaterdag 21 april 2012 @ 13:57 | |||||
Sowieso niet erg handig om errors weer te geven. |