Avatar billede dellevela Nybegynder
21. december 2003 - 19:23 Der er 17 kommentarer og
1 løsning

1 bruger til et brugernavn

man kan oprette flere brugere med det samme brugernavn hvordan sætter jeg en stopper for det?

opret.php:::::::::::::::

<form action="opret_ok.php" method="post">
Brugernavn: <input type="text" name="brugernavn" size="20"><br>
Password:&nbsp;&nbsp; <input type="password" name="password" size="20"><br>
E-mail:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" name="email" size="20"><br>
Lidt om dig:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<textarea name="om" rows="5" cols="21"></textarea><br>
<input type="submit" name="opret" value="Opret"></form>
< include("copyright.php"); ?>


opret_ok::::::::::::::::::::::::.

<?php
include("cont.php");
$result = mysql_query("select brugernavn from user where brugernavn = '$brugernanv'") or die(mysql_error());
$number = mysql_num_rows($result);
if ($number > 0) {
print "Desværre brugernavnet er optaget!!";
} elseif ($brugernavn && $password && $email && $om) {
include("cont.php");
mysql_query("insert into user (brugernavn, password, email, om) values ('$brugernavn', '$password', '$email', '$om')") or die(mysql_error());
mail("$email","Velkommen","
Hej $brugernavn

Velkommen til.

Dine oplysninger er:
Brugernavn: $brugernavn
Password: $password

Mvh Webmasteren","from: testkommersnart.com");
print "Du har nu oprettet brugeren: $brugernavn<br>";
print "Der er blevet sendt en mail til dig med dine oplysninger!!";
} else {
print "Du skal udfylde alle felterne!!";
}
?>


jeg har prøvet men jeg kan ikke få det til at virke!
Avatar billede jakobclausen Nybegynder
21. december 2003 - 19:26 #1
Inden et nyt brugernavn bliver oprettet skal du tjekke om det findes i forvejen:

$query = mysql_query ("SELECT * FROM tabel WHERE kolonne = 'brugernavn'");

For at tælle om dette giver resultat bruger du:

$count = mysql_num_rows($query)
if($count == 0)
{
  // opret ny bruger
}
else
{
  echo "Brugernavnet er optaget";
}
Avatar billede erikjacobsen Ekspert
21. december 2003 - 19:28 #2
Sæt index på, hvis det ikke er der allerede, og gør feltet "unique", så
får du en fejl, hvis navnet er der allerede. Det er bedre end at starte med
en select.
Avatar billede dellevela Nybegynder
21. december 2003 - 19:29 #3
alså det skal ind i opret.php


men kan du ikke lige prøve at sætte det ind forstår nemlig ikke lige helt hvad du mener men prøv at sætte det ind i scriptet så kan det være at jeg får mere ud af det!
Avatar billede dellevela Nybegynder
21. december 2003 - 19:44 #4
kan man få lidt mere hjælp for er stadigvæk lige noob til det her php!
Avatar billede dellevela Nybegynder
21. december 2003 - 21:33 #5
nogle der kan lave scriptet jeg vil godt give lidt flere point hvis i sætter det ind i scriptet så jeg bare kan kopire det!
Avatar billede erikjacobsen Ekspert
21. december 2003 - 21:40 #6
Du fik 2 løsninger. Det hjælper måske hvis du siger hvilken du så har tænkt dig at bruge.
Avatar billede dellevela Nybegynder
21. december 2003 - 22:38 #7
jeg er endelig lige glad det skal bare være en der ikke er for svær at lave for jeg er noob og jeg gør alt hvad jeg kan for at lære det her php så hvis du ville sætte det ind i mit script og så forklare hvad du gør for at få det til at virke!
Avatar billede erikjacobsen Ekspert
21. december 2003 - 22:43 #8
Hvis jeg skal forklare dig mere om min løsning skal du fortælle mig hvad
jeg har brug for at vide om din tabel - den skal jo sikkert laves om.
Avatar billede dellevela Nybegynder
21. december 2003 - 22:53 #9
CREATE TABLE user (
  id int(11) NOT NULL auto_increment,
  brugernavn text,
  password text,
  email text,
  om text,
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede erikjacobsen Ekspert
21. december 2003 - 23:11 #10
CREATE TABLE user (
  id int(11) NOT NULL auto_increment,
  brugernavn varchar(255),
  password varchar(255),
  email varchar(255),
  om text,
  PRIMARY KEY  (id),
  unique (brugernavn )
) TYPE=MyISAM;

Du skal ikke bruge "text" med mindre du absolut skal bruge så mange tegn.
Måske skal "om" også laves om - men det kan jeg ikke sige.

Nu får du en fejl hvis et brugernavn indsættes og det allerede findes.
Det kan du klare ved

  if (@mysql_query("insert ...")) {
    // ok
  } else {
    // findes allerede (eller en anden fejl)
  }
Avatar billede dellevela Nybegynder
21. december 2003 - 23:15 #11
kan du ikke sætte det ind i mit opret.php dokument?
Avatar billede erikjacobsen Ekspert
21. december 2003 - 23:20 #12
nej
Avatar billede dellevela Nybegynder
21. december 2003 - 23:23 #13
hmm hvorfor ikke jeg fatter hat af det du skriver kan du ikke forklare det nærmer som sagt JEG ER HELT NY inde for php!
Avatar billede dellevela Nybegynder
21. december 2003 - 23:25 #14
nå går iseng nu så ser jeg på det imorgen!
Avatar billede erikjacobsen Ekspert
21. december 2003 - 23:26 #15
Fordi jeg har andet at lave også, og fordi du får gratis hjælp. Jeg kan
lide at vejlede og løse problemer, og er det ikke nok for dig behøver du
sandelig ikke give mig point. Du har fået 2 løsninger, der burde være nok.
Er det ikke det, kan du
1) vente på andre der vil hjælpe mere - fair nok
2) lære noget mere om sagerne inden du begiver dig i lag med denne slags problemer.

Eksperten.dk opfattes af nogle som et "hjælp til selvhjælp"-sted.

(Nej, jeg er ikke sur, men jeg har altså andet der skal gøres)
Avatar billede dellevela Nybegynder
22. december 2003 - 09:51 #16
ok det ved jeg godt men det er da lidt svært når man får så lidt hjælp. du kan gøre sådan her..... nå men det kan jeg ikke rigtigt bruge til noget men lukker og opretter mit spg på et andet forum!
Avatar billede erikjacobsen Ekspert
22. december 2003 - 09:58 #17
Du kan selvfølgelig have en anden opfattelse, men du har fået masser af hjælp.
Bare ikke lige til at gøre det hele for dig. Hvis du kan få det på et andet
forum, så er du velkommen til det - men gør dig nu ikke for store forhåbninger ;)

Hvis du nu havde prøvet, og der var fejl i, så ville du få hjælp til at rette
det. Det er også sådan man lærer.
Avatar billede dellevela Nybegynder
22. december 2003 - 16:49 #18
hmm har fået det lavet + jeg fik en masse andet lave for små 15 point på en anden side! så de forklarede mig det de sagde ikke bare insæt et eller andet her og så må du sq selv lave resten. så skal vi nok hjælpe men never mind er lige glad c ya!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester