PHP a input presmerovanie

Programovacie jazyky, rady, poradňa...
scriptType
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 110
Registrovaný: 22 feb 2011, 19:34

PHP a input presmerovanie

Príspevok od používateľa scriptType »

Zdravim.
Chcem spraviť textove políčko, kde keď užívateľ zadá správny text, resp. správne heslo, presmeruje ho to na nejakú stránku. Ak zadá zlé heslo, vyskočí chybové hlásenie. Ako by ste to riešili?
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: PHP a input presmerovanie

Príspevok od používateľa 94jakub »

Neviem či je to úplne bezpečné ale:
overíš text, ak je správny presmeruješ ak nie tak hodíš cez JS alert.
A potom v tej presmerovanej stránke môžeš overiť ešte raz
a ak je zlé(alebo nieje zadané, čo sa stane ak na tú stránku niekto priamo pôjde) tak sa vrátiš na tú prvú.
Neskôr dám nejaký krátky kód ak ma nikto nepredbehne.
S.T.E.A.L.T.H
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 933
Registrovaný: 31 jan 2010, 14:44
Bydlisko: Pegasus Galaxy

Re: PHP a input presmerovanie

Príspevok od používateľa S.T.E.A.L.T.H »

Nieco take

Kód: Vybrať všetko

<!-- index.html -->
<html>
<body>
<form action="./action.php" method="post">
<table>
<tr><td>Text</td><td><input type="text" name="variable"></td></tr>
<tr><td></td><td><input type="submit" value="Send"></td></tr>

</body>
</html>


Kód: Vybrať všetko

<?php
 #
 # action.php
 #

 if(!empty($_POST['variable']))
 { 
    $test = 'correct'; //string
    $variable = $_POST['variable'];
    if($variable == $test)
    {
    header("location:tvojastranka.php");
    } 
    else if($variable != $test): ?>
    <script language="javascript">
    if(confirm('Nespravne heslo'))
      {
         window.location = 'http://google.sk';
      }
      else
      {
         window.location = 'http://google.sk';
      }

    </script>

    <?php endif; 
 }    
?>
alebo

Kód: Vybrať všetko

<?php
 #
 # action.php
 #

 if(!empty($_POST['variable']))
 { 
    $test = 'correct'; //string
    $variable = $_POST['variable'];
    if($variable == $test)
    {
    header("location:tvojastranka.php");
    } 
    else if($variable != $test): ?>
    <script language="javascript">
    alert('Nespravne heslo');
    window.location = 'http://google.sk';


    </script>

    <?php endif; 
 }    
?>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP a input presmerovanie

Príspevok od používateľa audiotrack »

ten javascript je celkom funny :)
scriptType
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 110
Registrovaný: 22 feb 2011, 19:34

Re: PHP a input presmerovanie

Príspevok od používateľa scriptType »

Ďakujem moc :) Skúsim. A dalo by sa tam, už na tú presmerovanú stránku, dorobiť funkcia, že pokiaľ nieje s predošlej stránky napísané heslo, tak ho na tú stránku nepustí? Lebo potom keby beriem iba heslo s nejakým presmerovaním potom by si mohol hocikto znova otvoriť odkaz ktorý mal po napísaní hesla. Je na to niečo? Do php a js sa moc nevyznám, zajtra idem kupovať literatúru :) Prepáčte že otravujem.

//autoeditácia príspevku (21 Apr 2011, 9:57)
Super. Funguje to v pohode :) Ďakujem moc. Len ešte tú podmienku overenia na tej strane kde ho presmeruje po tom čo zadá správne heslo...
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: PHP a input presmerovanie

Príspevok od používateľa 94jakub »

Upravené z toho scriptu čo sem dal S.T.E.A.L.T.H

Kód: Vybrať všetko

if(empty($_POST['variable'])) {header("location:tvojastranka.php");}
a ešte raz môžeš dať jednu podmienku na overenie hesla.

Kód: Vybrať všetko

$text=$_POST['variable'];
if($text!='tvoj text') {header("location:tvojastranka.php");}
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP a input presmerovanie

Príspevok od používateľa audiotrack »

tým pádom je tam celá tá podmienka if(!empty($_POST['variable'])) zbytočná
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: PHP a input presmerovanie

Príspevok od používateľa 94jakub »

hej hej potom mi to napadlo.
A len aby bolo jasné tá tvojastranka.php v mojom prípade je pôvodná stránka.

Imho keď už sme pri tom.
Nedal by sa celý ten S.T.E.A.L.T.H-ov script hodiť na tú cieľovú stránku s tým, že ak by nesúhlasilo heslo presmerovalo by na prvú stránku? Potom by nemusel mať ten action.php a ešte ďalšie podmienky na tej stránke. Myslím že by to bolo jednoduchšie.
Otázne je, či nevadí, že ide na tú stránku aj keď je heslo zlé. (Myslím kvôli bezpečnosti)
S.T.E.A.L.T.H
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 933
Registrovaný: 31 jan 2010, 14:44
Bydlisko: Pegasus Galaxy

Re: PHP a input presmerovanie

Príspevok od používateľa S.T.E.A.L.T.H »

Neviem ci si myslel toto, ale skus

Kód: Vybrať všetko

<?php
#
# action.php
#
session_start();

if(!empty($_POST['variable']))
{
    $test = 'correct'; //string
    $variable = $_POST['variable'];
    if($variable == $test)
    {
      $_SESSION['pristup'] = rand(100,999);
      header("location:tvojastranka_spravne_heslo.php");
    }
    else if($variable != $test): ?>
    <script language="javascript">
    alert('Nespravne heslo');
    window.location = 'index.html';


    </script>

    <?php endif;
}

else 
{
header("location:index.html");
}  
?>

Kód: Vybrať všetko

<?php
#
# tvojastranka_spravne_heslo.php
#
 session_start();

if(!empty($_SESSION['pristup'])): ?>
<html>
<body>
<h1>Tvoj WEB</h1>
</body>
</html>
<?php endif;

if(empty($_SESSION['pristup']))
{
  header("location:index.html");
}
?>
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: PHP a input presmerovanie

Príspevok od používateľa 94jakub »

Myslel som to trochu inak ale asi by to tiež fungovalo.
Možno som to vlastne myslel ale zjednodušene.
Toto by bol form:

Kód: Vybrať všetko

<form action="zaheslovana_stranka.php" method="post">
<input type="text" name="heslo"/>
<input type="submit" value="Ďalej"/>
</form>
A toto tá zaheslovaná stránka:

Kód: Vybrať všetko

<?php
$heslo='tvoje heslo';
$text=$_POST['heslo'];
if ($text==$heslo) {include "obsah_stranky.php";}
    else header("location:index.php"); ?>
Miesto toho header by sa dal dať ten javascript.

Poprípade na tú druhú stránku ešte pridať session v prípade, že by tam bolo viac podstránok.
S.T.E.A.L.T.H
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 933
Registrovaný: 31 jan 2010, 14:44
Bydlisko: Pegasus Galaxy

Re: PHP a input presmerovanie

Príspevok od používateľa S.T.E.A.L.T.H »

To bola otazka na autora temy, moja chyba
94jakub
takto nejako?

Kód: Vybrať všetko

<?php
#
# index.php
# 
if(empty($_POST['variable'])):
?>
<html>
<body>
<form action="./index.php" method="post">
<table>
<tr><td>Text</td><td><input type="text" name="variable"></td></tr>
<tr><td></td><td><input type="submit" value="Send"></td></tr>

</body>
</html>
<?php endif;

if(!empty($_POST['variable']))
{
    $test = 'correct'; //string
    $variable = $_POST['variable'];
    if($variable == $test)
    {
      include_once('content.php');
    }
    else if($variable != $test): ?>
    <script language="javascript">
    alert('Nespravne heslo');
    window.location = 'index.php';


    </script>

    <?php endif;
}

?>

Kód: Vybrať všetko

<!-- content.php -->
<html>
<body>
<h1>Tvoj WEB</h1>
</body>
</html>
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: PHP a input presmerovanie

Príspevok od používateľa 94jakub »

Hej aj takto by sa to dalo. Ty si to dal všetko do jednej stránky.
Ja som mal na mysli:
z prvej stránky by si s heslo išiel na druhú. Na tej by sa overilo či je správne. Ak hej tak zobrazí druhú stránku a ke nesprávne tak ťa vráti na prvú.
Myslím, že to je už jedno. nemusíme si tu vymienať scripty. Asi by fungoval každý.
Autor témy si môže aspoň vybrať. :)
scriptType
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 110
Registrovaný: 22 feb 2011, 19:34

Re: PHP a input presmerovanie

Príspevok od používateľa scriptType »

Presne tak ako si napísal 94jakub :) . Veľká vďaka za pomoc.
Napísať odpoveď