Slettet bruger
11. maj 2010 - 09:16
Der er
32 kommentarer og 1 løsning
Unique bruger id, hvordan ?
Hej. Jeg skal have lavt et unique bruger id til min bruger formular, hvordan kan jeg lave det. har prøvet med det her $customerid_unique = uniqid (rand (),true); men ved ikke om det virker fordi den gider ikke ligge det ind i databasen. Kan i hjælpe mig..
Annonceindlæg fra Computerworld it-jobbank
Mød 3.500+ it-talenter på IT-DAY 2026
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
<ole>
Hvad sker der mon, hvis du skriver:
$customerid_unique = uniqid (rand (),true); print $customerid_unique;
- og hvad betyder:
"den gider ikke ligge det ind i databasen."?
Hvad gør du?
Hvad sker der?
Hvad sker der ikke?
Hvad formoder du skulle ske?
/mvh
</bole>
Slettet bruger
11. maj 2010 - 09:24
#2
Jeg prøvet at ligge $customerid_unique ind i mysql_query: og if(isset($_POST['signup'])){ create_sql_table(); $customerid_unique = mysql_real_escape_string($_POST['customerid_unique']); $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $email = mysql_real_escape_string($_POST['email']); $firma = mysql_real_escape_string($_POST['firma']); $name = mysql_real_escape_string($_POST['name']); $lastname = mysql_real_escape_string($_POST['lastname']); $adress = mysql_real_escape_string($_POST['adress']); $city = mysql_real_escape_string($_POST['city']); $zipcode = mysql_real_escape_string($_POST['zipcode']); $ip = mysql_real_escape_string($_POST['ip']); $timestamp = mysql_real_escape_string($_POST['timestamp']); og mysql_query: $add = mysql_query("INSERT INTO `icmsbruger` (`customerid_unique`, `username`, `password`, `email`, `firma`, `name`, `lastname`, `adress`, `city`, `zipcode`, `ip`, `timestamp`) VALUES('$_POST[$customerid_unique]', '$_POST[username]', '$_POST[password]', '$_POST[email]', '$_POST[$firma]', '$_POST[name]', '$_POST[lastname]', '$_POST[adress]', '$_POST[city]', '$_POST[zipcode]', '$_POST[ip]', '$_POST[timestamp]')"); og har lagt $customerid_unique i et hidden text felt, men ved ikk om det er sådan jeg skal gøre det.
Slettet bruger
11. maj 2010 - 09:26
#3
jeg vil have så hver brugere får deres egen unique id, når de har oprettet.
kan du ikke bare lave en kolonne i din database der er unik og autoincrementer, så kører det helt automatisk og der kommer IKKE dubletter!
Undskyld, men hvad bruger du denne klods til:
$customerid_unique = mysql_real_escape_string($_POST['customerid_unique']); $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $email = mysql_real_escape_string($_POST['email']); $firma = mysql_real_escape_string($_POST['firma']); $name = mysql_real_escape_string($_POST['name']); $lastname = mysql_real_escape_string($_POST['lastname']); $adress = mysql_real_escape_string($_POST['adress']); $city = mysql_real_escape_string($_POST['city']); $zipcode = mysql_real_escape_string($_POST['zipcode']); $ip = mysql_real_escape_string($_POST['ip']); $timestamp = mysql_real_escape_string($_POST['timestamp']);
Det ser ud, som om du efterfølgende banker brugerinput helt ukritisk ind i databasen
Slettet bruger
11. maj 2010 - 10:06
#6
Det bruger jeg til : if(isset($_POST['signup'])){ $customerid_unique = mysql_real_escape_string($_POST['customerid_unique']); $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $email = mysql_real_escape_string($_POST['email']); $firma = mysql_real_escape_string($_POST['firma']); $name = mysql_real_escape_string($_POST['name']); $lastname = mysql_real_escape_string($_POST['lastname']); $adress = mysql_real_escape_string($_POST['adress']); $city = mysql_real_escape_string($_POST['city']); $zipcode = mysql_real_escape_string($_POST['zipcode']); $ip = mysql_real_escape_string($_POST['ip']); $timestamp = mysql_real_escape_string($_POST['timestamp']); }
Slettet bruger
11. maj 2010 - 10:07
#7
jeg kan jo ikke sætte 2 kolonner til auto increment....
Slettet bruger
11. maj 2010 - 10:13
#8
ligesom på tweakup.dk : fx Bruger nr.: 23020
"Det bruger jeg til" >> Ja, jeg ved jo godt, hvilken kodestump jeg kopierede det fra - men hvad bruger du det til?
Slettet bruger
11. maj 2010 - 10:17
#10
i min register.php, for at tjekke om det hele er der, og køre en validering på formularen...
hvorfor vil du have 2 unikke kolonner i din tabel?
Slettet bruger
11. maj 2010 - 10:20
#12
min validering på min register form: f(empty($username)){$action['result'] = 'error'; array_push($text,'Udfyld venligst brugernavn !.'); } if(empty($password)){$action['result'] = 'error'; array_push($text,'Udfyld venligst password !.'); } if(empty($email)){$action['result'] = 'error'; array_push($text,'Udfyld venligst email !.'); } if(empty($name)){$action['result'] = 'error'; array_push($text,'Udfyld venligst navn !.'); } if(empty($lastname)){$action['result'] = 'error'; array_push($text,'Udfyld venligst efternavn !.'); } if(empty($adress)){$action['result'] = 'error'; array_push($text,'Udfyld venligst addresse !.'); } if(empty($city)){$action['result'] = 'error'; array_push($text,'Udfyld venligst by !.'); } if(empty($zipcode)){$action['result'] = 'error'; array_push($text,'Udfyld venligst post nr !.'); }
Slettet bruger
11. maj 2010 - 10:27
#13
jeg har en id, og en bruger id.
Slettet bruger
11. maj 2010 - 10:34
#14
men vil i ikke bare hjælpe mig med at få det her ind i mysql, har fundet det her script. //set the random id length $random_id_length = 7; //generate a random id encrypt it and store it in $rnd_id $rnd_id = crypt(uniqid(rand(),1)); //to remove any slashes that might have come $rnd_id = strip_tags(stripslashes($rnd_id)); //Removing any . or / and reversing the string $rnd_id = str_replace(".","",$rnd_id); $rnd_id = strrev(str_replace("/","",$rnd_id)); //finally I take the first 10 characters from the $rnd_id $rnd_id = substr($rnd_id,0,$random_id_length); echo "$rnd_id";
hvad har du forsøgt, siden det ikke virker?
Slettet bruger
11. maj 2010 - 10:47
#16
jeg har prøvet: //set the random id length $random_id_length = 7; //generate a random id encrypt it and store it in $rnd_id $rnd_id = crypt(uniqid(rand(),1)); //to remove any slashes that might have come $rnd_id = strip_tags(stripslashes($rnd_id)); //Removing any . or / and reversing the string $rnd_id = str_replace(".","",$rnd_id); $rnd_id = strrev(str_replace("/","",$rnd_id)); //finally I take the first 10 characters from the $rnd_id $rnd_id = substr($rnd_id,0,$random_id_length); og i min mysql_query: $add = mysql_query("INSERT INTO `icmsbruger` (`rnd_id`, `username`, `password`, `email`, `company`, `name`, `lastname`, `adress`, `city`, `zipcode`, `ip`, `timestamp`) VALUES('$_POST[$rnd_id]', '$_POST[username]', '$_POST[password]', '$_POST[email]', '$_POST[$company]', '$_POST[name]', '$_POST[lastname]', '$_POST[adress]', '$_POST[city]', '$_POST[zipcode]', '$_POST[ip]', '$_POST[timestamp]')"); og har prøvet med et hidden text felt, men kan ikke få det ind i databasen. <td><input type="hidden" name="rnd_id" value="<?php echo $rnd_id; ?>" /></td>
$_POST[$rnd_id] indeholder jo heller ikke det id der bliver genereret - du skal jo bruge den variabel du smider id'et i: $rnd_id
ahh sorry, havde ikke set de sidste linjer... har du prøvet at udskrive dit post-array? for at se om det indeholder der forventede...
Slettet bruger
11. maj 2010 - 11:12
#19
nej der kommer det ikke med... jeg forstår ikke hvad jeg gør galt.
Slettet bruger
11. maj 2010 - 11:14
#20
det bliver kun vist i denne text felt, men det kommer ikke med i databasen..
Slettet bruger
11. maj 2010 - 11:46
#21
jeg har selv løst det... men tak.
Slettet bruger
11. maj 2010 - 12:47
#23
Som sagt, kunne den ikke køre med $_POST, men hvis man fjernede $_POST fra den i mysql_queryen. så virkede det.
Det kan ikke være $_POST, der giver problemer. Du har andre problemer =)
$_POST[$rnd_id] i din sql-query er jo osse forkert, det skal være $_POST[rnd_id] eller bedre '".$_POST['rnd_id'].".
- den havde jeg overset, splazz. Men min pointe med #5 var, at der slet ikke er grund til hele den omtalte kodeblok, hvis spørgeren bruger $_POST i sin query ... udover, at det er det rene selvmord =)
-> ole, ja det havde jeg osse første gang jeg kiggede... men ja, umiddelbart giver det ikke ret meget mening at escape de strenge...
Ehhh ... det giver absolut ingen mening at indsætte bruger input uden at sikre sig, indholdet ikke er skadeligt. Min pointe var, at det er det rene selvmord, ikke at sikre sig ;o) At jeg så ville bruge MySQLI eller PDO - i stedet for at 'hacke' mig rundt om sikkerhedsproblemer - er en anden ting
ja ja den er jeg med på, det var måske lidt forkert formuleret, det jeg skrev :) det jeg mente var at ikke gav mening at escape alle de strenge og så ikke bruge de nye variabler...
*LoL* ... en truende enighed trænger sig på! ;D
Slettet bruger
19. maj 2010 - 12:48
#31
lukkes
Vi tilbyder markedets bedste kurser inden for webudvikling