Diskuze: Index Login MySQL / PHP
<?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" /> 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"> </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"> </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>
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";
}
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>
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.
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ě...
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.
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; ?>
Michal Šmahel:19.3.2015 16:07
A chtělo by to oddělit PHP od HTML (alespoň většinu).
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.
Zobrazeno 10 zpráv z 10.