Autor Zpráva
MartinM_93
Profil
Dobrý den,
mám problém. Udělal jsem v PHP redakční systém s přihlášením pomocí GET. Každopádně na mém PC to pomocí PHPTriad jede, na WZ.CZ mi to taky funguje a na IC.CZ jak by smet, ale na klientově doméně, nejde přihlášení a i když dodám heslo ručně do get, tak se mi zadna stranka nezobrazuje. Může to být tím, že jeho doména je tvořená IP adresou? A nebo tím, že heslo je v souboru, který se dosazuje funkce která porovnává GET s pravdou?

Každopádně když si to zkopiruji na WZ, IC a nebo k sobě funguje to, ale u něj ne a to mu to kopiruji přímo ze serveru na server. Je to to samé beze změny a nefunguje to.

Díky za rady!

Martin
johnl
Profil
Řekl bych že problém bude na třináctém řádku.! Pokud ne, tak sem dej kód toho přihlašování..

Možná bych to typl že místo $_GET["heslo"] používáš $heslo a na serveru je vyplé register_globals (protože na ic a wz toto věčinou bývá zapnuté, ovšem na placeném hostingu nee..)
MartinM_93
Profil
index.php
<link rel="stylesheet" type="text/css" href="_css/_css.css">

<div id="center">
<div id="login">
<center>
<h4>PŘIHLÁŠENÍ DO ADMINISTRACE 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</h4>
<form action="login.php" method="get">
<input type="text" name="XdfGoE" />

<input type="password" name="gUrfXz" />

<input type="submit" value="Přihlásit" />
</form>
</center>
</div>
</div>



login.php
<link rel="stylesheet" type="text/css" href="_css/_css.css">
<?
$sbr_hsl = fopen("lock/enter.pass", "r");
$lock = fread($sbr_hsl, 30);
if($gUrfXz == $lock && $XdfGoE == "admin"): ?>


<?php include_once("administrace.php"); ?>



<? else: ?>
<b>Zadané heslo, nebo uživatelské jméno je chybné!</b> <br> Pokuste se přihlásit <a href=admin.php>znovu</a>.
<? endif ?>
johnl
Profil
MartinM_93:
Přečti si ještě jednou co jsem ti psal..

Nahraď $gUrfXz za $_POST["gUrfXz"] a $XdfGoE za $_POST["XdfGoE"] a vyzkoušej jestli to půjde.. ;-)

Mimochodem, heslo je bezpečnější ukládat do hashe, třeba sha1();
MartinM_93
Profil
Díky, měl jsi pravdu! Funguje to :)

Ještě dotaz: Na každou stránku odkaz vypadá přibližně takto:

<a href=btn.php?XdfGoE=admin&gUrfXz=<?php echo $lock ?>>SPRÁVA POLOŽEK MENU</a>

a díky GET se vyhodnotilo zda na tu stranku má přístup nebo ne. Jak to udělat teď pomocí POST?
Medvídek
Profil
MartinM_93:
Udělej to pomocí SESSION, celkově předávat heslo (a ještě nešifrované) v GETu není moc dobré.
AM_
Profil
Má nějaký smysl pojmenovat pole XdfGoE a gUrfXz? nebylo by lepší "jmeno" a "heslo"?
MartinM_93
Profil
AM_: Ne, nemá!

Nemohl by mi nekdo vysvetlit to SESSION ?
Našel jsem si toto a nemuzu to pochopit:

$_SESSION['heslo'] = 'qwert';
session_start();
if ($_SESSION['heslo'] == 'qwert')
echo "Jo je to dobrý....." ;
else "Chybné heslo!!!";


a nevim co s tím a jak na to, poradte prosim. Jo a co je to ten hash?
Alphard
Profil
MartinM_93:
„Nemohl by mi nekdo vysvetlit to SESSION ?“
Prostředek pro přenášení dat mezi stránkami http://www.linuxsoft.cz/article.php?id_article=440

„Našel jsem si toto“
Session_start() dejte na začátek. Ale takhle na jedné stránce to stejně nemá smysl.

„Jo a co je to ten hash?“
Hash je řetězec (číslo) vygenerovaný z původního řetězce tak, že zpětně nelze původní řetězec zjistit, viz http://cs.wikipedia.org/wiki/Hash
AM_
Profil
MartinM_93:
„AM_: Ne, nemá!“
tak proč to nepojmenuješ kulturně?

„Našel jsem si toto a nemuzu to pochopit:“
ten kus kódu je příšerný, na něm není, co pochopit.

Jinak je pěkný článek to co poslal Alphard, jen z toho kódu vynech všechny funkce session_register(), jsou zastaralé a nejen že není nutné je používat, ale ani se to už nedoporučuje.
MartinM_93
Profil
A co mám použít místo session_register ??
AM_
Profil
nic, prostě ty funkce vynech, používaly se dřív kdy se k session přistupovalo jinak. V tomhle příkladu je zbytek kódu napsaný tak, že by je mělo jít prostě vynechat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0