Avatar billede jjbirk Nybegynder
29. oktober 2013 - 09:41 Der er 42 kommentarer og
1 løsning

Har downloadet et login script, men hvor kan jeg bestemme hvilket sider de skal ind på.

Hej.

Jeg har downloadet et login script fra denne side
http://angry-frog.com/downloads-page/

Mit problem er, at jeg vil gerne have at når mine medlemmer er godkendt af mig som admin, og de logger ind så kommer de på en spec. sode der ligger i en mappe der hedder eks. medlem/index.php.
Men jeg kan ikke lige se hvordan jeg skal gøre dette.
Når de logger på nu kommer de på en side så de kan rette i deres navn m.m. dette skulle gerne være så det kun er admin der kan komme der til,

Håber i forstår og vil hjælpe.
Avatar billede jjbirk Nybegynder
29. oktober 2013 - 17:01 #1
Her fundet ud af det måske skulle være i denne fil jeg skal ændre noget, men kan ikke lige gennemskue hvor.
Så håber der er en der gider hjælpe :-)
lad os bare sige min side hedder www.hvem-ved.dk og jeg har en mappe der hedder medlem og i den er der en fil der hedder
start-medlem.php.

Hvor skal jeg sætte det ind så medlemmer kommer på den side når de logger på ??
Men admin skal stadig komme på hans adminside.

<?php
/**
* Process.php
*
* The Process class is meant to simplify the task of processing user submitted
* forms, redirecting the user to the correct pages if errors are found, or if
* form is successful, either way. Also handles the logout procedure.
*
* Originally written by: Jpmaster77 a.k.a. The Grandmaster of C++ (GMC)
* Last Updated by The Angry Frog : January 11th, 2012
*/
include("include/session.php");

class Process
{
  /* Class constructor */
  function Process(){
      global $session;
      /* User submitted login form */
      if(isset($_POST['sublogin'])){
        $this->procLogin();
      }
      /* User submitted registration form */
      else if(isset($_POST['subjoin'])){
        $this->procRegister();
      }
      /* User submitted forgot password form */
      else if(isset($_POST['subforgot'])){
        $this->procForgotPass();
      }
      /* User submitted edit account form */
      else if(isset($_POST['subedit'])){
        $this->procEditAccount();
      }
      /**
      * The only other reason user should be directed here
      * is if he wants to logout, which means user is
      * logged in currently.
      */
      else if($session->logged_in){
        $this->procLogout();
      }
      /**
      * Should not get here, which means user is viewing this page
      * by mistake and therefore is redirected.
      */
     
      else{
          header("Location: ".$config['WEB_ROOT'].$config['home_page']);
      }
  }

  /**
    * procLogin - Processes the user submitted login form, if errors
    * are found, the user is redirected to correct the information,
    * if not, the user is effectively logged in to the system.
    */
  function procLogin(){
      global $session, $form;
      /* Login attempt */
      $retval = $session->login($_POST['user'], $_POST['pass'], isset($_POST['remember']));
     
      /* Login successful */
      if($retval){
        header("Location: ".$session->referrer);
      }
      /* Login failed */
      else{
        $_SESSION['value_array'] = $_POST;
        $_SESSION['error_array'] = $form->getErrorArray();
        header("Location: ".$session->referrer);
      }
  }
 
  /**
    * procLogout - Simply attempts to log the user out of the system
    * given that there is no logout form to process.
    */
  function procLogout(){
      global $database, $session;
      $config = $database->getConfigs();
      $retval = $session->logout();
      header("Location: ".$config['WEB_ROOT'].$config['home_page']);
  }
 
  /**
    * procRegister - Processes the user submitted registration form,
    * if errors are found, the user is redirected to correct the
    * information, if not, the user is effectively registered with
    * the system and an email is (optionally) sent to the newly
    * created user.
    */
  function procRegister(){
      global $database, $session, $form;
      $config = $database->getConfigs();
     
      /* Checks if registration is disabled */
      if($config['ACCOUNT_ACTIVATION'] == 4){
          $_SESSION['reguname'] = $_POST['user'];
        $_SESSION['regsuccess'] = 6;
        header("Location: ".$session->referrer);
      }
     
      /* Convert username to all lowercase (by option) */
      if($config['ALL_LOWERCASE'] == 1){
        $_POST['user'] = strtolower($_POST['user']);
      }
      /* Hidden form field captcha deisgned to catch out auto-fill spambots */
      if (!empty($_POST['killbill'])) { $retval = 2; } else {
      /* Registration attempt */
      $retval = $session->register($_POST['user'], $_POST['pass'], $_POST['conf_pass'], $_POST['email'], $_POST['conf_email']);
      }
     
      /* Registration Successful */
      if($retval == 0){
        $_SESSION['reguname'] = $_POST['user'];
        $_SESSION['regsuccess'] = 0;
        header("Location: ".$session->referrer);
      }
      /* E-mail Activation */
      else if($retval == 3){
        $_SESSION['reguname'] = $_POST['user'];
        $_SESSION['regsuccess'] = 3;
        header("Location: ".$session->referrer);
      }
      /* Admin Activation */
      else if($retval == 4){
        $_SESSION['reguname'] = $_POST['user'];
        $_SESSION['regsuccess'] = 4;
        header("Location: ".$session->referrer);
      }
      /* No Activation Needed but E-mail going out */
      else if($retval == 5){
        $_SESSION['reguname'] = $_POST['user'];
        $_SESSION['regsuccess'] = 5;
        header("Location: ".$session->referrer);
      }
      /* Error found with form */
      else if($retval == 1){
        $_SESSION['value_array'] = $_POST;
        $_SESSION['error_array'] = $form->getErrorArray();
        header("Location: ".$session->referrer);
      }
      /* Registration attempt failed */
      else if($retval == 2){
        $_SESSION['reguname'] = $_POST['user'];
        $_SESSION['regsuccess'] = 2;
        header("Location: ".$session->referrer);
      }
  }
 
  /**
    * procForgotPass - Validates the given username then if
    * everything is fine, a new password is generated and
    * emailed to the address the user gave on sign up.
    */
  function procForgotPass(){
      global $database, $session, $mailer, $form;
      $config = $database->getConfigs();
      /* Username error checking */
      $subuser = $_POST['user'];
      $subemail = $_POST['email'];
      $field = "user";  //Use field name for username
      if(!$subuser || strlen($subuser = trim($subuser)) == 0){
        $form->setError($field, "* Username not entered<br>");
      }
      else{
        /* Make sure username is in database */
        $subuser = stripslashes($subuser);
        if(strlen($subuser) < $config['min_user_chars'] || strlen($subuser) > $config['max_user_chars'] ||   
            !preg_match("/^[a-z0-9]([0-9a-z_-\s])+$/i", $subuser) ||
            (!$database->usernameTaken($subuser))){
            $form->setError($field, "* Username does not exist<br>");
          }
          else if ($database->checkUserEmailMatch($subuser, $subemail) == 0){
              $form->setError($field, "* No Match<br>");
      }
      }
     
      /* Errors exist, have user correct them */
      if($form->num_errors > 0){
        $_SESSION['value_array'] = $_POST;
        $_SESSION['error_array'] = $form->getErrorArray();
      }
      /* Generate new password and email it to user */
      else{
        /* Generate new password */
        $newpass = $session->generateRandStr(8);
       
        /* Get email of user */
        $usrinf = $database->getUserInfo($subuser);
        $email  = $usrinf['email'];
       
        /* Attempt to send the email with new password */
        if($mailer->sendNewPass($subuser,$email,$newpass,$config)){
            /* Email sent, update database */
            $usersalt = $session->generateRandStr(8);
              $newpass = sha1($usersalt.$newpass);
            $database->updateUserField($subuser,"password",$newpass);
            $database->updateUserField($subuser,"usersalt",$usersalt);
            $_SESSION['forgotpass'] = true;
        }
        /* Email failure, do not change password */
        else{
            $_SESSION['forgotpass'] = false;
        }
      }
     
      header("Location: ".$session->referrer);
  }
 
  /**
    * procEditAccount - Attempts to edit the user's account
    * information, including the password, which must be verified
    * before a change is made.
    */
  function procEditAccount(){
      global $session, $form;
      /* Account edit attempt */
      $retval = $session->editAccount($_POST['curpass'], $_POST['newpass'], $_POST['conf_newpass'], $_POST['email']);

      /* Account edit successful */
      if($retval){
        $_SESSION['useredit'] = true;
        header("Location: ".$session->referrer);
      }
      /* Error found with form */
      else{
        $_SESSION['value_array'] = $_POST;
        $_SESSION['error_array'] = $form->getErrorArray();
        header("Location: ".$session->referrer);
      }
  }
};

/* Initialize process */
$process = new Process;

?>
Avatar billede cas000q1 Nybegynder
29. oktober 2013 - 17:22 #2
Normalt skriver man bare en lille kode, der tjekker om session er startet, hvis ikke så smider vi han væk igen.
Avatar billede jjbirk Nybegynder
29. oktober 2013 - 17:30 #3
Det var da et dejligt svar, ja det er jo denne måde man hjælper folk på her inde, en rigtig god side...........
Avatar billede jjbirk Nybegynder
29. oktober 2013 - 17:31 #4
Du forventer vil ikke at jeg skal godkende dit svar
Avatar billede cas000q1 Nybegynder
29. oktober 2013 - 19:45 #5
Du gør bare som du føler du må, jeg er såmænd ligeglad
men koden ville være ali
<?php if (SESSION['username']==""){header('Location: http://www.example.com/');}else{echo "du er logget ind";}?>

Den ville man bare skulle sætte ind på alle login beskyttede sider.
Avatar billede jjbirk Nybegynder
29. oktober 2013 - 20:04 #6
Hej igen.
Ja du må undskylde, men har prøvet at rode med det i flere dage, så er ved at gå ud ag mit gode skind :-)

Er der ikke noget i ovenstående fil der skal rettes ??

Når jeg sætter <?php if (SESSION['username']==""){header('Location: http://www.example.com/');}else{echo "du er logget ind";}?>

sker det det samme som før, man kommer ind på siden hvor man kan redigere sit login m.m.

Håber du kan forklare det så jeg kan forstå det :-)
jeg kan ikke sådan noget, derfor har jeg downloadet det program fra http://angry-frog.com/downloads-page/
Avatar billede cas000q1 Nybegynder
29. oktober 2013 - 23:03 #7
SESSION['username']
"username" skal ændres til det du bruger, dit username, id eller what so ever.
Når du define din session, under din login side.
Avatar billede jjbirk Nybegynder
30. oktober 2013 - 08:07 #8
kan du evt. hjælpe / vise mig det over teamviwer ??
jeg er total på bar bund :-)

Send mig en mail på johnsen28@gmail.com
Hvis du gider, hvilket jeg håber.
Avatar billede cht22 Professor
31. oktober 2013 - 09:47 #9
Jeg kan slet ikke få http://angry-frog.com/downloads-page/ til at virke, der er en masse variabler der ikke er defineret og en masse andet som der kommer fejlmeddelelser om.
Avatar billede jjbirk Nybegynder
31. oktober 2013 - 14:01 #10
hmm her virker det helt ok.
Mangler bare at brugerne kommer til en spec. side.
Men prøver at lede efter et andet der er nemmer at opsætte.
Og gerne så jeg kan opsætte mindst 3 grupper + en admin.
Vil gerne have det sådan at når en bruger har tilmeldt sig, får jeg en mail, og derefter godkender jeg dem og tildeler dem gruppen.

Håber der er en der ved hvor man kan hente sådan et system, og som er LET at opsætte. da jeg ikke kan så meget php.
Jeg skal bruge det til en hjemmeside jeg er admin på.
Avatar billede cht22 Professor
31. oktober 2013 - 14:54 #11
Du kan evt. bruge det her, hvis du ikke kan få det andet til at virke:

http://cht.dk/database/link.php?id=44

Oprettelse af bruger virker og der kan logges på.

Det er ikke alle links der virker...

Resten af siderne kan du selv lægge ind :-)
Avatar billede jjbirk Nybegynder
31. oktober 2013 - 20:18 #12
Cht22.

Jeg kan ikke få den til at oprette tabellen.
Er det måske noget du gider hjælpe med, evt. over Teamviwer ?
Avatar billede cht22 Professor
31. oktober 2013 - 20:35 #13
Du skal ændre indstillingerne i filen: "admin/inc_settings.php"

Følgende 4 linjer skal du rette til for at forbinde til din MySQL database:

$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$check_database_name = "local";

Hvis du på et tidspunkt vil have flere forums liggende samtidig, så skal du bruge et navn der ikke bliver brugt andre steder ved følgende linje:

$unique_name = "debatforum";

For at andre ikke kan få adgang til "admin" skal linjen med admin-password også ændres:

$set_admin_pass = "";

Derefter kan du logge på admin og oprette tabellerne der.
Avatar billede jjbirk Nybegynder
31. oktober 2013 - 20:50 #14
Ja ok.
Men her kommer man også til en side hvor man kan redigere når man er logget ind, jeg vil have når en bruger er logget ind kommer de på en index-medlem side.

Mangler også den funktion at jeg skal godkende bruger inden de kan logge på :-(

Det er der i denne http://angry-frog.com/downloads-page/
Avatar billede jjbirk Nybegynder
31. oktober 2013 - 21:48 #15
Så håbet på der var en der kunne/ville hjælpe med det script fra http://angry-frog.com/downloads-page/, da der kun var nogle enkelte ting der skulle ændres, men der ser ikke ud til der er nogen herinde der vil hjælpe med det.
Avatar billede cht22 Professor
31. oktober 2013 - 22:09 #16
Jeg har lige gjort så der også er brugergodkendelse på mit forum.

Du kan hente den nye version her:
http://cht.dk/database/link.php?id=45

Er der ellers andet der mangler? Er det noget du gerne selv vil udvikle eller vil du gerne finde et færdigt forum på nettet?
Avatar billede cht22 Professor
31. oktober 2013 - 22:13 #17
Du skal køre opret tabeller igen inde i admin, fordi det jeg har gjort er at brugerne tilføjes til en anden tabel når de opretter sig nu. Når du godkender dem bliver de flyttet over i den anden tabel.
Avatar billede jjbirk Nybegynder
01. november 2013 - 07:31 #18
Dette er helt ok.
Men hvordan kan jeg få det til at når en bruger  logger ind kommer han på eks siden medlem-index.php

Ville også gerne have sådan at jeg har 4 bruger typer med adgang til 4 forskelle sider, den ene bruger skal kun være admin, der godkender bruger de andre 3 skal eks. på siderne medlem1-index.php, medlem2-index.php, medlem3-index.php.

Håber man kan dette.

Jeg kan ikke selv lave sådan noget, der for har jeg søgt på nettet efter det, og fandt http://angry-frog.com/downloads-page/
Som kan alt det jeg søger, men mangler bare det med, at brugerne ikke skal på deres egen admin side men på siderne medlem-index.php
Avatar billede cht22 Professor
01. november 2013 - 09:51 #19
Det er ikke noget der er svært at lave. Jeg kan eventuelt vende tilbage med noget i løbet af i morgen.
Avatar billede jjbirk Nybegynder
01. november 2013 - 11:01 #20
Super vil jeg se frem til :-)
Avatar billede cht22 Professor
01. november 2013 - 11:47 #21
Jeg har allerede nu lavet en opdateret version, der kan vælges forskellige userlevels og det er muligt for bestemte brugere at godkende andre brugere og vælge deres userlevel:

http://cht.dk/database/link.php?id=45

De sider brugerne skal komme ind på når de logger på vælges i filen "start.php".

Det kræver bestemt userlevel at komme ind på følgende sider:

medlem1-index.php
medlem2-index.php
medlem3-index.php

Jeg håber det er til at finde ud af.

:)
Avatar billede jjbirk Nybegynder
01. november 2013 - 14:39 #22
ok nu begynder det at ligne noget :-)
Men selv om jeg har opretter en bruger til medlem1 og en til medlem 2, så kommer siden op du har ikke adgang til denne side og i bjælken www.xxxxxxxxx//medlem1-index.php ved dem begge.

Mangler en oversigt i admin hvor man kan se medlemmer og deres bruger niveau,
Avatar billede cht22 Professor
01. november 2013 - 15:45 #23
Hvis du giver brugeren det rigtige userlevel, så skulle der gerne være adgang til medlem1-index.php, medlem2-index.php etc.

Jeg har nu lavet en opdatering så der er en oversigt over hvem der har adgang til hvad og så der kan ændres userlevel for de godkendte brugere.

Husk det er userlevel = 2 der har adgang til "medlem1-index.php" etc.

Du kan læse yderligere detaljer i filerne i mappen: "Info".

Du kan hente den nye version her:
http://cht.dk/database/link.php?id=45
Avatar billede jjbirk Nybegynder
01. november 2013 - 17:13 #24
Kan ikke få det til at virke,
Den bliver ved med at gå til siden "du har ikke adgang til denne side" og i bjælken www.xxxxxxxxx//medlem1-index.php ved dem begge.

Hvordan får jeg det frem med oversigt over hvem der har adgang til hvad og så der kan ændres userlevel for de godkendte brugere.

Er du evt på skybe ?? tror det vil være nemmer :-)
Avatar billede cht22 Professor
01. november 2013 - 18:12 #25
Jeg har ikke Skype installeret.

For at få oversigten frem skal du enten bruge mappen admin, hvor du indtaster den kode der er angivet i "admin/inc_settings.php":

www.dit-domain.dk/forum/admin/

Eller du skal være en bruger med userlevel 90. Dvs. at du fra admin kan godkende andre brugere og give dem userlevel 90.

Du skal starte med at bruge admin til at give userlevel 90 og godkende de brugere der må godkende brugere.

Jeg har lagt det på internettet her så du kan se det:
http://cht.dk/demo_forum/

Brugere med userlevel 90 har link til godkendelse af brugere på forsiden. Oversigten over hvem der har adgang til hvad er i admin eller her:
http://cht.dk/demo_forum/users_userlevel.php

Resten har jeg skrevet tidligere ellers står det i filerne.

Bruger: m1
Adgangskode: m1
Har adgang til: http://cht.dk/demo_forum/medlem1-index.php

Bruger: m2
Adgangskode: m2
Har adgang til: http://cht.dk/demo_forum/medlem2-index.php

Bruger: m3
Adgangskode: m3
Har adgang til: http://cht.dk/demo_forum/medlem3-index.php

Følgende brugere kan godkende andre brugere:

Bruger: a1
Adgangskode: a1

Bruger: a2
Adgangskode: a2

Bruger: a3
Adgangskode: a3

Det ser ud til at virke. Du kan lige prøve det en gang.
Avatar billede cht22 Professor
01. november 2013 - 18:15 #26
Adgangskoden hvis du vil prøve admin er: 1234

http://cht.dk/demo_forum/admin/
Avatar billede jjbirk Nybegynder
01. november 2013 - 18:29 #27
kan det laves sådan at, når jeg logger ind som admin så kan jeg se nye bruger der skal godkendes, kan det laves så man kan herfra komme ind og se oversigten over bruger og rette deres adgangs level ?
Avatar billede jjbirk Nybegynder
01. november 2013 - 18:37 #28
Hvis du kan lave dette så tror jeg vi kom i mål :-)
Avatar billede cht22 Professor
01. november 2013 - 18:42 #29
Du kan bare åbne siden direkte i din browser:

http://cht.dk/demo_forum/admin/users_new.php

Var det noget andet du mente?
Avatar billede jjbirk Nybegynder
01. november 2013 - 18:53 #30
Når jeg logger ind som admin, kommer dette frem

Log ud
Godkend nye brugere
Opret database og tabeller


Kan du lave der sådan at jeg direkte derfra kan komme til siden
Oversigt over godkendte brugere,
sådan her

Log ud
Godkend nye brugere
Bruger level
Opret database og tabeller
Avatar billede cht22 Professor
01. november 2013 - 19:04 #31
Jeg er ikke helt med på hvad det er du vil.

Hvis du vil starte med siden med oversigten over godkendte brugere så skal du bare gå ind på den her side:

http://cht.dk/demo_forum/admin/users_userlevel.php
Avatar billede jjbirk Nybegynder
01. november 2013 - 19:08 #32
ville gerne kunne gå fra denne side
http://cht.dk/demo_forum/admin/index.php
via et link til denne side
http://cht.dk/demo_forum/admin/users_userlevel.php
Avatar billede cht22 Professor
01. november 2013 - 19:23 #33
Så skal siden redigeres og over eller under eller hvor du vil have det stående der indsættes denne html-kode:

<TR><td height=50>
<a class=menu href="users_userlevel.php">Godkendte brugere</a>
</td></tr>
Avatar billede jjbirk Nybegynder
01. november 2013 - 19:27 #34
Super mange tak for din STORE hjælp
Avatar billede cht22 Professor
01. november 2013 - 19:33 #35
Jeg er glad for du kunne bruge det.
Avatar billede jjbirk Nybegynder
01. november 2013 - 20:36 #36
Vil lige høre om det evt. var muligt at du kan lave det sådan at
jeg får en mail når en ny bruger har tilmeldt sig og venter på godkendelse ??
Avatar billede jjbirk Nybegynder
01. november 2013 - 20:42 #37
Og så har jeg lige opdaget en fejl, som jeg håber du gider rette :-)

Når jeg er på login siden og skriver et forkert bruger navn eller kode, så kommer jeg ind på siden hvor jeg kan slette og rette bruger level :-( det er ikke så godt
Avatar billede cht22 Professor
01. november 2013 - 21:29 #38
Det er nok fordi du har været logged på og ikke har logged af.

Men det kan selvfølgelig godt ændres. Nu bliver man logged af hvis man går ind på siden hvor man logger på, så det er hermed ændret.

Du kan hente den nye version her:
http://cht.dk/database/link.php?id=45
Avatar billede jjbirk Nybegynder
01. november 2013 - 21:33 #39
Hvad med mail som beskrevet i #36 ???
Er det noget du kan og gider ??
Avatar billede cht22 Professor
01. november 2013 - 21:52 #40
Ja nu bliver det også sendt e-mail når en ny bruger opretter sig.

Du skal lige angive din e-mail i de øverste linjer i filen "admin/inc_settings.php".

Det virker kun hvis dit webhotel har konfigureret afsendelse af e-mail eller dig selv hvis du har det kørende på din egen server. Prøv om det virker ellers kan der laves et PHP hvor man selv vælger SMTP.

Du kan hente den nye version her:
http://cht.dk/database/link.php?id=45
Avatar billede jjbirk Nybegynder
01. november 2013 - 22:04 #41
mailen kommer ikke igennem :-(
Avatar billede jjbirk Nybegynder
01. november 2013 - 22:20 #42
Jo fik den til det :-)
Mange tak for din tid :-)
Avatar billede jjbirk Nybegynder
01. november 2013 - 23:27 #43
:-) ja så er jeg her igen.
Hvis jeg vil oprette en gruppe mere eks.

else if ($userlevel == 5) {
  header( 'Location: medlem4-index.php') ;
Er der andre steder end filen "start.php"
det skal skrives i ??
Den kommer frem med "Du har ikke adgang til denne side!"
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