Avatar billede benzon Praktikant
17. september 2003 - 22:11 Der er 9 kommentarer og
1 løsning

bagvendt validering eller noget i den stil

Sider og skal lave en edit profil del.

Problemet er nu så bare at den skal tjekke om at personen ikke skifter til en adresse og postnr der allerede er i systemet

paster lige mit oprettelse af en bruger.

<?php
include("ink/mysql.php");
$ip = $GLOBALS['REMOTE_ADDR'];
if(!$cookieval){
    $res = mysql_query("select * from contestusr where usrip = '$ip'") or die(mysql_error());
    $row = mysql_fetch_array($res);
    if($row[usrip] == $ip){
        header("Location: index.php?side=contestlogin&msg=Du%20er%20allerede%20oprettet");
    }else{
        $res = mysql_query("select * from contestusr where adresse = '$adresse' and postnr = '$postnr'") or die(mysql_error());
        $row = mysql_fetch_array($res);
        if ($adresse && $postnr && $row['adresse'] == $adresse && $row['postnr'] == $postnr) {
            header("Location: index.php?side=contestlogin&msg=Du%20er%20allerede%20oprettet");
        }else{
            $res = mysql_query("select * from contestusr where brugernavn = '$brugernavn'") or die(mysql_error());
            $row = mysql_fetch_array($res);
            if($brugernavn == $row[brugernavn]){
                header("Location: index.php?side=contestlogin&msg=Det%20valgte%20brugernavn%20findes%20allerede");
            }else{
                $res = mysql_query("select * from contestusr where email = '$email'") or die(mysql_error());
                $row = mysql_fetch_array($res);
                if($email == $row[email]){
                    header("Location: index.php?side=contestlogin&msg=Den%20intastede%20email%20findes%20allerede");
                }else{
                    mysql_query("insert into contestusr (brugernavn,fornavn,efternavn,adresse,byen,postnr,password,email,usrip) values ('$brugernavn','$fornavn','$efternavn','$adresse','$byen','$postnr','$password','$email','$ip')");
                    header("Location: index.php?side=contestlogin&msg=Du%20er%20nu%20oprettet");
                }
            }
        }
    }
}else{
    header("Location: index.php?side=contestlogin&msg=Du%20er%20allerede%20oprettet");
}
?>


der er det

Ip Tjek og Cookie tjek skal overses da det ikke skal bruges i edit, men den skal tjekke op på om personen skifter adresse den skal tillade personen at gøre det hvis der ikke allerede findes en anden bruger med den adresse, og hvis personen eks bare vil update sit password skal den eks gå ind og tillade personen det under alle omstændigheder,

Kan bare ikke lure hvordan jeg skal lave den validering, så jeg sørger for personen ikke skifter til en andens adresse altså opretter multi accounts rundt omkring og så går ind i edit og laver adressen om til personens irl adresse for at få flere brugere så personen har støre chance for at vinde konkurencen som det skal bruges til.

det vil sige den skal tjekke om personen tager ens adresse og postnr, slf. må personen heller ikke tage en andens email og brugernavn

jeg kan bare ikke lige lure hvordan pokker jeg lige skal skære den håber der er en der kan hjælpe :|
Avatar billede saxtus Nybegynder
18. september 2003 - 09:16 #1
jeg har lavet noget lidt i den stil, det var så at man ikke kunne oprette 2 brugere med samme email adresse. Det burde dog hurtigt kunne konverteres til noget du kan bruge.

<?
include("dbconnect.php");

$hent = "SELECT mail FROM kunde WHERE adresse='$adresse' and postnr='$postnr' ";
$exist = mysql_query($hent);
if (mysql_num_rows($exist) == 1)
{ ?>
her skal så stå at der ikke kan oprettet flere brugere på denne adresse
}
else {
bugeren har flyttet adresse uden problemer}

Håber at det her kan bruges

For at sikre dig brugeren anvender en korekt email adresse kan ved oprettelse sende en mail hvor du giver personen en aktiveringskode som så skal indtastes inden der kan logges ind. Det kræver bare at du får sat to felter mere ind i din database.
Har ikke lige koden, men du laver en math.random der generere et 6 cifret tal ved oprettelse som mailes til brugeren og indsættes i databasen. Når brugeren så skal logge ind skal han indtaste den talkode han fik via mail så han aktivere hans konto.
Hvis takloden passer skifter ændre du så i din database fra godkendt='0' (ikke godkendt) til godkendt='1' (godkendt).
Avatar billede benzon Praktikant
18. september 2003 - 11:14 #2
sad og overvejede og lave tjek på alle fælter altså email, adresse, post, for og efternavn og stemmer det over ens med databasen giver den personen lov at skifte password, og else så tjekker den så nettop op om der er andre i databasen der eks har samme adresse and so on, for at sikre mig at brugeren kan vælge at bruger sin adresse igen selv om det kun er password skifte brugeren skal lave
Avatar billede benzon Praktikant
18. september 2003 - 11:18 #3
arh når nej kan ikke sende validerings koder ud fra det webhotel :\

er et sponseret webhotel, fri plads and so on men sendmail er ikke sat korekt op hehe :\
Avatar billede saxtus Nybegynder
18. september 2003 - 12:11 #4
mender at det kan klares med:

$result = mysql_query("select * from kunde where mail='$mail'") or die (mysql_error());
while ($row = mysql_fetch_array($result))
{ $emne = "Din profil findes på Kalundhobbyen.dk";
  $body = "\nDin profil findes allerede, her er dit login\n" ;
  $body .= "Brugernavn: " . $row['kundenr'] . "\n" ;
  $body .= "Password  : " . $row['password1'] . "\n" ;

  mail("$mail", $emne, $body, "Reply-to:lasse@kalundhobbyen.dk") ;
  echo "<br><br>Email sendt"; } mysql_free_result($result);</td>


det her virker på mit domaine hostet hos b-one, det var noget jeg fandt her inde og bare tilbassede
Avatar billede benzon Praktikant
18. september 2003 - 13:04 #5
<?php
include("contestchek.php");
include("ink/mysql.php");
$emails = "$email";
$userid = $_SESSION["brugerid"];
$res = mysql_query("select * from contestusr where id = '$userid'") or die(mysql_error());
$rows = mysql_fetch_array($res);
if ($brugernavn && $fornavn && $efternavn && $adresse && $byen && $postnr && $email && $rows['brugernavn'] == $brugernavn && $rows['fornavn'] == $fornavn && $rows['fornavn'] == $fornavn && $rows['efternavn'] == $efternavn && $rows['adresse'] == $adresse && $rows['byen'] == $byen && $rows['postnr'] == $postnr && $rows['email'] == $email) {
    mysql_query("UPDATE contestusr SET password='$password' where id='$userid'");
    header("Location: index.php?side=contestlogin&msg=Dit%20password%20er%20nu%20ændret%20du%20skal%20logge%20ind%20igen.");
}else{
    $res = mysql_query("select * from contestusr where adresse = '$adresse' and postnr = '$postnr'") or die(mysql_error());
    $rowse = mysql_fetch_array($res);
    if ($adresse && $postnr && $rows['adresse'] == $adresse && $rows['postnr'] == $postnr) {
        $res = mysql_query("select * from contestusr where email = '$email'") or die(mysql_error());
        $rowsr = mysql_fetch_array($res);
        if($email == $rows[email]){
            mysql_query("UPDATE contestusr SET brugernavn='$brugernavn',fornavn='$fornavn',efternavn='$efternavn',adresse='$adresse',byen='$byen',postnr='$postnr',password='$password',email='$email' where id='$userid'");
            header("Location: index.php?side=contestlogin&msg=Din%20info%20er%20nu%20ændret%20vær%20venlig%20at%20logge%20ind%20igen.");
        }else{
            if($email == $rowsr[email]){
                header("Location: index.php?side=contestmenu&msg=Den%20valgte%20email%20findes%20allerede%20i%20systemet.");
            }else{
                mysql_query("UPDATE contestusr SET brugernavn='$brugernavn',fornavn='$fornavn',efternavn='$efternavn',adresse='$adresse',byen='$byen',postnr='$postnr',password='$password',email='$email' where id='$userid'");
                header("Location: index.php?side=contestlogin&msg=Din%20info%20er%20nu%20ændret%20vær%20venlig%20at%20logge%20ind%20igen.");
            }
        }
    }else{
        $res = mysql_query("select * from contestusr where adresse = '$adresse' and postnr = '$postnr'") or die(mysql_error());
        $rowse = mysql_fetch_array($res);
        if ($adresse && $postnr && $rowse['adresse'] == $adresse && $rowse['postnr'] == $postnr) {
            header("Location: index.php?side=contestmenu&msg=Der%20findes%20allerede%20en%20i%20systemet%20med%20denne%20adresse.");
        }else{
            if($email == $rows[email]){
                mysql_query("UPDATE contestusr SET brugernavn='$brugernavn',fornavn='$fornavn',efternavn='$efternavn',adresse='$adresse',byen='$byen',postnr='$postnr',password='$password',email='$email' where id='$userid'");
                header("Location: index.php?side=contestlogin&msg=Din%20info%20er%20nu%20ændret%20vær%20venlig%20at%20logge%20ind%20igen.");
            }else{
                $res = mysql_query("select * from contestusr where email = '$email'") or die(mysql_error());
                $rowsr = mysql_fetch_array($res);
                if($email == $rowsr[email]){
                    header("Location: index.php?side=contestmenu&msg=Den%20valgte%20email%20findes%20allerede%20i%20systemet.");
                }else{
                    mysql_query("UPDATE contestusr SET brugernavn='$brugernavn',fornavn='$fornavn',efternavn='$efternavn',adresse='$adresse',byen='$byen',postnr='$postnr',password='$password',email='$email' where id='$userid'");
                    header("Location: index.php?side=contestlogin&msg=Din%20info%20er%20nu%20ændret%20vær%20venlig%20at%20logge%20ind%20igen.");
                }
            }
        }
    }
}
?>
Avatar billede benzon Praktikant
18. september 2003 - 13:06 #6
tror det er ret sikkert det der altså imod at en eller anden trixer og får samme adresse eller email som en anden bruger i systemet vil lige ha din mening, hved godt det er et stort script, men har sidet og luret på den i langtid om det ikke var den beste måde at skære den på
Avatar billede saxtus Nybegynder
18. september 2003 - 13:44 #7
du kan se det login system jeg har lavet til min side, det kommer til at virke som jeg har beskrevet. og man kan jo bare gøre det samme når en bruger vil ændre navn og adresse.
min login side er på www.kalundhobbyen.dk
Avatar billede benzon Praktikant
18. september 2003 - 14:05 #8
hehe har bygget det hele så er ikke lige nemt at ændre det hele på et split sekundt hehe
Avatar billede saxtus Nybegynder
18. september 2003 - 19:55 #9
nu virker min login ting, skal bare have lavet det med aktivering
Avatar billede benzon Praktikant
08. oktober 2003 - 10:03 #10
lukker fik det til at virke med mit eget :)
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