Autor Zpráva
Martin02
Profil
zdravim…
chtěl jsem si udělat na můj web, jednoduchý heslovaný přístup. Jen tak, že by se na začátku zobrazil formulář, čtenář zadal heslo a uviděl by obsah stránky. Něco takového jsem zkoušel udělat, ale nefungovalo to. Prosím napište mi proč.

<?php

  echo '<form action="index.php" method="post">
        <p>Heslo! <input type="password" name="pass" size="15" maxlength="12" /></p>
        <br />
        <input type="submit" value="odeslat" />        
        </form>';
        
  $pass=$HTTP_POST_VARS[pass];        
        
  
  if($pass==xxx) {
    echo '<p>Přihlášení úspěšné</p>';
    }
  
?>

děkuji


Moderátor panther: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
_Daffy
Profil
<?php

  echo '<form action="index.php" method="post">
        <p>Heslo! <input type="password" name="pass" size="15" maxlength="12" /></p>
        <br />
        <input type="submit" name="dale" value="odeslat" />        
        </form>';
        
               
  if(isset($_POST["dale"])){
  $pass=$_POST["pass"]; 
  if($pass=="xxx") {
    echo '<p>Přihlášení úspěšné</p>';
    }
}  
?>
Martin02
Profil
a když to mam teda takhle

<?php

  echo '<form action="index.php" method="post">
        <p>Heslo! <input type="password" name="pass" size="15" maxlength="12" /></p>
        <br />
        <input type="submit" name="dale" value="odeslat" />        
        </form>';
        
               
  if(isset($_POST["dale"])){
  $pass=$_POST["pass"]; 
  if($pass=="xxx") {
    include "funkce.php";
    head();
      echo '<title>Webcars</title>';
    hlavicka();
    lcd();
    ucod();
    paticka();    
    }
  
}
  
?>


jak mam udělat, aby se po zadání správného hesla ten formulář vymazal?
_Daffy
Profil
<?php
if(isset($_POST["dale"])){
  $pass=$_POST["pass"]; 
  if($pass=="xxx"){
    include "funkce.php";
    head();
    echo '<title>Webcars</title>';
    hlavicka();
    lcd();
    ucod();
    paticka();    
  }
}else{
  echo '<form action="index.php" method="post">
        <p>Heslo! <input type="password" name="pass" size="15" maxlength="12" /></p>
        <br />
        <input type="submit" name="dale" value="odeslat" />        
        </form>';
}
Martin02
Profil
promiň, ale jak je teď celý ten kód?
já nevim kam to mám vložit
_Daffy
Profil
vždiť jsem ti napsal celý kód :)
Martin02
Profil
jo, asi si to tam vložil, při tom co jsem psal tu zprávu :)
Martin02
Profil
už sem na to přišel.
Já tam pořád strkám něco navíc a proto mi to nejde, ale teď už jo.
mockrát dík, a ještě mohl bys mi prosím vysvětlit tohle? co na tom co znamená, proč takhle atd.?

if(isset($_POST["dale"])){
  $pass=$_POST["pass"]; 
_Daffy
Profil
if(isset($_POST["dale"])) = pokračování, pokud odešle name="dale" ..pokud ne tak nic ..tedy ve tvém případě má name="dale" <input submit.

$pass=$_POST["pass"] = jednoduchá definice metody POST, odeslaná hodnota name="pass" ( ve tvém případě <input name="pass" ...jak sis definoval )
Martin02
Profil
a prosimtě, když čtenář do formuláře něco napíše, jaká proměná z toho vyleze? někde jsem četl, že to co napíše je $HTTP_POST/GET_VARS[jmeno_promenne];
z toho jsem předtím vycházel
_Daffy
Profil
jsou to superglobalni proměnné ( $HTTP_GET_VARS, $HTTP_POST_VARS .... ) $_POST , $_GET .. jsou jejich kratší varianty, které lze použit od verze 4.1 tuším..ale jinak je to celkem jedno ...

tedy,, využiti je u obou stejné, ale ja používám $_POST ..proto jsem ti to přepsal ..
Martin02
Profil
jj dík

tu jsem objevil chybu: čtenář zadá heslo a prohlíží stránku. Když ťukne na odkaz, který odkazuje na v mém případě index.php, znovu se objeví formulář. Jak tomu zabránit?
panther
Profil
Martin02:
nastuduj si něco o sessions.
_Daffy
Profil
to není chyba, to je už zase o něčem jiném, tys chtěl pouze po zadání hesla aby zmizel formulář..nato musíš použít cookie / session ..
Martin02
Profil
hm
taky jsem o tom něco četl, ale to zatím necháme být...

MOCKRÁT VÁM DĚKUJI!
Majkl578
Profil
[#12] _Daffy:
ale jinak je to celkem jedno …
Jednot o není, je to závislé na konfiguraci register_long_arrays, která musí být on, dále jde o deprecated a od další verze odstraněnou věc. Neuváděj tu prosím nepravdivé informace.

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