Autor Zpráva
nekron
Profil *
Ahoj. Mám opravdu velice záhadný problém. odesílám post z jednoho formuláře na stránku. Pokud na stránce, kde se ten post odchytává si ho takhle nechám vypsat :

     echo $_POST['login_send'];
     echo "<br>";
     #echo $_POST['login_send'];
     #exit;
     if(isset($_POST['login_send']) and ($_POST['login_send'] == 'x')){......

tak se normálně vypíše, ale v okamžiku kdy odpoznámkuju ten exit ... post zmizí. Prostě už neexistuje... Notice: Undefined index: login_send in C:\dev\www\login_working.php on line 11. Nechápu. Nevíte co by mohlo bejt špatně?


omlouvám se...

     
     echo $_POST['login_send'];
     echo "<br>";
     #echo $_POST['login_send'];
     exit;
     if(isset($_POST['login_send']) and ($_POST['login_send'] == 'x')){

takhle ten post funguje...

     echo $_POST['login_send'];
     echo "<br>";
     #echo $_POST['login_send'];
     #exit;
     if(isset($_POST['login_send']) and ($_POST['login_send'] == 'x')){

takhle ne. sem to nazačítku napsal špatně.
Taps
Profil
nekron:
ale v okamžiku kdy odpoznámkuju ten exit ... post zmizí.
exit totiž ukončí skript
nekron
Profil *
Jooo jo sem to jsem špatně napsal. je zapoznámkovanej a post zmizí.


sem to celý napsal zmateně opráceně už jak jsem z toho sám zmatenej
nekron
Profil *
No nechápu to. zkouším různě přehazovat ten exit a když tam nějakej exit neni, tak prostě to nefunguje. Je nějaká podmínka v php že někdě musí bejt exit; ??
Taps
Profil
nekron:
ukaž formulář + kod, který zpracovává poslaná data
nekron
Profil *
tohle je prvni php : login.php

<?php
     if(!isset($_SESSION['nick_login'])){
          $_SESSION['nick_login'] = "";
          $smarty->assign("uzivatelsky_nick","",true);
     }else{
          $smarty->assign("uzivatelsky_nick",$_SESSION['nick_login'],true);
     }
     $smarty->display($_SESSION['language'].'/templates/login.tpl');
?>

tohle je html kterej to odesílá. SMARTY... login.tpl

<h1>Přihlášení</h1>
<form action="music_portal.php?page=login_working" method="post">
     <input type="text" id="nick_login" name="nick" maxlength="20" value ="{$uzivatelsky_nick}">
     <br>
     <input type="password" name="password" maxlength="255" value ="">
     <br>
     <input type="submit" name="login_send" value="x">
</form>
<script type="text/javascript">
     document.getElementById("nick_login").focus();
</script>

no a tohle to zpracovává : login_working.php

<?php

     if(isset($_POST['login_send']) and ($_POST['login_send'] == 'x')){
          echo "konecne";
     }else{
          echo "post neexistuje. proč?";
          exit;
          $lokalita = "music_portal.php?page=login&system_window=17";
     }
     header ("Location: " . $lokalita);
     exit;
?>



a podmínka se prostě zááhadně vybere podle toho kde je umístěnej exit; ... prostě tomu fakt nerozumim.


když to přehodim jako takhle :

<?php

     if(isset($_POST['login_send']) and ($_POST['login_send'] == 'x')){
          echo "konecne";
          exit;
     }else{
          echo "post neexistuje. proč?";

          $lokalita = "music_portal.php?page=login&system_window=17";
     }
     header ("Location: " . $lokalita);
     exit;


?>

tak vypíše "konecne" :DDD prostě to je nějaká komedie... ta podmínka se rozhodne podle toho kde je umístěnej exit; jak je tohle možný?
Davex
Profil
Když přesměruješ pomocí hlavičky Location na 11. řádku, tak uvidíš až stránku na cílové adrese, kam se při přesměrování $_POST nepřenáší. Jakmile ukončíš skript příkazem exit, tak se skript ihned ukončí a nikam se nepřesměrovává.
nekron
Profil *
Davex:
Já vám buď nerozumím nebo vy mě. To s tim nemá nic společného. KDyž řádek 11 zapoznámkuju děje se to samé


Podmínka se rozhodne podle toho kde je exit. ta část podmínky se prostě vybere.


Davex:
Ahaaa. Já možná začínám chápat... jako že by to celý ta záhada byla tím že jsem taková guma že to vlastně znova přesměrovávám samo na sebe a takže se to protočí jako... a pak tam logicky ten post neni už.


Ale vždyť já přece tu lokalitu vracím na login... né na login_working ... sem zmatený sám ze sebe už
Davex
Profil
Stačí vyzkoušet tyto dva skripty, které by měly shodně vypsat konecne a jejich provedení by nemělo být závislé na umístění příkazu exit.

<?php
 
     if(isset($_POST['login_send']) and ($_POST['login_send'] == 'x')){
          echo "konecne";
          exit;
     }else{
          echo "post neexistuje. proč?";
          $lokalita = "music_portal.php?page=login&system_window=17";
     }
exit;
// nic dalšího

<?php
 
     if(isset($_POST['login_send']) and ($_POST['login_send'] == 'x')){
          echo "konecne";
     }else{
          echo "post neexistuje. proč?";
          exit;
          $lokalita = "music_portal.php?page=login&system_window=17";
     }
exit;
// nic dalšího
nekron
Profil *
Davex, Davex:
Děkuju Vám. Děkuju! Bez Vás bych z toho měl zas záhadu na týden. Už to chápu. :)

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