Проверка при вход

Boech123

Registered
Здравейте :)
Направих си саит и направих така ,че когато се логнеш да те пренасочи към home.php логина е се намира в index.php от index.php>>home.php
Горе от браузара пиша home.php и ми влиза а аз искам да направа проверка
Искам когато някои влезе в home.php без да се е логнал да го пренасочи към index.php
Кода на login.php е
Код:
<?php
ob_start();
?>
<FORM action="" method="POST">
<tr><td>Потребител</td><td><input class="user" type="text" name="name" style="margin-left: 8px;"></td></tr><br>
<tr><td>Парола:<br></td><td><input class="pass" type="password" name="pass" style="margin-left: 8px;"></td></tr>
<tr><td></td><td><input type="submit" name="submit" style="margin-left: 99px;" value="Вход!"></td></tr>
</FORM>
<?php
//Connecting to database
$connect = mysql_connect("localhost", "root", "k@r@tist@");
if(!$connect){
die(mysql_error());
} 
//Selecting database
$select_db = mysql_select_db("koli");
if(!$select_db){
die(mysql_error());
} 
if(isset($_POST['submit'])) {
if($_POST['name'] != NULL && $_POST['pass'] != NULL) {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass']);
$query = "SELECT * FROM users WHERE name = '$name' AND pass = '$pass'";
$do = mysql_query($query);
$row = mysql_fetch_array($do);
$admin = $row['level'];
if($name == $row['name'] && $pass == $row['pass']) {
session_register("name");
session_register("pass");
$ip = $_SERVER['REMOTE_ADDR'];
$query=mysql_query("UPDATE `users` SET `ip` = '$ip' WHERE `id` = $row[id]") or die(mysql_error());
if($admin > 0) { session_register("admin"); }
echo "<meta http-equiv=refresh content=0;url=home.php>"; }
else { echo "Грешен Потребител/Парола"; }
}
}
ob_end_flush();
?>
Home.php е
Код:
<html>
<head>
<title>Djeki :: Личен Уебсайт</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
<link rel="stylesheet" type="text/css" href="includes/css/style.css" />
</head>
<body>
<!--Структора--!>
<?php include 'feb3iMyp.php'; ?>
<div class="wrap">
<div id="content_top"></div>
<div id="content_main">
<?php include 'feb3iMyp1.php'; ?>
<?php include 'feb3iMyp2.php'; ?>
<!--Край на Структора--!>
<br /><br /><br /><br /><br />
<div id="footer"><div class="footer_holder"><ul class="foot_center"><ul class="foot_right">Всички права запазени от Джелал Юрай Моллов</div>
<br />
<?php include 'reklama.php'; ?>
Благодаря предварително +1 :)
 
Login тряя да добавиш само 1 ред ..
PHP:
<?php
ob_start();
?>
<FORM action="" method="POST">
<tr><td>Потребител</td><td><input class="user" type="text" name="name" style="margin-left: 8px;"></td></tr><br>
<tr><td>Парола:<br></td><td><input class="pass" type="password" name="pass" style="margin-left: 8px;"></td></tr>
<tr><td></td><td><input type="submit" name="submit" style="margin-left: 99px;" value="Вход!"></td></tr>
</FORM>
<?php
//Connecting to database
$connect = mysql_connect("localhost", "root", "k@r@tist@");
if(!$connect){
die(mysql_error());
}
//Selecting database
$select_db = mysql_select_db("koli");
if(!$select_db){
die(mysql_error());
}
if(isset($_POST['submit'])) {
if($_POST['name'] != NULL && $_POST['pass'] != NULL) {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass']);
$query = "SELECT * FROM users WHERE name = '$name' AND pass = '$pass'";
$do = mysql_query($query);
$row = mysql_fetch_array($do);
$admin = $row['level'];
if($name == $row['name'] && $pass == $row['pass']) {
session_register("name");
session_register("pass");
[size=5][color=blue]$_SESSION['is_logged'] = true;[/color][/size]
$ip = $_SERVER['REMOTE_ADDR'];
$query=mysql_query("UPDATE `users` SET `ip` = '$ip' WHERE `id` = $row[id]") or die(mysql_error());
if($admin > 0) { session_register("admin"); }
echo "<meta http-equiv=refresh content=0;url=home.php>"; }
else { echo "Грешен Потребител/Парола"; }
}
}
ob_end_flush();
?>
..а в home.php ..


HTML:
<?
if($_SESSION['is_logged'] != true)
{
$url = 'index.php';
header("Location:  $url");
}
?>
<html>
<head>
<title>Djeki :: Личен Уебсайт</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" type="text/css" href="includes/css/style.css" />
</head>
<body>
<!--Структора--!>
<?php include 'feb3iMyp.php'; ?>
<div class="wrap">
<div id="content_top"></div>
<div id="content_main">
<?php include 'feb3iMyp1.php'; ?>
<?php include 'feb3iMyp2.php'; ?>
<!--Край на Структора--!>
<br /><br /><br /><br /><br />
<div id="footer"><div class="footer_holder"><ul class="foot_center"><ul class="foot_right">Всички права запазени от Джелал Юрай Моллов</div>
<br />
<?php include 'reklama.php'; ?>


мисля ,че тай ще стане ... :)
 
Вместо
session_register("name");
session_register("pass");

По удачно е:
$_SESSION['username'] = $row['name'];

Тъй като register_globals е изключен от PHP 4.2.x и е изцяло премахната в PHP 6.0.0. А когато register_globals е изключен , не можеш да използваш session_register.

После си прави проверката в home.php така:

PHP:
if(isSet($_SESSION['username'])) {
//имаш достъп
} else {
//нямаш достъп
}

Boech123 каза:
Здравейте :)
Направих си саит и направих така ,че когато се логнеш да те пренасочи към home.php логина е се намира в index.php от index.php>>home.php
Горе от браузара пиша home.php и ми влиза а аз искам да направа проверка
Искам когато някои влезе в home.php без да се е логнал да го пренасочи към index.php
Кода на login.php е
Код:
<?php
ob_start();
?>
<FORM action="" method="POST">
<tr><td>Потребител</td><td><input class="user" type="text" name="name" style="margin-left: 8px;"></td></tr><br>
<tr><td>Парола:<br></td><td><input class="pass" type="password" name="pass" style="margin-left: 8px;"></td></tr>
<tr><td></td><td><input type="submit" name="submit" style="margin-left: 99px;" value="Вход!"></td></tr>
</FORM>
<?php
//Connecting to database
$connect = mysql_connect("localhost", "root", "k@r@tist@");
if(!$connect){
die(mysql_error());
} 
//Selecting database
$select_db = mysql_select_db("koli");
if(!$select_db){
die(mysql_error());
} 
if(isset($_POST['submit'])) {
if($_POST['name'] != NULL && $_POST['pass'] != NULL) {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass']);
$query = "SELECT * FROM users WHERE name = '$name' AND pass = '$pass'";
$do = mysql_query($query);
$row = mysql_fetch_array($do);
$admin = $row['level'];
if($name == $row['name'] && $pass == $row['pass']) {
session_register("name");
session_register("pass");
$ip = $_SERVER['REMOTE_ADDR'];
$query=mysql_query("UPDATE `users` SET `ip` = '$ip' WHERE `id` = $row[id]") or die(mysql_error());
if($admin > 0) { session_register("admin"); }
echo "<meta http-equiv=refresh content=0;url=home.php>"; }
else { echo "Грешен Потребител/Парола"; }
}
}
ob_end_flush();
?>
Home.php е
Код:
<html>
<head>
<title>Djeki :: Личен Уебсайт</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
<link rel="stylesheet" type="text/css" href="includes/css/style.css" />
</head>
<body>
<!--Структора--!>
<?php include 'feb3iMyp.php'; ?>
<div class="wrap">
<div id="content_top"></div>
<div id="content_main">
<?php include 'feb3iMyp1.php'; ?>
<?php include 'feb3iMyp2.php'; ?>
<!--Край на Структора--!>
<br /><br /><br /><br /><br />
<div id="footer"><div class="footer_holder"><ul class="foot_center"><ul class="foot_right">Всички права запазени от Джелал Юрай Моллов</div>
<br />
<?php include 'reklama.php'; ?>
Благодаря предварително +1 :)
 
PHP:
<?php
if(isSet($_SESSION['username'])) {
?>
<html>
<head>
<title>Djeki :: Личен Уебсайт</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" type="text/css" href="includes/css/style.css" />
</head>
<body>
<!-- Структора --!>
<?php include 'feb3iMyp.php'; ?>
<div class="wrap">
<div id="content_top"></div>
<div id="content_main">
<?php include 'feb3iMyp1.php'; ?>
<?php include 'feb3iMyp2.php'; ?>
<!-- Край на Структора --!>
<br /><br /><br /><br /><br />
<div id="footer"><div class="footer_holder"><ul class="foot_center"><ul class="foot_right">Всички права запазени от Джелал Юрай Моллов</div>
<br />
<?php include 'reklama.php';
} else {
header("Location: index.php");
?>
 
Тъй като register_globals е изключен от PHP 4.2.x и е изцяло премахната в PHP 6.0.0. А когато register_globals е изключен , не можеш да използваш session_register.

После си прави проверката в home.php така:
Ще го промениш ли и ще ми дадеш ли кода
сега login.php ми е така
<?php
ob_start();
?>
<FORM action="" method="POST">
<tr><td>Потребител</td><td><input class="user" type="text" name="name" style="margin-left: 8px;"></td></tr><br>
<tr><td>Парола:<br></td><td><input class="pass" type="password" name="pass" style="margin-left: 8px;"></td></tr>
<tr><td></td><td><input type="submit" name="submit" style="margin-left: 99px;" value="Вход!"></td></tr>
</FORM>
<?php
//Connecting to database
$connect = mysql_connect("localhost", "root", "k@r@tist@");
if(!$connect){
die(mysql_error());
}
//Selecting database
$select_db = mysql_select_db("koli");
if(!$select_db){
die(mysql_error());
}
if(isset($_POST['submit'])) {
if($_POST['name'] != NULL && $_POST['pass'] != NULL) {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass']);
$query = "SELECT * FROM users WHERE name = '$name' AND pass = '$pass'";
$do = mysql_query($query);
$row = mysql_fetch_array($do);
$admin = $row['level'];
if($name == $row['name'] && $pass == $row['pass']) {
session_register("name");
session_register("pass");
$_SESSION['is_logged'] = true;
$ip = $_SERVER['REMOTE_ADDR'];
$query=mysql_query("UPDATE `users` SET `ip` = '$ip' WHERE `id` = $row[id]") or die(mysql_error());
if($admin > 0) { session_register("admin"); }
echo "<meta http-equiv=refresh content=0;url=home.php>"; }
else { echo "Грешен Потребител/Парола"; }
}
}
ob_end_flush();
?>
 
Научете се сами да се справяте с проблемите - каквито и да са!

PHP:
<?php
session_start();
?>
<FORM action="" method="POST">
<tr><td>Потребител</td><td><input class="user" type="text" name="name" style="margin-left: 8px;"></td></tr><br>
<tr><td>Парола:<br></td><td><input class="pass" type="password" name="pass" style="margin-left: 8px;"></td></tr>
<tr><td></td><td><input type="submit" name="submit" style="margin-left: 99px;" value="Вход!"></td></tr>
</FORM>
<?php
//Connecting to database
$connect = mysql_connect("localhost", "root", "k@r@tist@");
if(!$connect){
die(mysql_error());
}
//Selecting database
$select_db = mysql_select_db("koli");
if(!$select_db){
die(mysql_error());
}
if(isset($_POST['submit'])) {
if($_POST['name'] != NULL && $_POST['pass'] != NULL) {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass']);
$query = "SELECT * FROM users WHERE name = '$name' AND pass = '$pass'";
$do = mysql_query($query);
$row = mysql_fetch_array($do);
$admin = $row['level'];
if($name == $row['name'] && $pass == $row['pass']) {
$_SESSION['username'] = $row['name'];
$ip = $_SERVER['REMOTE_ADDR'];
$query=mysql_query("UPDATE `users` SET `ip` = '$ip' WHERE `id` = $row[id]") or die(mysql_error());
if($admin > 0) { session_register("admin"); }
echo "<meta http-equiv=refresh content=0;url=home.php>"; }
else { echo "Грешен Потребител/Парола"; }
}
}
ob_end_flush();
?>


И не забравяй: <?php
session_start();
?>

над кодовете.

П.С. Това: if($admin > 0) { session_register("admin"); }, за к'во точно го използваш? Ако потребителското име е - admin ли?
 
Оф ся като си напиша името и паролата давам вход и влиза в home.php и ме пренасочва към index.php а името и паролата са верни
 
PHP:
<?php
session_start();
error_reporting(E_ALL ^ E_NOTICE);
if(isset($_SESSION['name']) AND isset($_GET['exit'])){
session_destroy();
header("Location: index.php");
exit;
}
if(isset($_SESSION['name'])){
header("Location: index.php");
exit;
}
?>
 <div align="center">
			<div align="center"><strong>Вход в системата!</strong></div>
			<?php
			
// трябва връзка с база данни

if(isset($_POST['Submit'])){

$user = addslashes($_POST['username']);
$pass = md5($_POST['pass']);

$num = mysql_result(mysql_query("SELECT COUNT(*) AS c FROM таблица WHERE user = '$user' AND pass = '$pass'"),0);
echo mysql_error();

if($num != 0) {

	$row = mysql_fetch_assoc(mysql_query("SELECT * FROM таблица WHERE user = '$user' AND pass = '$pass'"));

	if($row['rank'] == 'admin'){
		echo 'Здравей <b>'  .$user.  '</b> ти се вписа успешно! Пренасочване към <a href="" target="_blank"></a> или <a href="index.php">начална страница?</a>';
	}elseif($row['rank'] == 'moderator'){
	echo "Здравей, " .$user. " отиди в <a href='' target='_blank'></a> панел?";
	}elseif($row['rank'] == 'member'){
		echo "Здравей, " .$user. " продължи към <a href='index.php'>началната</a> страница?";
	}else{
		
	}
$_SESSION['name'] = $user;
}else{
echo "Не съществува такъв потребител или ти е грешна паролата!";
}
}
else{
?>
			<form method="post" action="">
			<div>Потребител</div>
			<input name="username" type="text" id="user">
			<div>Парола:</div>
			<input name="pass" type="password" id="pass">
			<div><br /></div>
			<input type="submit" name="Submit" value="Влез!">
			<br />
			<small><a href="regpage.php">Регистрирай се!</a>   <a href="forgot.php">Забравена парола?</a></small>
			</form>
			<? } ?>

Това е взето от моят сайт, като нали е махнато там снимки, статии и т.н. Кажи ако ти излиза грешка. Но помни, че аз съм със
PHP:
include 'config.php';
файл.
 
Абе аз искам с моя login.php
login.php
Код:
<?php
session_start();
?>
<FORM action="" method="POST">
<tr><td>Потребител</td><td><input class="user" type="text" name="name" style="margin-left: 8px;"></td></tr><br>
<tr><td>Парола:<br></td><td><input class="pass" type="password" name="pass" style="margin-left: 8px;"></td></tr>
<tr><td></td><td><input type="submit" name="submit" style="margin-left: 99px;" value="Вход!"></td></tr>
</FORM>
<?php
//Connecting to database
$connect = mysql_connect("localhost", "root", "k@r@tist@");
if(!$connect){
die(mysql_error());
}
//Selecting database
$select_db = mysql_select_db("koli");
if(!$select_db){
die(mysql_error());
}
if(isset($_POST['submit'])) {
if($_POST['name'] != NULL && $_POST['pass'] != NULL) {
$name = htmlspecialchars($_POST['name']);
$pass = md5($_POST['pass']);
$query = "SELECT * FROM users WHERE name = '$name' AND pass = '$pass'";
$do = mysql_query($query);
$row = mysql_fetch_array($do);
$admin = $row['level'];
if($name == $row['name'] && $pass == $row['pass']) {
$_SESSION['username'] = $row['name'];
$ip = $_SERVER['REMOTE_ADDR'];
$query=mysql_query("UPDATE `users` SET `ip` = '$ip' WHERE `id` = $row[id]") or die(mysql_error());
if($admin > 0) { session_register("admin"); }
echo "<meta http-equiv=refresh content=0;url=home.php>"; }
else { echo "Грешен Потребител/Парола"; }
}
}
ob_end_flush();
?>
Home.php
Код:
<html>
<head>
<title>Djeki :: Личен Уебсайт</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" type="text/css" href="includes/css/style.css" />
</head>
<body>
<!--Структора--!>
<?php include 'feb3iMyp.php'; ?>
<div class="wrap">
<div id="content_top"></div>
<div id="content_main">
<?php include 'feb3iMyp1.php'; ?>
<?php include 'feb3iMyp2.php'; ?>
<!--Край на Структора--!>
<br /><br /><br /><br /><br />
<div id="footer"><div class="footer_holder"><ul class="foot_center"><ul class="foot_right">Всички права запазени от Джелал Юрай Моллов</div>
<br />
<?php include 'reklama.php'; ?>
Искам просто ако влезеш в home.php без да си се логнал да ме пренасочва кам index.php ако сам се логнал да не ме пренасочва
 
В home.php в началото преди <html> добави:

Код:
<?php
session_start();

if(!isset($_SESSION['username'])){ 
   header("location: login.php");
   exit;
}
?>
 
Оф хора писна ми вече сайта е 93.123.50.11
писна ми да спамя явно неможете да ме разберете искам да направя проврка на страницата :@ ако неси логнат да нете пуска в нея ако си логнат да те пуска толкова ли е трудно все едно говоря на китайски аз просто немога но немисля че е толкова трудно искам да проверява дали си се логнал не да ме пренасочва на index.php даже когато се логна :X
 
Дадени са ти доста примери, работещи, използващи твоя код. Не ги копирай директно, а чети ред по ред, за да разбереш какво прави съответния РНР код на съответния ред. Едва тогава ще успееш да направиш това, което искаш.

1. В началото на абсолютно всеки РНР файл, трябва да имаш:
PHP:
<?php
session_start();

2. След като формуляра е събмитнат:
PHP:
if(isset($_POST['submit']){
    //проверяваш в базата данни дали има такъв потребител

    //и ако има - записваш в сесията id или какъвто идентификатор имаш
   $_SESSION['logged_user'] = $db_result['username'];
    
    //препращаш потребителя на някъде
    header("location: home.php");
    exit;
}

3. Изход (logout.php) трябва да съдържа:
PHP:
<?php
session_start();
unset($_SESSION['username']);
header("location: /");

4. Файловете, които искаш да са защитени с парола, трябва да започват с:
PHP:
<?php
session_start();

if(!isset($_SESSION['username'])){
   header("location: login.php");
}

Естествено има много и различни начини по които да го направиш:
- Ако записваш в сесията user_id, после проверяваш дали стойността в сесията е по-голяма от нула, а пък в logout.php трябва да сетваш на нула.
- Ако тоя потребител няма да прави нищо, само ще разглежда сайта логнат, може да записваш boolean - true/false и така да проверяваш дали се е логнал или не.
- Може да записваш целия масив, който взимаш от базата данни с информация за потребителя.

Схванеш ли логиката, ще го направиш, но до тогава никой не може да ти помогне повече от това, което са направили до момента.
 
Оф начи сега ми показва страницата в бяло само бяло има така ли трябва да стане ?
Код:
<?php
session_start();
if(isset($_POST['submit']){
    //проверяваш в базата данни дали има такъв потребител

    //и ако има - записваш в сесията id или какъвто идентификатор имаш
   $_SESSION['logged_user'] = $db_result['username'];
    
    //препращаш потребителя на някъде
    header("location: index.php");
    exit;
}
?>
<html>
<head>
<title>Djeki :: Личен Уебсайт</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" type="text/css" href="includes/css/style.css" />
</head>
<body>
<!--Структора--!>
<?php include 'feb3iMyp.php'; ?>
<div class="wrap">
<div id="content_top"></div>
<div id="content_main">
<?php include 'feb3iMyp3.php'; ?>
<?php include 'feb3iMyp2.php'; ?>
<!--Край на Структора--!>
<br /><br /><br /><br /><br />
<div id="footer"><div class="footer_holder"><ul class="foot_center"><ul class="foot_right">Всички права запазени от Джелал Юрай Моллов</div>
<br />
<?php include 'reklama.php'; ?>
 

Back
Горе