Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Php

Skapad av Borttagen, 2013-01-01 13:28 i Webbutveckling & Programmering

1 749
11 inlägg
1 poäng
anonym215
Visningsbild
P 28 Katthammarsvik Hjälte 1 984 inlägg
1
Tja!


Jag tänkte fixa en grej på min hemsida på att man inte kan registrera sig med samma användarnamn som en annan har. Jag har tänkt lite hur jag skall gå tillväga men vet inte exakt hur jag ska göra. Jag måste ju hämta alla usernames i databasen och sedan måste jag loopa igenom värdet av username som användaren angav. Och om användaren har fyllt i ett namn som redan finns så ska registreringen avbrytas, eftersom namnet finns redan.

När man hämtar tabellen username och sätter den i värdet x, blir variabeln x en array automatiskt då?

lol

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Unkn0wn
Visningsbild
P 19 Hjälte 1 124 inlägg
0

Svar till anonym215 [Gå till post]:
Dra bara en MYSQL query som drar en "where".
Gör sedan en "if statement" på användarnamnet för att se om det finns eller inte.

anonym215
Visningsbild
P 28 Katthammarsvik Hjälte 1 984 inlägg
Trådskapare
0

Svar till JACKTHERIPS [Gå till post]:
Har du någon exempel kod? är nybörjare och kan nt så mkt. Men jag har inte hört talats om where än så ska kolla upp det i phpguiden

lol

Klas-Kenny
Visningsbild
P 31 Växjö Hjälte 12 128 inlägg
0
mysql_num_rows() är en mysig funktion, använd den. Finns användarnamnet redan så blir resultatet != 0.

Rätt verktyg till rätt arbete - Makaroner äts med sked.

anonym215
Visningsbild
P 28 Katthammarsvik Hjälte 1 984 inlägg
Trådskapare
0

Svar till Klas-Kenny [Gå till post]:
ska kolla upp funktionen. tack! så här ser min kod ut nu:


http://pastebin.com/0BQPPs1J

men det funkar icke

lol

Pankie
Visningsbild
P 32 Nödinge Hjälte 4 192 inlägg
0
Svar till anonym215 [Gå till post]:
Du får göra en if och använda div av mysql_num_rows()

exempelvis:
$query = " Hämta från MYSQL ";
$res = mysql_query($query);

if (mysql_num_rows($res) == 1){
// utför kod om användaren redan finns

} else {
// utför kod om användaren inte finns

}

Jag tror man kan göra så faktiskt!

Din mamma behandlar fler förfrågningar än HTTP

anonym215
Visningsbild
P 28 Katthammarsvik Hjälte 1 984 inlägg
Trådskapare
0

Svar till Pankie [Gå till post]:
http://pastebin.com/BEcBtRHF

menar du så? funkar iaf inte.

lol

Pankie
Visningsbild
P 32 Nödinge Hjälte 4 192 inlägg
0

Svar till anonym215 [Gå till post]:
if(mysql_num_rows($query) != 0)
{
echo "Användarnamnet finns redan";
}
else
{
// utför kod om användaren inte finns.
}

Din mamma behandlar fler förfrågningar än HTTP

Klas-Kenny
Visningsbild
P 31 Växjö Hjälte 12 128 inlägg
0
Svar till anonym215 [Gå till post]:
I den sista koden du postade nu så kör du ju aldrig koden som sätter in datan i databasen, du bara kollar ju om användaren finns.

Och så har du fel på rad 14, den ska vara
Ett stycke php-kod:
$query = mysql_query("SELECT Username FROM login WHERE Username = '$username'");


Sen så bör du inte använda == 1 i det här fallet, utan !=0.
Anledningarna är att dels så vet man aldrig om det hänt någonting galet så att det lyckats registreras mer än en användare med samma användarnamn, då kommer resultatet alltså vara 2 (eller mer om det är ännu fler) och din kod kommer att tro att användarnamnet inte är upptaget eftersom att resultatet inte är 1, det är något större tal. Kollar du istället att resultatet INTE ÄR 0, så utesluter du sådana problem.

Sen så blir koden vettigare att läsa med != 0, eftersom att det ju är det koden ska göra. Ifall antalet användare med namnet inte är noll, så är det upptaget.


Tillägg av Klas-Kenny 2013-01-01 15:03

För övrigt, släng på kryptering på lösenorden. De ska ALDRIG lagras i klartext, inte ens vid bara test då det leder till dålig vana.

Rätt verktyg till rätt arbete - Makaroner äts med sked.

anonym215
Visningsbild
P 28 Katthammarsvik Hjälte 1 984 inlägg
Trådskapare
0

Svar till Klas-Kenny [Gå till post]:
Tack det funkar nu :D Och det där med hashade lösenord tänkte jag fixa efter jag hade fixat detta!

lol

Kulan
Visningsbild
P 27 Hjälte 540 inlägg
0
Svar till anonym215 [Gå till post]:
För att hasha lösenorden kan du använda SHA512 med hjälp av hash funktionen:

Ett stycke php-kod:


$string = "hamsterpaj";
hash("SHA512", $string);



:)

yolo


Forum » Datorer & IT » Webbutveckling & Programmering » Php

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons