Posts by jopitan

    Tja, er is nooit gezegd dat programmeren even in vijf seconden kan.


    Een functie maken met:
    - De 3 server variabelen afgaat en de eerste die een ip heeft in een variabel plaatsen
    - IP checken of er een : in voor komt (strstr), zo ja? IPv6. Zo nee? IPv4
    - Is IP IPv4? Dan een ip2long erover heen gooien (hetzelfde als INET_ATON) of als je direct naar varbinary wilt converten gebruik je ook hier inet_pton en een mysql_real_escape_string
    - Is IP IPv6? Dan een mysql_real_escape_string en een inet_pton
    - Eruit halen? Checken of IPv4/6 is. Is IPv4? long2ip eroverheen. Is IPv6? inet_ntop eroverheen.


    Het is nu alleen een kunst er een geschikte kolom ervoor te vinden. Geen tijd op het te optimaliseren? Varchar is your friend :) Je zou ook voor een VARBINARY kunnen gaan. Bij die oplossing moet je alleen nog van de IPv4 adressen een binary maken.

    Je zei dat hij op de 32 bit het wel deed?


    Maar okay. Heb je je moederbord doos nog? Zo ja, gebruik dan die CD waar de drivers opstaan. Mogelijk dat dit je probleem kan oplossen, you never know.

    Dat is redelijk simpel naar mijn mening. Je maakt een kolom in je database met een varbinary( 16 ) aan. Deze kolom zal uiteindelijk je IP bevatten.


    Daarnaast moet IPv6 wel enabled staan in PHP. Bij zowel IPv4 en IPv6 haal je er een inet_ntop en inet_pton (PHP >= 5.1.0) overheen.


    Dus het zal dan als volgt zijn:


    PHP
    $_IPton = inet_pton($_SERVER['REMOTE_ADDR']); //Kan ook $_SERVER['HTTP_X_FORWARDED_FOR'] en $_SERVER['CLIENT_IP'] zijn dus gewoon een functie daarvoor maken.
    
    
    $_IP = inet_ntop($_IPton);


    Waarom doe je eerst inet_pton en daarna inet_ntop?
    Zo maak je de variabel een consistente string. Je kunt er namelijk niet vanuit gaan dat deze altijd consistent is.


    PHP Manual (inet_ntop):
    This function converts a 32bit IPv4, or 128bit IPv6 address (if PHP was built with IPv6 support enabled) into an address family appropriate string representation.


    PHP Manual (inet_pton):
    This function converts a human readable IPv4 or IPv6 address (if PHP was built with IPv6 support enabled) into an address family appropriate 32bit or 128bit binary structure.


    Als de hierboven code een error voor je oplevert probeer dan het volgende:


    Maak twee kolommen aan:
    - ipv4 (INT UNSIGNED)
    - ipv6 (BINARY 16)


    Dan wanneer je een insert doet met een IPv4 adres kun je als value het volgende doen:
    INET_ATON($_IP)


    Als je dan weer het IP uit de database wilt halen kun je dat in de select query doen door om de kolom INET_NTOA te zetten.


    Bij een IPv6 doe je het volgende in een insert query:
    mysql_real_escape_string(inet_pton($_IP))


    En om het weer uit de database te halen doe je gewoon een normale select query en in een variabel doe je inet_pton.


    E.g. $ipv6 = inet_ntop($select['ipv6']);


    Wat nou als ik ze gecombineerd wil hebben?
    Dan kun je een functie schrijven die checkt of het IP een IPv4 of een IPv6 type is. Dan kun je het bovenstaande gewoon hergebruiken alleen moet je voor de kolom waar het IP inkomt een geschikte kolomtype selecteren die beiden goed ondersteunen.

    Windows 7 32 bit: ~16GB
    Windows 7 64 bit: ~20GB
    Windows XP 32 bit: ~1,5GB
    Windows XP 64 bit: ~2GB


    Dat de drivers op je 32 bit XP wel draaiden en niet op je 64 bit XP is een bekend verschijnsel. Waarschijnlijk zijn dit gewoon 32 bit drivers en komen ze wel in het lijstje te staan van 64 bit drivers op de Asus website (komt vaker voor). Het is bekend dat de 64 bit XP absoluut geen 32 bit drivers kan draaien.


    Daarnaast kun je Windows 7 gewoon installeren met een "gekraakte" key en dan moet je bepaalde Windows updates nooit installeren. Welke updates (hun nummers) je niet moet installeren staat wel op internet of in de comments onder de torrent.

    Recaptcha plugin? Input veld buiten de gebruikers zichtveld maken? Vragen stellen die verifieren of je human bent of niet. Zoals een simpele rekensom van 3 getallen voluit geschreven.

    Jep daarom zei ik ook voor de grap dat je het in NTFS moest formatteren, verkleint de grootte nog meer. Maar het staat je wel toe om grote bestanden te kopieeren.


    Je kont trouwens ook gewoon rechtermuisknop op de drive doen in mijn computer (deze computer, kan ook) en dan formatteren drukken.


    Maarja de format neemt altijd wat ruimte in ;)

    Je kunt een drive op verschillende manieren formateren. Hieronder valt ook FAT alleen deze staat maar een bestandsgrootte van maximaal 4GB data toe om gekopieerd te worden. Dus ISO's van 6 GB kun je niet kopieren naar een FAT formatted drive. Daarvoor is de NTFS format.

    Er is niks mis mee dat 64GB wordt gezien als 59.6GB.


    Een USB stick (en andere hardware, zoals HDD en SSD) worden anders berekend. Drive producenten gebruiken decimale bytes in plaats van binaire bytes. Het is te vergelijken met mijl en kilometer. 1 mijl lijkt korter dan 1,609 KM terwijl het exact even groot is.


    De makkelijkste manier om te berekenen wat je grootte van je HDD/SSD/USB wordt is om het drie keer door 1024 te delen. Stel je hebt een terabyte HDD
    1TB = 1000GB
    1000GB = 1.000.000.000.000
    1.000.000.000.000 / 1024 = 976.562.500
    976.562.500 / 1024 = ~953.674
    953.674 / 1024 = ~931


    Dus de exacte grootte van jouw HDD zou in binaire decimalen 931GB zijn. Daarnaast staat 1TB beter dan 931GB.


    Daarnaast is 71 euro niet gek voor een USB 3.0 USB. Het feit dat USB 3.0 nog relatief nieuw is zorgt al voor de hogere prijs. Je had bijvoorbeeld een USB 2.0 Sandisk Cruzer 64GB kunnen kopen voor maar 43 euro. Dus het is ook de kwaliteit waar je uit kiest.


    Je hebt immers bij jouw USB stick ook vijf jaar garantie (erg ongewoon, standaard 2 jaar) en hij kan een G kracht aan van 40 en is daarnaast ook nog eens waterproof tot 200M diepte. Dus jij betaalt gewoon voor de kwaliteit en de snelheid op het moment ;)


    Moet je trouwens eens je USB stick nog eens formatteren naar een NTFS file format (Standaard staat dit op FAT, wat een max van 4GB per file toestaat)

    Citaat van eeyk

    Zo moeilijk is een happyhour script toch niet om te maken?


    Zo moeilijk is het ook niet om je eigen hamburger te maken en toch koop je er soms een bij de Mc Donalds. Puur om het gemak en de simpelheid.


    Als je eigenlijk bij alles zo gaat redeneren dan kun je alles wel zelf maken. Als je gemak wilt kun je deze gewoon kopen.

    Leer eerst maar eens google te gebruiken. Geen eigen inzet what so ever. Wat heb je zelf allemaal al gevonden?

    Dat laatste stukje is alleen voor als je meerdere bestanden gaat uploaden, wat hier niet het geval is. Als je toch meerdere bestanden zou willen uploaden dan moet je ook in de foreach een query uitvoeren met het toevoegen van een rij.
    Of je moet de bestanden in een losse tabel zetten die gekoppeld staan met de rij met de namen enzov. Dit voorkomt dan dubbele rijen met dezelfde naam enzovoort.


    PHP
    if(empty($naam) || !isset($naam) {


    kan gewoon

    PHP
    if(empty($naam)) {


    zijn aangezien je op het begin al checkt of hij wordt geset of niet. Als dit niet zo is wordt hij standaard empty ingevuld.

    Ik weet niet zeker of dit werkt, heb het even overnieuw geschreven. Heb het niet kunnen testen namelijk