Code aan lid toekennen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Jan DS

Jan DS

13/01/2009 17:36:00
Quote Anchor link
Ik zo graag mijn leden een code geven van 5 tekens,
uiteraard mag geen twee maal dezelfde code gebruikt worden;
Hoe moet ik dat oplossen?
 
PHP hulp

PHP hulp

30/11/2024 02:51:05
 
Nicoow Unknown

Nicoow Unknown

13/01/2009 17:38:00
Quote Anchor link
Stel jezelf eerst eens de vraag of zoiets echt nodig is.
Als het om een id o.i.d. gaat, dan is het nergens voor nodig, is het voor de sier, dan heb ik over een minuutje of vijf een code voor je (nadat je hebt gezegd dat het echt nodig is, ik ga niet voor jan met de korte achternaam werken :P
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function generate_rand_string($length)
{

      // begin met een leeg wachtwoord.
      $password = "";
      // alle mogelijke characters
      $possible = "23456789bcdfghjklmnopqrstvwxyzBCDFGHJKLMNPQRSTVW";    
      // counter op 0
      $i = 0;    
      // Voeg random characters toe, totdat $length is bereikt
      while ($i < $length)
      {

    // Neem een willekeurige character
        $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);        
        $password .= $char;
        $i++;
    }

    return $password;
}

?>

dat is dus de functie.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$new_code
= generate_rand_string(5);
$query = SELECT code FROM users WHERE code = '". $new_code ."';
$result = mysql_query($query);
while(mysql_num_rows($result) != 0)
{

    $new_code = generate_rand_string(5);
    $query = SELECT code FROM users WHERE code = '". $new_code ."';
    $result = mysql_query($query);
}

echo $new_code;
?>


Zoiets moet het dan denk ik worden
Gewijzigd op 01/01/1970 01:00:00 door Nicoow Unknown
 
Jan DS

Jan DS

13/01/2009 17:43:00
Quote Anchor link
Wel, het is de bedoeling om a.d.h.v. die code in te loggen.
Het lid tikt zijn code in en komt zo uit bij zijn info.
 
Joren de Wit

Joren de Wit

13/01/2009 17:47:00
Quote Anchor link
Genereer een random string (zie de vele scripts in de scriptlib) en sla die op bij de betreffende gebruiker in de database. Controle of de string uniek is zal in de database moeten gebeuren door een UNIQUE constraint op de betreffende kolom aan te brengen.

Als de INSERT query een foutmelding met foutnummer 1062 teruggeeft, weet je dat een UNIQUE constraint overtreden is. Als je verder geen andere UNIQUE constraints in die tabel hebt, kun je er dus vanuit gaan dat die code al bestond en zul je een nieuwe code moeten genereren.

ps. De reden dat je de controle in de database wilt uitvoeren is dat een SELECT query altijd gegevens uit het verleden ophaalt. Als jij eerst alle reeds bestaande codes selecteert, in een array zet en vervolgens controleert of jouw aangemaakte code daar niet tussen staat, zou het kunnen zijn dat die code in de tussentijd toch aangemaakt is en in de database is gezet.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Nicoow Unknown

Nicoow Unknown

13/01/2009 18:04:00
Quote Anchor link
Blanche zijn methode, is natuurlijk veel beter, maar dat is volgens mij vrij makkelijk aan te passen in mijn voorbeeld,
Dan krijg je dus gewoon een insert query, en word de if een if(mysql_error_number //geen idee hoe deze functie heet precies, moet je maar even opzoeken.
 
Jan DS

Jan DS

13/01/2009 18:07:00
Quote Anchor link
Ok, bedankt
 
Eddy E

Eddy E

13/01/2009 19:01:00
Quote Anchor link
Of:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php


function mrand($l,$h,$t,$len=false)
    {

    if($l>$h)
        {

        $a=$l;
        $b=$h;
        $h=$a;
        $l=$b;
        }

    
    if( (($h-$l)+1)<$t || $t<=0 )
        return false;
    
    $n = array();
    
    if($len>0)
        {

        if(strlen($h)<$len && strlen($l)<$len)
            return false;
        if(strlen($h-1)<$len && strlen($l-1)<$len && $t>1)
            return false;
                
        do
            {
            $x = rand($l,$h);
            if(!in_array($x,$n) && strlen($x) == $len)$n[] = $x;
            }

        while(count($n)<$t);
        }

    else
        {    
        do
            {
            $x = rand($l,$h);
            if(!in_array($x,$n))$n[] = $x;
            }

        while(count($n)<$t);
        }

    
    return $n;
    }


// gebruik:
$aantal_random_en_unieke_ints = mrand(0,9999999,$aantal,$lengte);
?>


In die $aantal_random_en_unieke_ints krijg je nu $aantal unieke en random ints tussen de 0 en 99999999999 met een lengte van $lengte.
Dit zou handig kunnen zijn als je de code uniek moet zijn voor de gebruiker.
Bij meerdere gebruikers is het gebruik van een database onontbeerlijk.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.