login  Naam:   Wachtwoord: 
Registreer je!
 Forum

activatie code

Offline kickasgamer - 03/08/2007 12:09
Avatar van kickasgamerPHP ver gevorderde ik heb een klain stukje code gemaakt voor een activatie code, maar hij levert niet het gewenste resultaat
ik wil een activatie code van 32 tekens, en liefst met letters en cijfers

deze code doet nu alleen cijfers en soms maar 1 teken en soms 5 ofzo maar nietd e 32 die ik wil

  1. $actcode = md5(rand(1, 1000));


6 antwoorden

Gesponsorde links
Offline Martijn1989 - 03/08/2007 12:13 (laatste wijziging 03/08/2007 12:13)
Avatar van Martijn1989 PHP ver gevorderde Aub ;) :

  1. <?php
  2. function random($size) {
  3.  
  4. $activation = "";
  5. mt_srand((double) microtime() * 1000000);
  6.  
  7. while (strlen($activation) < $size) {
  8.  
  9. $choose = chr(mt_rand (0,255));
  10. if (eregi("^[a-zA-Z0-9]$", $choose)) $activation = $activation.$choose;
  11.  
  12. }
  13.  
  14. return ($activation);
  15. }
  16. ?>


En dan gebruik je hem zo :

  1. <?php
  2.  
  3. $actcode = random(32);
  4.  
  5. ?>
Offline kickasgamer - 03/08/2007 12:35 (laatste wijziging 03/08/2007 12:42)
Avatar van kickasgamer PHP ver gevorderde ok bedankt 

EDIT: raar maar nu dat ik jou functie gebruik komt bij de rij "actcode" (in de DB) 0 te staan in plaats van een string van 32 tekens
Offline Thomas - 03/08/2007 12:48
Avatar van Thomas Moderator md5() geeft altijd een 32-karakter tellende string terug, mits de invoer een string is. Als je niet werkt volgens de specificatie van de functie kunnen de resultaten anders zijn dan je misschien verwacht.
Offline kickasgamer - 03/08/2007 12:52
Avatar van kickasgamer PHP ver gevorderde ja met die md5 oplossing van mij werkt dus niet omdat ik alleen werk met cijders, maar ik snpa niet wat fout i aan de oplossing van martijn

het lijkt goed te gaan geen error's ofzo maar gewoon een 0 in de DB 
Offline Ultimatum - 03/08/2007 13:24
Avatar van Ultimatum PHP expert Wat voor type is je veld? Lijkt op een int, maar met die functie die Martijn gaf heb je zowel cijfers als letters.
Offline kickasgamer - 03/08/2007 14:08
Avatar van kickasgamer PHP ver gevorderde ik had niet goed gekeken het veld in de DB was een int, ik heb het veranderd naar een varchar en nu werkt het, bedankt 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.197s