Avatar
eraz.gajdos
Člen
Avatar
eraz.gajdos:

Zdravím všetkých,

naskytol sa mi dnes jeden problém v php, ktorý som vôbec neočakával, mám viacero formulárov v jednom scripte ošetrených podmienkami, ak je splnená jedna podmienka tak sa vykonáva daný formulár ak tá druhá podmienka tak sa vykonáva iný formulár... Problém je v tom, že to čo robím je niečo v zmysle, zobrazím si profil užívateľa na stránke ak kliknem na tlačidlo upraviť na spodu stránky tak mám možnosť prepísať meno login atď.... ak stlačím tlačilo zmeniť heslo odbjava sa mi ešte tri vstupy pre zmenu hesla, k tomu všetkému mám tlačidlo ulož zmeny ktoré ukladá tieto zmeny do databázy... problém je v tom, že ak stlačím prvýkrát upraviť tak tlačidlo ulož zmeny funguje a odošle všetky veci tam kam treba, ak však stlačím upraviť a potom ešte aj zmeniť heslo, tak tlačidlo uložiť zmeny mi len refreshne aktuálnu stránku... Čo vlastne znamená ako keby odosielalo formulár len na aktuálnu stranu ( taký formulár tam je ) ale mám ho zapodmienkovaný a skúšal som echo v každej podmienke a podmienky sa vykonávajú tak ako majú, koniec koncov raz to tlačidlo ide a potom nejde a používam stále rovnaké tlačidlo aj rovnaký formulár... absolútne neviem nájsť v čom je problém.... bol by som vďačný za každú radu.

if(!isset($_GET['id'])) {
                if(!isset($upravujem) && !isset($_SESSION['upravujem'])){

                    echo'<form action = "" method = "post" >';
                }
            if(isset($upravujem) ||isset($_SESSION['upravujem']) ) {

                echo '<form action = "zisti.php" method = "post" >';


            }
            }
            if(isset($upravujem)){

                echo'<table>';
                echo'<tr><td><label for="meno" >Meno:</label></td><td><input type = "text" name="meno" value ='.$meno.' ></td></tr><br>';

                echo'<tr><td><label for="priezvisko" >Priezvisko:</label></td><td> <input type = "text" name="priezvisko" value ='.$priezvisko.' ></td></tr><br>';

                echo'<tr><td><label for="login" >Login:</label></td><td><input type = "text" name="login" value ='.$login.'></td></tr><br>';

            } else {
                echo '<table>';
                echo '<tr><td><label for="meno" >Meno:</label></td><td> <label for="meno1" >' . $meno . '</label></td><td></tr><br>';

                echo '<tr><td><label for="priezvisko" >Priezvisko:</label></td><td> <label for="prizvisko1" >' . $priezvisko . '</label></td></tr><br>';

                echo '<tr><td><label for="login" >Login:</label></td><td><label for="login1" >' . $login . '</label></td></tr><br>';

            }

                 if($_SESSION['prihlaseny'] != 0 ){
                        if(isset($_SESSION['menimHeslo'])){

                         echo ' <tr><td><label for="heslo">Staré heslo: </label></td>';
                         echo '<td><input type = "password" name = "heslo" ></td></tr><br >';
                         echo ' <tr><td><label for="hesloNove">Nové heslo: </label></td>';
                         echo '<td><input type = "password" name = "hesloNove" ></td></tr><br >';
                         echo ' <tr><td><label for="hesloNove2">Nové heslo znovu: </label></td>';
                         echo '<td><input type = "password" name = "hesloNovoe2" ></td></tr><br >';
                            unset($_SESSION['menimHeslo']);

                     }
                     echo '</table>';

                    if(isset($_GET['id'])){

                        echo '<form action="zisti.php" method="post">';
                        echo '<button type="submit" name="zrus" value='.$id.'>zrušiť priateľstvo</button><br>';
                        echo '<button type="submit" name="zobraz" value='.$id.'>zobraziť fotky</button><br>';

                        echo '</form>';
                    }else {

                        if(!isset($upravujem) &&  !isset($_SESSION['upravujem']) ) {

                            echo ' <input type = "submit" class="tlacidlo" name="Upravit" value = "Upraviť" >';
                            echo '</form>';
                        }if(isset($upravujem)  || isset($_SESSION['upravujem'])) {

                            echo '<input type = "submit"  name="heslo" value = "Zmeniť heslo" >';
                            echo '<input type = "submit"  class= "tlacidlo" name="Uloz" value = "Uloz zmeny" >';
                            unset($_SESSION['upravujem']);
                            echo '</form>';
                        }

                    }
                }
if(isset($_POST["heslo"])) {


        $_SESSION['menimHeslo'] = $_POST["heslo"];
        $_SESSION['upravujem'] = 1;

        header("location:upravit.php");
        exit;

}
if(isset($_POST["Uloz"])) {


        $_SESSION['meno']= $_POST["meno"];
        $_SESSION['login']= $_POST["login"];
        $_SESSION['priezvisko']= $_POST["priezvisko"];
        /
        //header("location:aktualizuj.php");

        exit;

}

prvý kód je tá oblasť v ktorej je zrejme problém, druhý je časť php skriptu v ktorom zisťujem, že ktoré tlačidlo bolo stlačené a následne to čo sa má vykonať... prvýkrát to tlačidlo ulož zmeny funguje ( ak nie je zvolená aj možnosť zmeniť heslo) ak je vybraná aj možnosť zmeniť heslo tak tlačidlo ulož zmeny len refreshne aktuálnu stránku ale v kóde sa nič nezmenilo používajú sa stále rovnaké formuláre aj podmienky... vôbec nechápem, kde je problém

 
Odpovědět 31.12.2015 16:22
Avatar
eraz.gajdos
Člen
Avatar
eraz.gajdos:

Tak podarilo sa mi nájsť v čom je problém, no aj tak neviem ako ho vyriešiť.. Problém je v tom, že keď stlačím tlačidlo zmeniť heslo tak stránka vyzerá presne tak ako má vyzerať ale zdrojový kód stránky je iný ako to čo na stránke je zobrazené respektíve v zdrojový kód je kód default stránky profilu predtým ako niečo vôbec stlačím a teda tam je vytvorený formulár ktorý sa posiela sám na seba takže aj keď tam mám tlačidlo ulož zmeny a ine tlačidla tak všetky tlačidlá sa správajú rovnako... absolútne nechápem kde je problém, ako môžem mať zdrojový kód stránky iný ako to čo ja na stránke vidím ?

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět 1. ledna 13:31
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 2 zpráv z 2.