/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Brugeroprettelse
Fra : zanoniii@gmail.com


Dato : 12-05-06 16:19

Hey!

Jeg er igang med at lave en side med brugerlogin. Til dette skal man
kunne lave sin egen bruger. Problemet er bare at jeg vil sætte nogen
krav når man skal oprette denne bruger men det virker ikke helt.

Det man skal udfylde for at oprette en bruger:
<form method='POST' action='?p=register'>
<table width='400'>
<tr>
<td width='75'>Brugernavn:</td><td width='325'><input type='text'
size='25' name='username'></td></tr>
<td width='75'>Din email:</td><td width='325'><input type='text'
size='25' name='email'></td></tr>
<td width='75'>Dit kodeord:</td><td width='325'><input type='text'
size='25' name='kodeord1'></td></tr>
<td width='75'>Dit kodeord igen:</td><td width='325'><input type='text'
size='25' name='kodeord2'></td></tr>
</table>
</form>

Det der opretter personen i databasen:

<?php
if ($_SERVER['REQUEST_METHOD'] == "POST" && $_REQUEST[kodeord1] ==
$_REQUEST[kodeord2] && $_REQUEST[kodeord1] !== $null &&
$_REQUEST[username] !== $null && $_REQUEST[email] !== $null) {

$query = "insert into voga_users (username, email, pass, navn, foedt,
city, koen, id) values
('$_POST[username]','$_POST[email]','$_POST[kodeord1]','$_POST[navn]','$_POST[foedt]','$_POST[city]','$_POST[koen]','$_POST[id]')";
$result = mysql_query($query);
echo mysql_error();
} ?>

den opretter fint en bruger, men man kan oprette den uden at kodeord er
udflydt osv.
Hvordan fikser jeg det?


 
 
Jeppe Bundsgaard (12-05-2006)
Kommentar
Fra : Jeppe Bundsgaard


Dato : 12-05-06 18:59

wrote in dk.edb.internet.webdesign.serverside.php:

> <?php
> if ($_SERVER['REQUEST_METHOD'] == "POST" && $_REQUEST[kodeord1] =$_REQUEST[kodeord2] && $_REQUEST[kodeord1] !== $null &&
> $_REQUEST[username] !== $null && $_REQUEST[email] !== $null) {
>

Du tester forkert. Du sætter kodeord1=kodeord2 (kun et = - der skal være to for at det er en test), og du tester mod variablen $null
og ikke værdien null (som er uden $).
Mvh
jeppe

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jeppe Bundsgaard (12-05-2006)
Kommentar
Fra : Jeppe Bundsgaard


Dato : 12-05-06 19:02

wrote in dk.edb.internet.webdesign.serverside.php:

> <?php
> if ($_SERVER['REQUEST_METHOD'] == "POST" && $_REQUEST[kodeord1] =$_REQUEST[kodeord2] && $_REQUEST[kodeord1] !== $null &&
> $_REQUEST[username] !== $null && $_REQUEST[email] !== $null) {
>

Og du skal teste $_POST, vil jeg tro.
For øvrigt er det nok at teste således: $_POST[username] and $_POST[email] osv. - det tester for om der er en værdi - og ikke blot ""
eller 0.
Mvh
jeppe

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Geert Lund (13-05-2006)
Kommentar
Fra : Geert Lund


Dato : 13-05-06 16:03

zanoniii@gmail.com wrote:

> <?php
> if ($_SERVER['REQUEST_METHOD'] == "POST" && $_REQUEST[kodeord1] ==
> $_REQUEST[kodeord2] && $_REQUEST[kodeord1] !== $null &&
> $_REQUEST[username] !== $null && $_REQUEST[email] !== $null) {

> Hvordan fikser jeg det?

if (
( $_SERVER['REQUEST_METHOD'] == 'POST' ) &&
( !is_null( trim( $_REQUEST['kodeord1'] ) ) ) &&
( !is_null( trim( $_REQUEST['username'] ) ) ) &&
( !is_null( trim( $_REQUEST['email'] ) ) ) &&
( $_REQUEST['kodeord1'] == $_REQUEST['kodeord2'] )
) {
din kode her
}

Altså i ovenstående bruger jeg is_null til at checke og for
"overskueligheden" (det er alt efter hvad man kan lide - betyder ikke så
meget) - har jeg benyttet parantetser i vid omfang til at understrege
hvilke check der hører sammen.

Samtidig benytter jeg funktionen trim() til at fjerne whitespaces i
begyndelsen og slutningen af variablen - dette er heller ikke påkrævet
men kan være en god ide da der nogle gange indsniger sig mellemrum mv. i
diverse indtastningsfelter i forms.

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste