Avatar
­Villagers
Člen
Avatar
­Villagers:

Ahoj. Potrebujem pomoc z príkazom if. Mám formulár z textovím okinekom do ktorého treba napísať heslo. Otvorí sa php subor ktorý ma za úlohu presmerovať klienta ktorí písal heslo na zadanú tránku podľa toho, aké heslo napísal. Všetko funguje okrem toho že neviem napísať kód ale opraviť, ktorí má za úlohu presmerovanie na zdanú stránku. Tu prikladám PHP kód ktorý spracúvava heslo potrebujem namiesto abc.html napísať kód ktorý klienta na stránku bac.html presmeruje.

<? $heslo = $_POST['heslo']; ?>

<?
if ($heslo==123 ) {abc.html;}
if ($heslo!=123 ) {bca.html;}
?>

Samozrejme že chyba je v štvrtom a piatom riadku.. potrebuje mkód dakujem.

Editováno 31.7.2013 14:04
 
Odpovědět 31.7.2013 14:03
Avatar
pehus
Člen
Avatar
pehus:
$heslo = $_POST['heslo'];

if($heslo=='123') {
  header("Location: abc.html");
}
elseif($heslo!='123') {
  header("Location: bca.html");
}
 
Nahoru Odpovědět  +3 31.7.2013 14:08
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Pokud bys ten kód chtěl místo přesměrování jen vložit, použij funkci readfile().

Nahoru Odpovědět 31.7.2013 14:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Vyriešil som to takto a už to funguje:

if ($heslo==123 and $name==meno123) {header("Location: abc.html");}
if ($heslo!=123 and $name!=meno123) {header("Location: bca.html");}

ale predsa diki za radu

 
Nahoru Odpovědět 31.7.2013 14:48
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na ­Villagers
David Hynek:

nic ve zlém, ale tohle je funkčně nesmysl...

Nahoru Odpovědět  +2 31.7.2013 16:05
Čím víc vím, tím víc věcí nevím.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Hynek
Kit:

Představ si, že tento nesmysl jede. Sice mi to vyhazuje 4 noticky, ale když jsou blokovány (default), tak se nevypíše nic a normálně to pošlape.

Nahoru Odpovědět 31.7.2013 16:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na Kit
David Hynek:

o tom, že to šlape nepochybuji. Přesměrování, není nic těžkého. Mne spíš zarazila kombinace, kdy vyžaduji heslo a pak přesměruji. Na tu stránku kam je uživatel po zadání hesla přesměrován, se dá dostat i bez znalosti hesla.

Tedy když už po uživateli vyžaduji heslo, použil bych po ověření hesla Session, kde by se uložilo právo uživatele k přístupu k citlivým datum.

Pak použít klidně i přesměrování, ale na každé stránce, by na začátku muselo být ověření, zda je Session platná pro vstup a v případě, že není, přesměrovat na přihlašovací stránku a vyžadovat přihlášení.

Ale to jen tak na okraj :)

Nahoru Odpovědět 31.7.2013 22:07
Čím víc vím, tím víc věcí nevím.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Hynek
Kit:

V jednom programu dodnes používám obyčejnou HTTP autentizaci a také to stačí. Je to mnohem lepší řešení než tohle.

Nahoru Odpovědět 31.7.2013 22:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Vím že je to nebezpečné ale neumím dobre udelat MySql takže nemuzu udelat normálne prihlasovani... Stránky na ktoré su ludia presmerovan maju číselné kódy takže je velmi malá šanca že ho niekto uhádne. A kód funguje ale hral som sa zním celý deň kedže z php len začínam.

 
Nahoru Odpovědět 1.8.2013 20:21
Avatar
Nahoru Odpovědět 1.8.2013 20:28
Nesnáším {}, proto se jim vyhýbám.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Diki za link.... je to tam nejako zložite rozpisané :D

 
Nahoru Odpovědět 1.8.2013 20:32
Avatar
­Villagers
Člen
Avatar
­Villagers:

Jedna otázka: Ked budeme robit masql musím meniť všetky svoje html/php kódy ?

 
Nahoru Odpovědět 1.8.2013 20:34
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na ­Villagers
David Čápka:

Z charakterů tvých dotazů máš před sebou ještě spoustu práce.

Nahoru Odpovědět 1.8.2013 20:56
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
­Villagers
Člen
Avatar
­Villagers:

AHOJ LIDI POTREBUJU POMOC. Tento kód hoe prestal fungovať dôvod fakt neviem prosím pomožte nejako... :/

 
Nahoru Odpovědět  -1 1.8.2013 21:23
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Moc se tady nerozkřikuj. Nemáme to rádi.

Nahoru Odpovědět 1.8.2013 21:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Tak promiň...neumíš nejak pomoct ?

 
Nahoru Odpovědět 1.8.2013 21:29
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na ­Villagers
Jiří Gracík:

Umí, ale zkus nějak popsat problém, nevíme co s tím je ... vyhazuje php nějaký errory?

Nahoru Odpovědět 1.8.2013 21:34
Creating websites is awesome till you see the result in another browser ...
Avatar
­Villagers
Člen
Avatar
­Villagers:

Tohle jekó ketrý šel a už nejde... :(

<? $heslo = $_POST['heslo']; ?>


<?

if ($heslo==123 and $name==xxx) {header("Location: xxx1.html");}
if ($heslo!=123 and $name!=xxx) {header("Location: xxx.html");}

?>
 
Nahoru Odpovědět 1.8.2013 21:35
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na ­Villagers
Jiří Gracík:

Na to nebudu nic říkat ... dobrou noc :)

Nahoru Odpovědět  +1 1.8.2013 21:38
Creating websites is awesome till you see the result in another browser ...
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Především se nauč všechny stringy psát do apostrofů nebo do uvozovek. Na tento způsob zápisu vůbec nejsme zvyklí, protože nám to hlásí chyby. A ty nemáme rádi.

Nevidím tam nikde definici proměnné $name. Bez ní to fungovat nebude.

Nahoru Odpovědět  +1 1.8.2013 21:39
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Kit vím že tam mám všechno zle proto se ptám aby ste mi pomohli vyresit to... jak vidím tak asi mi neporadíte.

 
Nahoru Odpovědět 2.8.2013 18:11
Avatar
­Villagers
Člen
Avatar
­Villagers:

Takže...Našiel som chybu jediné čo od vás žiadam je jedna vecička. Tento k=ód čo som vám dal hore funguje lenže ja tam chem pridať viac hesiel... Vidím že to nejde len tak pretože sa tie riadky if ked ich tam je viac automaticky blokujú...Preto chcem jedinú vec. Kód ktorý mi tie riadky if oddelí. Každý clovek ktorí saprihlasuje má svoje meno a heslo teda jeden riadok na heslo a nick ked sa odpoved rovná a druhá ked nie .... Potrebuje mich nejako oddelit... Prosím vás.

 
Nahoru Odpovědět 2.8.2013 18:16
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na ­Villagers
Jiří Gracík:

Nauč se základy jazyka a nesnaž se lepit hotový části do sebe, z toho vzejde prasárna, která nebude fungovat jak chceš, nic z toho nebudeš mít a my budeme zbytečně plýtvat časem ;)

Nahoru Odpovědět 2.8.2013 23:23
Creating websites is awesome till you see the result in another browser ...
Avatar
Kit
Redaktor
Avatar
Odpovídá na ­Villagers
Kit:

Proč bychom ti měli radit, jak se máš střílet do nohy? Místo PHP si raději udělej HTTP autentizaci. Je to mnohem jednodušší a nepotřebuješ k tomu vůbec žádné PHP.

Nahoru Odpovědět 2.8.2013 23:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
vodacek
Redaktor
Avatar
Odpovídá na Jiří Gracík
vodacek:

lepení hotových částí do sebe je dle mě relativně dobrej způsob jak se něco naučit má-li dotyčný pak i vůli si s tím pohrát a vyzkoumat cože to vlastně ve skutečnosti dělá

 
Nahoru Odpovědět  +2 3.8.2013 6:58
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na vodacek
Inoue Yūki:

Mno nevím, myslím, že by bylo lepší se učit přímo objektovou formu...

Nahoru Odpovědět 3.8.2013 7:25
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na ­Villagers
David Hynek:

jestli ti stačí něco prostého budiž

// před tímto kódem, nesmí být žádný výstup!!
$hesla = array(
"Honza" => array("Heslo","abc.html"),
"Jarda" => array("Takyheslo","abcd.html"),
"Monika" => array("Jineheslo","abcde.html"),
);

if($hesla[$_POST['jmeno']][0] == $_POST['heslo']) header("location: ".$hesla[$_POST['jmeno']][1]);
else header(location: neznam.html);
Nahoru Odpovědět  +1 3.8.2013 7:38
Čím víc vím, tím víc věcí nevím.
Avatar
­Villagers
Člen
Avatar
­Villagers:

Díki David

Editováno 4.8.2013 19:27
 
Nahoru Odpovědět 4.8.2013 19:26
Avatar
jan.vencl
Redaktor
Avatar
jan.vencl:

Dovolím si přidat trošku bezpešnosti :D když už to chce takhle tak dodám sleep a nějak ještě ošetřit post ne?

// před tímto kódem, nesmí být žádný výstup!!
$hesla = array(
"Honza" => array("Heslo","abc.html"),
"Jarda" => array("Takyheslo","abcd.html"),
"Monika" => array("Jineheslo","abcde.html"),
);
sleep(2);
if($hesla[$_POST['jmeno']][0] == $_POST['heslo']) header("location: ".$hesla[$_POST['jmeno']][1]);
else header(location: neznam.html);
 
Nahoru Odpovědět 8.8.2013 19:40
Avatar
Kit
Redaktor
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Kit:

To tam asi zůstalo z nějakých pokusů. Také občas zapomenu vyhodit z ukázky balast.

Nahoru Odpovědět 8.8.2013 20:39
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Martin Konečný (pavelco1998):

Mně nepřijde, že je to "zbytek z pokusů", převážně kvůli této části věty: "když už to chce takhle tak dodám sleep ...". Z toho soudím, že je to tam záměrně, ale nevím proč. :-)

 
Nahoru Odpovědět 8.8.2013 20:48
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na jan.vencl
David Hynek:

to neřeš, k tomu dojde časem.

Nahoru Odpovědět 8.8.2013 20:49
Čím víc vím, tím víc věcí nevím.
Avatar
Kit
Redaktor
Avatar
Nahoru Odpovědět  +1 8.8.2013 20:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
jan.vencl
Redaktor
Avatar
jan.vencl:

Zamezí to použití Brute-Force:)

 
Nahoru Odpovědět  +2 9.8.2013 0:13
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na ­Villagers
Inoue Yūki:

Jestli chceš v PHP pomoct, tak mi napiš, nějak ti určitě pomůžu. Takové kódy mi dávají pěstí do obličeje. :D

Nahoru Odpovědět  +1 9.8.2013 6:27
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na ­Villagers
Inoue Yūki:

Nemáš zač, jsem na chatu, jestli máš teda zájem.

Nahoru Odpovědět 13.8.2013 12:07
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 38 zpráv z 38.