Avatar billede michaeltryl Seniormester
21. september 2006 - 11:43 Der er 8 kommentarer og
1 løsning

undgå der oprettes en tom bruger

Denne kode opretter en tom bruger første gang siden loades, og næste gang den åbnes står der at brugernavnet er optaget. ER der en som kan finde fejlen, jeg tror jeg har stirret mig blind på den.

<?

include"connect.php";
$brugernavn = $_POST[brugernavn];
$brugernavn = strip_tags($brugernavn);
$brugernavn = mysql_real_escape_string($brugernavn);

$password = $_POST[password];
$password = strip_tags($password);
$password = mysql_real_escape_string($password);

//tjekker om brugernavnet er optaget
$tael = mysql_query("SELECT brugernavn FROM brugere WHERE brugernavn = '$brugernavn'") or die(mysql_error());
$antal = mysql_num_rows($tael);
if($antal == 0 && !empty($brugernavn) && !empty($password))
{

//Hvis brugernavnet ikke er optaget, skal brugeren oprettes
mysql_query("INSERT INTO brugere (Brugernavn, Password)VALUES('$brugernavn', '$password')") or die(mysql_error());
echo "Du er nu oprettet som bruger og kan logge ind her.<br><br><a href=\"login.html\">Login</a>";
} else {

//Ellers skal han/hun have en fejlmeddelelse :)
echo "Brugernavnet er optaget";
}
?
Avatar billede Slettet bruger
21. september 2006 - 11:57 #1
Jeg ville nu forkorter dette lidt:


$brugernavn = $_POST[brugernavn];
$brugernavn = strip_tags($brugernavn);
$brugernavn = mysql_real_escape_string($brugernavn);

$password = $_POST[password];
$password = strip_tags($password);
$password = mysql_real_escape_string($password);


->

$brugernavn = mysql_real_escape_string(strip_tags($_POST[brugernavn]));
$password = mysql_real_escape_string(strip_tags($_POST[password]));
Avatar billede michaeltryl Seniormester
21. september 2006 - 12:01 #2
ja okay det kan jeg godt se, men kan du se hvor fejlen er ellers
Avatar billede kinderaeg Nybegynder
21. september 2006 - 12:41 #3
Husk plinger i dine strenge.
$brugernavn = $_POST['brugernavn'];
$password = $_POST['password'];
Avatar billede sw_red_6 Nybegynder
21. september 2006 - 12:53 #4
det er sikkert ikke så vigtigt, men hvorfor har du stort forbogstav i din INSERT men lille i din SELECT? (på attribut-navnet, altså)
Avatar billede michaeltryl Seniormester
21. september 2006 - 12:58 #5
det virkede heller ikke jeg har indsat et email felt og min kode ser nu sådan her ud
<?
//Så skal vi skabe forbindelse til databasen
include"connect.php";

//Vi fanger oplysningerne fra opret.html
//Vi kører også nogle funktioner som forhindrer hackerforsøg
$brugernavn = $_POST['brugernavn'];
$brugernavn = strip_tags($brugernavn);
$brugernavn = mysql_real_escape_string($brugernavn);

$password = $_POST['password'];
$password = strip_tags($password);
$password = mysql_real_escape_string($password);

$email = $_POST['email'];
$email = strip_tags($email);
$email = mysql_real_escape_string($email);


//Vi tjekker om brugernavnet er optaget
$tael = mysql_query("SELECT brugernavn FROM brugere WHERE brugernavn = '$brugernavn'") or die(mysql_error());
$antal = mysql_num_rows($tael);
if($antal == 0 && !empty($brugernavn) && !empty($password))
{

//Hvis brugernavnet ikke er optaget, skal brugeren oprettes
mysql_query("INSERT INTO brugere (Brugernavn, Password, email)VALUES('$brugernavn', '$password', '$email')") or die(mysql_error());
echo "<h2><a href=\"index.html\">Du er nu oprettet som bruger og kan logge ind her</a>";
} else {

//Ellers skal han/hun have en fejlmeddelelse :)
echo "<h2>Brugernavnet er optaget</h2>";
}
?>
se siden her
http://www.magiske-michael.dk/prove/vennebog/opret.php
Avatar billede sw_red_6 Nybegynder
21. september 2006 - 13:03 #6
hmm, prøv at udskrive på dine variabler inde i if()'en
Avatar billede michaeltryl Seniormester
21. september 2006 - 13:12 #7
de bliver udskrevet fint og først når felterne er udfyldt, du kan se det på den side jeg postede før bare opret en bruger evt. nytest
Avatar billede kinderaeg Nybegynder
21. september 2006 - 14:06 #8
Ah, det du vil ha' er at den ikke skal oprette den blanke bruger, ellers er der ingen problem?!?
Du skal nok bruge noget i retning af nedenstående:

<?
include"connect.php";

if(isset($_POST['brugernavn'])) {
    $brugernavn = $_POST['brugernavn'];
    $brugernavn = strip_tags($brugernavn);
    $brugernavn = mysql_real_escape_string($brugernavn);
   
    $password = $_POST['password'];
    $password = strip_tags($password);
    $password = mysql_real_escape_string($password);
   
    $email = $_POST['email'];
    $email = strip_tags($email);
    $email = mysql_real_escape_string($email);
   
    $tael = mysql_query("SELECT brugernavn FROM brugere WHERE brugernavn = '$brugernavn'") or die(mysql_error());
    $antal = mysql_num_rows($tael);
    if($antal == 0 && !empty($brugernavn) && !empty($password)) {
    mysql_query("INSERT INTO brugere (Brugernavn, Password, email)VALUES('$brugernavn', '$password', '$email')") or die(mysql_error());
    echo "<h2><a href=\"index.html\">Du er nu oprettet som bruger og kan logge ind her</a>";
    } else {
        echo "<h2>Brugernavnet er optaget</h2>";
    }
}
?>
Avatar billede michaeltryl Seniormester
21. september 2006 - 14:23 #9
yes og tak for hjælpen
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