Autor Zpráva
BuGeR
Profil
Dobrý den.
Mám problém, teď se trochu učím s "GET".
A chtěl bych vlastně zakodovat písmena.
Aby když zadam například
http://mujweb.cz/index.php?text=ABCD
tak aby najelo toto : (příklad)
http://mujweb.cz/index.php?text=atHpymahoyAgb
Prostě bych ten text za adresou chtěl zakodovat.
Používam tento kod :
<?php 
$text = $_GET["text"];
echo "Text: ";  echo " $text";
?>
Nox
Profil
Pokud se má i rozkódovat tak třeba funkce crypt, pokud stačí jen porovnat tak nějaká hash funkce (md5,sha1,hash)
BuGeR
Profil
Nechceš to udělat? :D
Nox
Profil
teď se trochu učím s "GET".
...Nechceš se učit? :D

Ne vážně, zkus na to přijít sám

Manuál je na php.net nebo mrkni na google
BuGeR
Profil
Ok :D
našel jsem toto :
http://cz2.php.net/manual/en/function.md5.php
a do souboru jsem dal tedy ->
<?php
$text = $_GET["text"];

if (md5($text) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Text : $text";
    exit;
}
?>

Ale zobrazí se mi jenom prázdna stránka, ani se nezobrazí to Text :
Když zadam třeba index.php?text=abcd tak se nic neděje. Jen bíla stránka:D
Nox
Profil
a ten kód si vzal kde? podle http://www.maxiorel.cz/md5-online-generator by to mělo být
e2fc714c4727ee9395f324cd2e7f331f, ale lepší máš

if(md5($text) == md5("abcd")){...
BuGeR
Profil
Ok:D
Vygeneroval jsem tam text : "textabcd"
a je to vlastně : 45b69e6a67df7dbaeea0af86f7e8d11f
No tu je vysledek :
http://live-fun.cz/test3/index.php?text=textabcd
Ale ja nechci
?text=textabcd
ale
?text=45b69e6a67df7dbaeea0af86f7e8d11f
:D
Nox
Profil
if($text == md5("textabcd")){...

http://live-fun.cz/test3/index.php?text=45b69e6a67df7dbaeea0af86f7e8d11f
BuGeR
Profil
Ok, nice už to de:D
ale...má to háček
Když dám teda to
http://live-fun.cz/test3/index.php?text=45b69e6a67df7dbaeea0af86f7e8d11f
Tak se zobrazí :
Text : 45b69e6a67df7dbaeea0af86f7e8d11f
ale ja chci aby se zobrazil
Text : textabcd
Ale aby adresa byla stejna :D
Prostě chcu, aby to vtom echu zase "dekodovalo" zpátky:D
Ja vím jsem naročnej:D
fandaa
Profil
BuGeR
Pokud to chceš pouze pro jeden řetězec, bude to jednoduché. Pokud to chceš použít jako dekódovač jakéhokoliv MD5 otisku, budeš na to muset jít jinak.

<?php

$otisk = $_GET["text"];
$hodnota = "textabcd";

if ($otisk == md5($hodnota)) {
    echo 'Text: ' . $hodnota;
    exit;
}

?>
BuGeR
Profil
Ok, de to dík. A nešlo by ještě aby se to zakodovalo samo? :D abych tam nemusel do toho souboru psat to "textabcd" ale aby se to zakodovalo u každého textu :)
BuGeR
Profil
Prostě abych to tam nemusel vypisovat ale aby se to do toho zakodovalo samo :)
tiso
Profil
BuGeR: „Prostě abych to tam nemusel vypisovat ale aby se to do toho zakodovalo samo :)
Kam? Čo? Do čoho?
BuGeR
Profil
:D aby prostě když napíšu třeba
index.php?text=ABCD
tak aby naskočilo rovnou
index.php?text=cb08ca4a7bb5f9683c19133a84872ca7
a nemusel to "ABCD" psat tu :
<?php

$otisk = $_GET["text"];
$hodnota = "ABCD";

if ($otisk == md5($hodnota)) {
    echo 'Text: ' . $hodnota;
    exit;
}

?>
tiso
Profil
BuGeR: tvoj popis problému stále nie je dostatočný. Kvôli čomu chceš vlastne hashovať hodnotu premennej? O čo ide?
BuGeR
Profil
Dívej se, mam třeba 5 adminů. A chcu aby když zadaji prihlas.php?heslo=123456 tak aby když daji enter se místo toho 123456 zobrazil ten kod. Jenže každý admin má jinačí heslo
tiso
Profil
BuGeR: A to je načo dobré?
Heslo, ani jeho hash nemá v $_GET čo robiť!
Prihlasovanie sa má robiť na základe formulára odoslaného metódou POST!
BuGeR
Profil
Ok, takže kdybych to chtěl to přihlašení udělat přes GET tak to nepůjde ?
Budulinek
Profil
Půjde, jen je to špatné řešení. Sám se zamysli a řekni si, jestli není lepší použít POST s tím, že to jednak bude správně a druhak nebudeš muset bastlit tyhle hlouposti.
BuGeR
Profil
A nemohli by jste mi to řešení, i přesto že to je nanic, napsat?:)
tiso
Profil
BuGeR:neodpovedal si mi na otázku v [#17]
BuGeR
Profil
Kvůli bezpečnosti :)
Budu dělat něco jako redakční systém, s adminem, a bude tam více stránek a to get zůstane nahoře ;)
Budulinek
Profil
Pořád ale nechápu, proč GET a proč ne POST??? POST je k těmto účelům mnohem vhodnější a použití je stejně snadné jako u GET. Co až budeš dělat v tom tvém CMS články? To taky budeš přenášet přes GET? A co bezpečnost? Když se tímto způsobem přihlásiš třeba ve škole, někdo se podívá do historie prohlížeče a šup, je přihlášenej a žádnej hash nebo podobná pitomost mu v tom nezabrání.

Pokud tímto způsobem chceš psát CMS, tak potěš pánbů. Pořádně si prostuduj metody POST a GET a uvidíš, že GET opravdu není to pravé ořechové pro tento případ.
BuGeR
Profil
Ok:D takže protože se vám to řešení nelíbí tak mi neřeknete jak?:D
Beavis
Profil *
Kousek si nastínil zde -- [#14] .. jak sis jistě všiml, milý BuGeRe, není to nic lehkého, a tak prosím projeď weby o PHP, a pak si snad uvědomíš, že je blbost to "cpát" přes GET.
Budulinek
Profil
BuGeR
Dyť ti ale každej říká, jak na to. Nepřenášej ty data pomocí GET, ale pomocí POST. U formuláře nastav metodu odesílání na post a pak jen kontroluj místo GET POST. Zjednodušeně řečeno to funguje skoro stejně, jen s tím rozdílem, že POST nevidíš v odkazu. Můžeš na to jít třeba takto:

html
<form action="zpracuj.php" method="post">
    <input type="text" name="text">
    <input type="button" name="odesli" value="odesli">
</form>


php
<?php 
$text = $_POST["text"];
echo "Text: ";  echo " $text";
?>


Tohle je jen příkald, abys viděl, jak to funguje. Na internetu je spousta návodů nebo rovnou tříd sloužících k přihlášení uživatelů. Můžeš se podívat tam a inspirovat se, ale opravdu nedoporučuju hnát to přes GET, je to jako nalepit si pin na kreditní kartu...
tiso
Profil
BuGeR: [#22] kvôli bezpečnosti? Veď som ti vysvetlil že to nie je bezpečné a že máš použiť prihlasovanie pomocou POST formulára!
BuGeR
Profil
ok ok ok :D
Lamicz
Profil
BuGeR: Spis nez GET a POST si nastuduj SESSION ;)

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: