Autor Zpráva
veredico
Profil
Zdravím Vás,
chtěl bych se zeptat, zda někod víte jak upravit popřípadě kód níže tak, aby při zadání špatného "hesla", se nezobrazila stránka 404, ale například alert informující o špatném zadání, repsektive o nenalezení souboru, na který se má odkazovat.

Nebo jestli víte jak tento krok udělat lépe, tak budu rád, nejlepší by bylo PHP... Díky.
P.S. v konečném adresáři má být X souborů, kde to X se bude pravidelně měnit v názvu souboru.

    <form name="formular" onsubmit="return false">
Heslo: <input type="password" size="16" name="heslo">
<input type="submit" class="button" value="Pokračovat" onclick="window.location.href = '# + document.formular.heslo.value + '.php' ">
</form>
Corwin
Profil
ahoj, pokud chceš přihlašování takto řešit pouze javascriptem, pak ti nezbývá než to heslo natvrdo uvést do zdrojového kódu. jinak totiž podmínku o správnosti / špatnosti hesla dokupy nedáš... takže ideálně celé předělat aby se to validovalo v php.

<?php
  // před jakýmkoli html výstupem
  session_start();

  if(!in_array($_POST['heslo'], array("spravne_heslo_1", "spravne_heslo_2", "atd"))){
    $message = "<p>Špatné heslo</p>";
  }else{
    $_SESSION['logged'] = true; // abys s tim mohl pracovat i na te druhe strance
    header('Location: ./'.$_POST['heslo'].'.php");
  }
?>

<? if(!empty($message)){ echo $message; } ?>
<form name="formular" action="sam_na_sebe.php" method="post">
  Heslo: <input type="password" size="16" name="heslo">
  <input type="submit" class="button" value="Pokračovat" />
</form>

// edit: ještě jsem to upravil aby to bralo víc možností hesla
veredico
Profil
Tohle vypadá velice dobře, určitě to na něco využiji, ale můj momentální problém to nikterak neřeší.
header('Location: ./tajna_stranka.php"); určuje pouze jeden soubor, který se po zadání hesla otevře. Já potřebuji něco ve smyslu jako je ten javascript, protože v cílové destinace bude X souborů. Úkolem toho zadání je, aby se otevřel ten daný soubor, který napíšu do toho inputu. To znamená

input = mareknovotny = otevre se soubor mareknovotny.php if mareknovatovsky = soubor s timto nazvem neexistuje, napisu alert "heslo" je spatne zadane.


Asi bych měl ještě dodat, že to asi musí být java, protože soubory na které to bude odkzaovat jsou na jiném webovém serveru...
Corwin
Profil
odpověděl jsi dřív než jsem stihl upravit svůj příspěvek :-) je to upravené aby to otevíralo to co má.

veredico:
Asi bych měl ještě dodat, že to asi musí být java

Java? jak Java? header location lze zaslat i na externí url, s tím problém není. a jestli to budeš chtít otevírat do nového okna, stačí tam jenom vypsat javascript s window.open();
Keeehi
Profil
Corwin:
Java? jak Java?
Pravděpodobně myslel javascript


veredico:
Co javascriptem vytvořit img element, jako src mu zadat tu cestu a pomocí onload a onerror zjistit, zda ten soubor existuje nebo ne?
veredico
Profil
Keeehi:
Vůbec netuším, jak je to myšleno. Mohl bych požádat o nějaký příklad?

Corwin:
Myslel jsem javascript.
Keeehi
Profil
veredico:
Nechápu, co je na tom nejasného, zdá se mi, že jsem to popsal srozumitelně, ale tak to zkusím znovu v krocích
1) vytvořit javascriptem img element www.w3schools.com/jsref/met_document_createelement.asp
2) nastavit mu nějakou funkci, která se spustí v případě úspěchu (onload) stackoverflow.com/questions/14648598/is-it-necessary-to-set-onload-function-before-setting-src-for-an-image-object
3) nastavit mu nějakou funkci, která se spustí v případě neúspěchu (onerror) - typově stejné jak 2
4) nastavit mu src www.w3schools.com/jsref/prop_img_src.asp

No a v těch funkcích bude buď to přesměrování pro úspěch nebo nějaký ta zpráva pro neúspěch.

Jestli ale čekáš hotový kód, tak ode mě to nebude. Na to tu je sekce práce a zaázky. A pokud jsi tím příkladem měl na mysli něco co už existuja a na co by jsi se tedy mohl podívat, tak si myslím, že nic takového neexistuje. To to chceš je velmi nestandartní (i když ne nijak složité) a nemaslím si, že by existoval nějaký zdroj který by byl hodný odkazování.
veredico
Profil
Keeehi:
Díky za radu, to jak jsi to napsal je to co potřebuji, už mi to funguje, Díky!

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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