Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Index Login MySQL / PHP

Aktivity
Avatar
vanecek.karel:19.3.2015 13:16

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:19.3.2015 13:36
<?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(      '[email protected]',
                                                $_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):19.3.2015 14:01

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
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Martin Konečný (pavelco1998)
vanecek.karel:19.3.2015 14:06

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 Hartinger
Vlastník
Avatar
Odpovídá na vanecek.karel
David Hartinger:19.3.2015 14:06

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
19.3.2015 14:06
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na vanecek.karel
David Hartinger:19.3.2015 14:19

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
19.3.2015 14:19
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
vanecek.karel:19.3.2015 14:56

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:19.3.2015 16:05

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:19.3.2015 16:07

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:19.3.2015 16:51

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.