Úvodní stránka pro přihlášené – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Úvodní stránka pro přihlášené – PHP – Fórum – Programujte.comÚvodní stránka pro přihlášené – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
quest0
Newbie
1. 6. 2013   #1
-
0
-

Ahoj všichni.Moc děkuju za vyřešení problému s přihlášením.Nyní bych chtěl vyřešit stránku která naběhne po přihlášení.

1.chtěl bych aby se po přihlášení dostal uživatel na stránku kde mu to napíše: nyní jsi přihlášen jako:......
ale když tam dám: <p>Nyní jste přihlášen jako <b><?php echo $_SESSION['jmeno'] ?></b>.</p>
tak $_SESSION['jmeno'] neznamená nic protože se uživatel dostal do jiného souboru.Jak to udělat?

2.pokud někdo zadá do prohlížeče http://www....nazev..../…p  ; tak mu naběhne stránka která by se měla zobrazit jen po přihlášení.

Moc děkuji za odpověď.

Nahlásit jako SPAM
IP: 94.241.65.–
quest0
Newbie
1. 6. 2013   #2
-
0
-

#1 quest
Takže si mám udělat jeden index.php ve kterém budou všechny soubory?

Nahlásit jako SPAM
IP: 94.241.65.–
null_while
~ Moderátor
+6
Věrný člen
1. 6. 2013   #3
-
0
-

#1 quest
Hodně zjednodušeně takto:

<?php
	if( !isset($_SESSION['jmeno']) )
		header("location: login.php");
?>
Nahlásit jako SPAM
IP: 213.250.198.–
WEBNIA.cz - tvorba webových stránek
null_while
~ Moderátor
+6
Věrný člen
1. 6. 2013   #4
-
0
-

Ne... Udělej si jeden index, který bude pomocí include tahat soubory, které chceš. Nad voláním této funkce musíš kontrolovat, zdali má uživatel právo stránku prohlížet. Takže krom $_SESSION['jmeno'] si definuj při přihlášení také:

<?php
	session_start();
	$_SESSION['online'] = 1;
?>

Tam, kde chceš, aby mohli jen přihlášení, tak vkládej kontrolu, zdali existuje online a jméno. Každopádně bych místo jména doporučoval user_id (id uživatele). Rovnou to porovnával s databází/souborem, ve kterém kontroluješ přihlášení, protože ID bude jednoznačné. Jméno nikoliv.

Nahlásit jako SPAM
IP: 213.250.198.–
WEBNIA.cz - tvorba webových stránek
quest0
Newbie
1. 6. 2013   #5
-
0
-

#4 null_while
login.php:
<!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" xml:lang="cs" lang="cs">
<head>

  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <title>Medieval Fighter</title>

</head>
<body>

<form action="" method="post">
  <fieldset>
    <legend><b>Přihlášení uživatele</b></legend>
    <p><input name="jmeno" size="20" tabindex="1" type="text" /> <label>Jméno</label></p>
    <p><input name="heslo" size="20" tabindex="2" type="password" /> <label>Heslo</label></p>
    <p><input name="submit" type="submit" tabindex="3" value=" přihlásit &raquo; " /></p>
  </fieldset>
</form>


<p><a rel="nofollow" href="./register.php">Zaregistrovat</a></p>

</body>
</html>

<?php
require_once dirname(__FILE__)."/config.php";

if (!session_is_registered("jmeno"))
    session_register("jmeno");

if (!session_is_registered("heslo"))
    session_register("heslo");

$select = mysql_query("SELECT id from uzivatele where jmeno = '". $_SESSION["jmeno"] ."' and heslo = '". $_SESSION["heslo"] ."' ") or die (mysql_error());
$udaje = mysql_fetch_assoc($select);

if (isset($_POST['submit'])) {
    $_SESSION['jmeno'] = $_POST['jmeno'];
    $_SESSION['heslo'] = md5($_POST['heslo']);
   
    $select = mysql_query("SELECT id from uzivatele where jmeno = '". $_SESSION["jmeno"] ."' and heslo = '". $_SESSION["heslo"] ."' ") or die (mysql_error());
    $udaje = mysql_fetch_assoc($select);
    if (mysql_num_rows($select)==1) {
        session_regenerate_id();
        $_SESSION['jmeno'] = $_POST['jmeno'];
        $_SESSION['heslo'] = md5($_POST['heslo']);
        header("Location: ./user.php", Přihlášen);
 
    }
    else {
        header("Location: ./401.html", 401);
    }
}
?>

Tak a já chci aby se uživateli zobrazila stránka s nápisem:Nyní jste přihlášen jako(jeho jméno)

user.php:
<!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" xml:lang="cs">
<head>

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Hlavní strana</title>

</head>
<body>

<p>Nyní jste přihlášen jako <b><?php echo $_SESSION['jmeno'] ?></b>.</p>
<p>text</p>
<p><a rel="nofollow" href="../login.php?logout">Odhlásit</a></p>

</body>
</html>

Jak to mám udělat?
Moc děkuju za odpověď

Nahlásit jako SPAM
IP: 94.241.66.–
quest0
Newbie
1. 6. 2013   #6
-
0
-

#5 quest
1. věc je vyřešena už jen to aby mi nemohl kdokoliv otevřít soubor /user.php

Nahlásit jako SPAM
IP: 94.241.66.–
KIIV
~ Moderátor
+43
God of flame
1. 6. 2013   #7
-
0
-

v indexu.php po uspesnem overeni ze je zalogovan, neco jako  define("SHOW_CONTENT");

a v user.php na zacatku   if (defined("SHOW_CONTENT")) { ...

nebo  !defined a nejaky die ci podobne

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
quest0
Newbie
1. 6. 2013   #8
-
0
-

#7 KIIV
Pořád nevyřešeno.Zkuste dát nějaký příklad kódu prosím.

Nahlásit jako SPAM
IP: 94.241.66.–
null_while
~ Moderátor
+6
Věrný člen
2. 6. 2013   #9
-
0
-

A proč by nemohl kdokoliv otevřít soubor user.php? 

Jen ať ho otevřou, ale pokud tam nemají co dělat - neexistující session nebo proměnná, kterou při přihlášení získá, tak je to prostě automaticky přesměruje na stránku s formulářem - funkce header location. 

Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
tribalcz0
Super člen
2. 6. 2013   #10
-
0
-

ja to delam jednoduse timto kodem  samozrejme na prvnim radku musis nastarovat session tj:<?php session_start();?>
 

if($_SESSION['login']!=""){tento obsah jr pro prihlasene } else { tento je pro neprihlasene }


pokud by ti to nejeleo tak skus z prihlasovaciho formu odkazat na tento script ktery si samozrejme musis upravit 

include "./connect.php";/* připojení k databázi */
$login = mysql_real_escape_string($_POST["nick"]);/* nick zadaný ve formuláři pro přihlašování */
$heslo = mysql_real_escape_string($_POST["heslo"]);/* heslo zadané ve formuláři pro přihlašování */
$md5heslo = md5($heslo);/* Pomocí funkce md5() heslo zahashujeme */
/* — DOTAZ K MYSQL PRO OVĚŘENÍ PŘIHLAŠOVACÍCH DAT — */
$dotaz = mysql_query("select * from uzivatele where login = '$login' and heslo = '$md5heslo'");
$overeni = mysql_num_rows($dotaz);
$row = mysql_fetch_array($dotaz);
if($overeni == 1) {
    session_start();
    $_SESSION['login'] = stripslashes($login);
    $_SESSION['id'] = $row["id"];
    $_SESSION['uid'] = $row["uid"];
    header("Location: index.php");
    die();
} else {
    echo"Zadal jsi špatný login nebo heslo!";
}
Nahlásit jako SPAM
IP: 37.188.233.–
peter
~ Anonymní uživatel
3981 příspěvků
3. 6. 2013   #11
-
0
-

tribalcz - pokud heslo jde pak jeste do md5, tak nepotrebuje mysql_real_escape_string. Navic bys to mel udelat az po md5, protoze pak muzes dostat zcela jine vysledky pro escapovane znaky a uz nebude mozne heslo zmenit pouze pres phpmyadmina (coz se ti nekdy muze hodit). Mno, a do tretice, md5 je stare, dekoder umi heslo ziskat do 1 minuty (pokud obsahuje rozumne znaky, nepotrebuje pouzit hrubou silu, ale znaky dopocita ze znalosti algoritmu md5, ktery vyrobi pro urcite znaky urcity vystup), radu let se misto nej pouziva sha1.

Nahlásit jako SPAM
IP: 193.84.207.–
tribalcz0
Super člen
3. 6. 2013   #12
-
0
-

#11 peter

co se escapovani tyce tak sem s tim problem nemel zatim nikdy heslo menim pomoci formu normalne (tim nepripostim ze to nemuze obcas blbnout) s md5 sem za tim nemel problemy ale pravda co neni muze  byt :-( a hlavne pokud o tom tazatel vi nebo alespon pres google na tuto problematiku narazil tak neni problem script upravit slo jen o to ukazat tazateli jak takoveto veci resit pomoci primitivni podminky a pripomnuti aktvicae session protoze sem se setkal uz s nekolika lidmi co na to zapominaj a pritom tvori podminky ktere prave se session pracuji

Nahlásit jako SPAM
IP: 178.209.131.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 20 hostů

Podobná vlákna

Uvodni stranka v Nette — založil David

Stránka v SK — založil zelenac1

Roztiahnutelna stranka — založil zahorak

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý