Diskuze: Index Login MySQL / PHP

Ostatní jazyky SQL SQL a databáze Index Login MySQL / PHP

Avatar
vanecek.karel:

Dobrý den, měl bych jeden takový dotaz. Mám vytvořenou index stránku na ní je registrace. Potřebuji udělat následující.

Při najetí bez přihlášení aby se mi zobrazilo něco jako úvodní slovo. Např. Vítejte na webu a když se uživatel přihlásí či registruje aby se mu zobrazila stránka kde budou další informace typu. Uživatele, Vstup do diskuze, Výpis posledních aktivit uživatelů atd. Dokážu si připravit jen takovou podobu, kde se mi zobrazí stránka, kde je informace že tato část je pouze pro registrované uživatele. Což se mi nelíbí. Mohl by jste mi někdo prosím poradit, jak toto vytvořit. Děkuji.

Odpovědět 19.3.2015 13:16
Jsem jaký jsem a na tom nic měnit nebudu.
Avatar
vanecek.karel:
<?php

define('INCLUDE_CHECK',false);
error_reporting(E_ALL ^ E_NOTICE);

require 'connect.php';
require 'functions.php';

session_name('Login');

session_set_cookie_params(2*7*24*60*60);

session_start();

if($_SESSION['id'] && !isset($_COOKIE['Remember']) && !$_SESSION['rememberMe'])
{

        $_SESSION = array();
        session_destroy();

}


if(isset($_GET['logoff']))
{
        $_SESSION = array();
        session_destroy();

        header("Location: index.php");
        exit;


}

if($_POST['submit']=='Přihlasit se')
{

        $err = array();

        if(!$_POST['username'] || !$_POST['password'])
                $err[] = 'All the fields must be filled in!';

        if(!count($err))
        {
                $_POST['username'] = mysql_real_escape_string($_POST['username']);
                $_POST['password'] = mysql_real_escape_string($_POST['password']);
                $_POST['rememberMe'] = (int)$_POST['rememberMe'];


                $row = mysql_fetch_assoc(mysql_query("SELECT id,usr FROM members WHERE usr='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));

                if($row['usr'])
                {

                        $_SESSION['usr']=$row['usr'];
                        $_SESSION['id'] = $row['id'];
                        $_SESSION['rememberMe'] = $_POST['rememberMe'];


                        setcookie('Remember',$_POST['rememberMe']);
                }
                else $err[]='Wrong username and/or password!';
        }

        if($err)
        $_SESSION['msg']['login-err'] = implode('<br />',$err);

        header("Location: index.php");
        exit;
}
else if($_POST['submit']=='Register')
{

        $err = array();

        if(strlen($_POST['username'])<4 || strlen($_POST['username'])>32)
        {
                $err[]='Your username must be between 3 and 32 characters!';
        }

        if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
        {
                $err[]='Your username contains invalid characters!';
        }

        if(!checkEmail($_POST['email']))
        {
                $err[]='Your email is not valid!';
        }

        if(!count($err))
        {

                $pass = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6);

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


                mysql_query("   INSERT INTO members(usr,pass,email,regIP,dt)
                                                VALUES(

                                                        '".$_POST['username']."',
                                                        '".md5($pass)."',
                                                        '".$_POST['email']."',
                                                        '".$_SERVER['REMOTE_ADDR']."',
                                                        NOW()

                                                )");

                if(mysql_affected_rows($link)==1)
                {
                        send_mail(      'demo-test@tutorialzine.com',
                                                $_POST['email'],
                                                'Registration System Demo - Your New Password',
                                                'Your password is: '.$pass);

                        $_SESSION['msg']['reg-success']='We sent you an email with your new password!';
                }
                else $err[]='This username is already taken!';
        }

        if(count($err))
        {
                $_SESSION['msg']['reg-err'] = implode('<br />',$err);
        }

        header("Location: index.php");
        exit;
}

$script = '';

if($_SESSION['msg'])
{

        $script = '
        <script type="text/javascript">

                $(function(){

                        $("div#panel").show();
                        $("#toggle a").toggle();
                });

        </script>';

}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>

    <link rel="stylesheet" type="text/css" href="demo.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="login_panel/css/slide.css" media="screen" />

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

    <!-- PNG FIX for IE6 -->
    <!-- http://24ways.org/2007/supersleight-transparent-png-in-ie6 -->
    <!--[if lte IE 6]>
        <script type="text/javascript" src="login_panel/js/pngfix/supersleight-min.js"></script>
    <![endif]-->

    <script src="login_panel/js/slide.js" type="text/javascript"></script>

    <?php echo $script; ?>
</head>

<body>

<div id="toppanel">
        <div id="panel">
                <div class="content clearfix">
                        <div class="left">
                <h1>Název webu</h1>
                        <h2>Stručný Popis</h2>
                                <p class="grey">Popis</p>
                                <h2>Pravidla používání</h2>
                                <p class="grey">Popis používání webu.<a href="help/index.php">Podmínky používání</a></p>
                        <h2>Novinky na webu</h2>
                                <p class="grey">Novinky na webu. <a href="news/index.php">Zobrazit novinky</a>.</p>
                        </div>


            <?php

                        if(!$_SESSION['id']):

                        ?>

                        <div class="left">
                                <form class="clearfix" action="" method="post">
                                        <h1>Přihlášení</h1>

                    <?php

                                                if($_SESSION['msg']['login-err'])
                                                {
                                                        echo '<div class="err">'.$_SESSION['msg']['login-err'].'</div>';
                                                        unset($_SESSION['msg']['login-err']);
                                                }
                                        ?>

                                        <label class="grey" for="username">Uživatelské jméno:</label>
                                        <input class="field" type="text" name="username" id="username" value="" size="23" />
                                        <label class="grey" for="password">Heslo:</label>
                                        <input class="field" type="password" name="password" id="password" size="23" />
                        <label><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" /> &nbsp;Trvalé přihlášen</label>
                                <div class="clear"></div>
                                        <input type="submit" name="submit" value="Přihlásit se" class="bt_login" />
                                </form>
                        </div>
                        <div class="left right">

                                <form action="" method="post">
                                        <h1>Rigistrace</h1>

                    <?php

                                                if($_SESSION['msg']['reg-err'])
                                                {
                                                        echo '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
                                                        unset($_SESSION['msg']['reg-err']);
                                                }

                                                if($_SESSION['msg']['reg-success'])
                                                {
                                                        echo '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
                                                        unset($_SESSION['msg']['reg-success']);
                                                }
                                        ?>

                                        <label class="grey" for="username">Uživatelské jméno:</label>
                                        <input class="field" type="text" name="username" id="username" value="" size="23" />
                                        <label class="grey" for="email">E-mail:</label>
                                        <input class="field" type="text" name="email" id="email" size="23" />
                                        <label>Heslo vám bude zasláno na váš e-mail!</label>
                                        <input type="submit" name="submit" value="Registovat se" class="bt_register" />
                                </form>
                        </div>

            <?php

                        else:

                        ?>

            <div class="left">

            <h1>Uživatelský panel</h1>

            <p>Vyberte si vaší nabídku</p>
            <a href="registered.php">Profil</a>
            <p>nebo</p>
            <a href="?logoff">Odhlásit</a>

            </div>

            <div class="left right">
            </div>

            <?php
                        endif;
                        ?>
                </div>
        </div>

        <div class="tab">
                <ul class="login">
                <li class="left">&nbsp;</li>
                <li><?php echo $_SESSION['usr'] ? $_SESSION['usr'] : 'Návštěvník';?>!</li>
                        <li class="sep">|</li>
                        <li id="toggle">
                                <a id="open" class="open" href="#"><?php echo $_SESSION['id']?'Otevřít panel':'Otevřít panel';?></a>
                                <a id="close" style="display: none;" class="close" href="#">Zavřít panel</a>
                        </li>
                <li class="right">&nbsp;</li>
                </ul>
        </div>

</div>

<div class="pageContent">
    <div id="main">
      <div class="container">
        <h1>Název webu</h1>
        <h2>Popis webu</h2>
     </div>

        <div class="infobox">

          <p>Informace</p>
          <div class="clear"></div>
        </div>

<div class="pageContent">
    <div id="main">
      <div class="container">
        <h1>Parneři projektu</h1>
        <h2>Popis</h2>
     </div>

        <div class="infobox">

          <p>Informace</p>
          <div class="clear"></div>
        </div>

      <div class="paticka"></div>
    </div>
</div>

</body>
</html>
Nahoru Odpovědět 19.3.2015 13:36
Jsem jaký jsem a na tom nic měnit nebudu.
Avatar
Odpovídá na vanecek.karel
Martin Konečný (pavelco1998):

Zdar,

v tvém případě je v podstatě jednoduchý oddělit stránku pro přihlášené a nepřihlášené.

if (isset($_SESSION["userId"])) {
  include "pro_prihlasene.php";
} else {
  include "pro_neprihlasene.php";
}
 
Nahoru Odpovědět 19.3.2015 14:01
Avatar
Odpovídá na Martin Konečný (pavelco1998)
vanecek.karel:

To mě taky napadlo, že bych to tak udělal, ale trochu se mi to pak hádalo. Tak sem právě myslel, že by se to dalo třeba nějak pozměnit u celkové části:

<div class="pageContent">
     <div id="main">
       <div class="container">
         <h1>Název webu</h1>
         <h2>Popis webu</h2>
      </div>

         <div class="infobox">

           <p>Informace</p>
           <div class="clear"></div>
         </div>

 <div class="pageContent">
     <div id="main">
       <div class="container">
         <h1>Parneři projektu</h1>
         <h2>Popis</h2>
      </div>

         <div class="infobox">

           <p>Informace</p>
           <div class="clear"></div>
         </div>

       <div class="paticka"></div>
     </div>
 </div>
Nahoru Odpovědět 19.3.2015 14:06
Jsem jaký jsem a na tom nic měnit nebudu.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na vanecek.karel
David Čápka:

Ty 2 úvodní řádky si dej pryč, vypinat chybove hlasky, které ti mají pomoci zkvalitnit aplikaci, je hodně špatný nápad.

Nahoru Odpovědět  +3 19.3.2015 14:06
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na vanecek.karel
David Čápka:

A koukám, že tam máš dokonce SQL injekce, takovou aplikaci ti hned někdo rozbije. Používáš zastaralé databázové ovladače. Hlavně, že tu je všude popsané jak se to má dělat správně...

Nahoru Odpovědět  +2 19.3.2015 14:19
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
vanecek.karel:

Učím se to pomalu ale jistě. Něco z knížek něco z webu a pak to vše zkouším dát do hromady. Nikam nepospíchám.

Nahoru Odpovědět 19.3.2015 14:56
Jsem jaký jsem a na tom nic měnit nebudu.
Avatar
Odpovídá na vanecek.karel
Michal Šmahel (ceskyDJ):

Můžeš si připravit dva divy s jiným obsahem a pak nechat zobrazit ten, který potřebuješ.

//Do proměnné $div si někde uložíš příslušný parametr
<?php if($div === "prvni"): ?>
    <div id="prvni">
        .
        .
        .
    </div>
<?php endif; ?>

<?php if($div === "druhy"): ?>
    <div id="druhy">
        .
        .
        .
    </div>
<?php endif; ?>
Nahoru Odpovědět 19.3.2015 16:05
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na vanecek.karel
Michal Šmahel (ceskyDJ):

A chtělo by to oddělit PHP od HTML (alespoň většinu).

Nahoru Odpovědět 19.3.2015 16:07
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
vanecek.karel:

Ošetřit to je potřeba v každém případě. Oddělovat rovněž. Udělal sem si tuto stránku podle tutoriálu abych pochopil částečně vkládání dat do databáze a stručný výpis. Celou stránku chci vložit do několik divů a zároveň použít "include" pro připojení některých částí.

Chci udělat web pro Tělesně zdravotně postižený aby bylo možné vkládat příspěvky a třeba zakládat nějaké menší diskuze k danému postižení či onemocnění. Vzhledem k tomu, že sem skončil na dialýze tak mám dost času na učení. Tak zatím vše dělám na nečisto a testuji si to na XAMPP na lokálu.

Editováno 19.3.2015 16:54
Nahoru Odpovědět 19.3.2015 16:51
Jsem jaký jsem a na tom nic měnit nebudu.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.