Autor Zpráva
soucekgns
Profil
Mám tento kód:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.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" href="./skin/style.css" type="text/css" media="all" /> 
</head>
<body>
<div id="all"> 

	<ul id="nav">
		<li id="nav-zz4ever" class="main"><a href="#">ZZ 4ever<span></span></a></li>
		<li id="nav-trida" class="main"><a href="#">K4a<span></span></a></li>
		<li id="nav-kapela" class="main"><a href="#">Dlouhý vedení<span></span></a></li>

<?php 
if(require('_login.php')) echo "<a href='logout.php'>Odhlášení</a>"
?>

	<ul id="subnav">
		<li class="facebook first"><a href="#" title="Facebook"></a></li>
		<li class="youtube"><a href="#" title="YouTube"></a></li>
	</ul>	
	</ul>
  

</div><!--/all -->
<div id="line">
</div><!--/line -->
</body></html>

Nevím kde mám chybu, ale nezobrazuje se mi to, co je po <?php ... ?>
V praxi: Odkaz
Ale po přihlášení (jméno:soucek, heslo:gymstola) se vše zobrazí, tak ja má být...

Díky za radu
holi
Profil
Středník za echem ?
pcmanik
Profil
a v echo pouzi namiesto

 echo "<a href='logout.php'>Odhlášení</a>";


toto

 echo '<a href="logout.php">Odhlášení</a>';
shaggy
Profil
pcmanik:
A načo to bude dobré? Jeho problém to nerieši a v tvojich zápisoch nevidím rozdiel.
soucekgns
Profil
Samozřejmě, že to nic neřeší...:-)
Radek9
Profil
soucekgns:
Zkus hodit za echo sředník a obalit to do složenejch závorek.
Alphard
Profil
Radek9:
Zkus hodit za echo sředník a obalit to do složenejch závorek.
Ani jedno by němělo mít vliv.

soucekgns:
Dejte sem ten soubor _login.php. Kdyby na jeho konci byla nějaké chyba a zároveň byl potlačen výpis chyb, chovalo by se to přesně takhle. Nejsem si jist, jestli require navrací hodnotu do podmínky.
soucekgns
Profil
Soubor: _login.php
<?php

require('_login_users.php');
require('_login_class.php');

$login = new login_class;

$today_ts = strtotime("now");
$today_m = date('n', $today_ts);
$pass_login = FALSE;

$login->domain_code = $domain_code;
$login->today_ts = $today_ts;
$login->today_m = $today_m;
$login->users = $users;
$login->num_1 = $random_num_1;
$login->num_2 = $random_num_2;
$login->num_3 = $random_num_3;


if (!$login->verify_settings()) {
	echo '<strong>Invalid Admin Settings for Login Script</strong><br />Check your settings and retry logging in';
	exit();
}

if (isset($_COOKIE[$domain_code.'_uid']) && $_COOKIE[$domain_code.'_uid']!='' && isset($_COOKIE[$domain_code.'_cid']) && $_COOKIE[$domain_code.'_cid']!='') {
	$key_uid = $login->cleanse_input($_COOKIE[$domain_code.'_uid']);
	$key_cid = $login->cleanse_input($_COOKIE[$domain_code.'_cid']);
	
	if (!$login->verify_login($key_uid, $key_cid)) {
		$login->error_message = 'Login has expired';
	} else {
		$pass_login = TRUE;	
	}
}


if (!$pass_login) {
	$need_login = TRUE;
	

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

		$login_user = $login->cleanse_input($_POST['username']);
		$login_pass = $login->cleanse_input($_POST['password']);
		

		if ($login->check_login($login_user, $login_pass)) {

			$login->encryption_key($login_user);
			
			$need_login = FALSE;
		} else {
			$login->error_message = 'Invalid login username and password';	
			$need_login = TRUE;
		}
	} 
	

	if ($need_login) {
		require('_login_page.php');
		exit();
	}
}

?>


A pokud to teda takhle nejde, nevíte, jak bych to udělal, aby se mi zobrazil přihlašovací formulář a po přihlášení místo formuláře něco jiného?
Díky
Alphard
Profil
soucekgns:
Co to exit na 62. řádku? Zkontrolujte ty podmínky, jestli dělají, co mají.
soucekgns
Profil
Tak jsem to už vyřešil (to jsem vložil do stránky):
<?php

require('_login_users.php');
require('_login_class.php');

$login = new login_class;

$today_ts = strtotime("now");
$today_m = date('n', $today_ts);
$pass_login = FALSE;

$login->domain_code = $domain_code;
$login->today_ts = $today_ts;
$login->today_m = $today_m;
$login->users = $users;
$login->num_1 = $random_num_1;
$login->num_2 = $random_num_2;
$login->num_3 = $random_num_3;


if (!$login->verify_settings()) {
	echo '<strong>Invalid Admin Settings for Login Script</strong><br />Check your settings and retry logging in';
	exit();
}

if (isset($_COOKIE[$domain_code.'_uid']) && $_COOKIE[$domain_code.'_uid']!='' && isset($_COOKIE[$domain_code.'_cid']) && $_COOKIE[$domain_code.'_cid']!='') {
	$key_uid = $login->cleanse_input($_COOKIE[$domain_code.'_uid']);
	$key_cid = $login->cleanse_input($_COOKIE[$domain_code.'_cid']);
	
	if (!$login->verify_login($key_uid, $key_cid)) {
		$login->error_message = 'Login has expired';
	} else {
		$pass_login = TRUE;	
	}
}

if (!$pass_login) {
	$need_login = TRUE;
	

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

		$login_user = $login->cleanse_input($_POST['username']);
		$login_pass = $login->cleanse_input($_POST['password']);
		

		if ($login->check_login($login_user, $login_pass)) {

			$login->encryption_key($login_user);
			
			$need_login = FALSE;
		} else {
			$login->error_message = 'Invalid login username and password';	
			$need_login = TRUE;
		}
	} 
	

	if ($need_login) {
    echo "
    <div id='login'>
    <form action='' method='post'>
    <div class='formbody'>
       <label for='username'><p class='login'>Jméno:</p>
       <input name='username' type='text' id='username' class='text' maxlength='16'></label><br>
       <label for='password'><p class='login'>Heslo:</p>
       <input name='password' type='password' id='password' class='text password' maxlength='16'></label>
       <div class='login'><label><input name='login' type='submit' value='Login' id='submit'></label></div>";
    $login->error_login();
    echo "
    </div>
    </form>
    </div>
    ";
	}
  else {
    echo '<a href="logout.php">Odhlášení</a>';
  }
}

?>

Ještě jednou díky za rady.
Alphard
Profil
[#10] soucekgns
Ten require tam nevadil. V exit byl zřejmě problém.
pcmanik
Profil
soucekgns, shaggy:

Ak neviete aky je rozdiel v uvodzovkach, tak nwm preco sa tu o tom bavime....
shaggy
Profil
pcmanik:
Ja viem veľmi dobre, aký je rozdiel medzi klasickými úvodzovkami a apostrofom (alebo ako spisovne nazvať jednoduchú úvodzovku). Ale mám pocit, že ty to nevieš, inak by si mu neradil také veci.
Porovnaj tie tvoje dva zápisy a napíš, čo by dosiahol tým, keby ten prvý zmenil za ten druhý. Ja tvrdím, že nič.
panther
Profil
pcmanik:
Ak neviete aky je rozdiel v uvodzovkach, tak nwm preco sa tu o tom bavime….
a podělíš se s námi o to, jaký je rozdíl v zápisech uvedených v [#3]? Asi nejsem sám, kdo tu nad tvou „argumentací“ kroutí hlavou.

První zápis nefunguje? Je špatný něčím jiným? Nebo jen plácáš kraviny? Řešila tvoje „rada“ problém tazatele?
AM_
Profil
pcmanik:
máš sice pravdu, že zápis v apostrofech je z jistého hlediska vhodnější, ale je to jen drobný detail a neřeší to původní problém. Ještěže nemáš třeba autoservis, už vidím jak ti tam přitáhnou úplně rozbourané auto a ty mu nejdřív umyješ okno.
pcmanik
Profil
Php parser v '' nemusi hladat premenne a dosadzat ich, tym padom je to rychlejsie, aj ked nebadatelne, mnohi mozu namietat ze je to cista kravina, ale ak je takychto veci v skriptoch 1000 uz sa da spozorovat maly rozdiel, nevidim teda dovod preco to nepouzivat.

Samozrejme niekto urcite bude mat s tym problem, teda sa trocha zamyslite, ak budete flakat tak trivialnu vec ako je rozlisovanie apostrofov a uvodzoviek, tak nechcem vydiet, ako sa budete inak spravat k vasemu skriptu, su to sice mikro optimalizacie, ale nejake pravidla by mali platit.

Samozrejme je pravda, ze dnes su uz natolko vykonne pc, ze to v podstate nieje potrebne, ale co ak sa vasa aplikacia dostane na nejaky pomaly pc? potom to budete prepisovat? A inak povedane, preco takto mrhat vykonom, ved aj dnesne pocitacove hry nim mrhaju a pritom keby sa optimalizovali by isli ovela lepsie na slabsich strojoch, to iste plati v php, v javascripte, ale aj v zivote...

Ale inak je to len moj nazor, nemam moc rad apostrofy v html, nemaju tam opodstatnenie, a preto by tam mali byt klasicke uvodzovky podla mna.
shaggy
Profil
pcmanik:
ak budete flakat tak trivialnu vec ako je rozlisovanie apostrofov a uvodzoviek
Ja to neflákam. Používam vo svojich skriptoch úvodzovky a nemal som najmenší problém. Ty tvoje osobné pocity povyšuješ na nejaké pravidlo a ešte nás tu ideš presviedčať o tom, že nevidíme rozdiel medzi úvodzovkami.
Davex
Profil
pcmanik:
Php parser v '' nemusi hladat premenne a dosadzat ich, tym padom je to rychlejsie, aj ked nebadatelne
V kódu [#10] žádné proměnné v uvozovkách nevidím a u konstantních řetězců není měřitelný rozdíl mezi uvozovkami a apostrofy. Ani to není vůbec podstatné, protože opravdová optimalizace skriptů na rychlost se dělá úplně jinak.
AM_
Profil
pcmanik:
ale ak je takychto veci v skriptoch 1000 uz sa da spozorovat maly rozdiel
ano, ale kupodivu i naopak. Schválně jsem si to zkusil, při vypsání jednořádkového stringu je výpis "" cca 10x pomalejší, při vypsání pětiznakového stringu ale naopak cca 3x rychlejší. Výpis tisíců řádků (což už je celkem slušný objem dat, který se najde na málokteré stránce) se u uvozovek pohyboval v řádu 0.1s, u apostrofů 0.03ms, ano, rozdíl tam je. Ale zajímalo by mě, jestli by jsi ho byl schopný okem
zpozorovat, jak říkáš.

nemam moc rad apostrofy v html, nemaju tam opodstatnenie
zase jenom domněnky, a jak opodstatníš uvozovky? apostrofy i uvozovky mohou být v HTML úplně stejně dobře, standard to pokud vím dovoluje a funguje to.
AM_
Profil
Davex:
u konstantních řetězců není měřitelný rozdíl mezi uvozovkami a apostrofy
no, zrovna jsem ho změřil...
panther
Profil
pcmanik:
nemam moc rad apostrofy v html, nemaju tam opodstatnenie, a preto by tam mali byt klasicke uvodzovky podla mna.
co je podle tebe, naštěstí není pravidlem. V HTML jsou jak uvozovky, tak apostrofy, nepovinné (v drtivé většině, výjimkou jsou jen výceslovné hodnoty jednotlivých atributů).

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0