Autor Zpráva
Bita
Profil *
Zdravím všechny, prosím Vás o pomoc s url.

Mám odkaz : <a href="?dotaz=true">Zeptat se </a>

Samozřejmě když na něj kliknu tak mám url například : localhost/modules/no_parametr/index.php?dotaz=true

A chci jen to, že když na ten odkaz kliknu tak se zobrazí jen localhost/modules/no_parametr/index.php , ale parametr se samozřejmě předá, řeším to už jakou dobu i jsem se díval zde na diskuzi, ale jaksi mi nic nepomohlo :-(.

Předem díky všem za odezvu.
Seki
Profil
Nevím, co tě k tomu vede, ale napadá mě několik řešení:
> Použít javascript k úpravě URL po zpracování akce
> Použít koláčky nebo session, pro předání hodnoty
> Nebo můžeš odkaz nahradit formálářem a buttonu přiřadit styly, aby vypadal jako běžný odkaz
Bita
Profil *
Seki:

1)Javascript jsem už zkoušel a funguje, jen je problém v tom že jde tak na pul sekundy ještě vidět url s tím parametrem takže by to někdo mohl vklidu přečíst :-(
2)session a cookie nevím jak dát do parametru v odkazu :-/
3) a formulář mi nepomůže protože ten odkaz je v cyklu a u každeho příspěvku má get parametr jinou hodnotu a to mi funguje jen u get odkazu

a proč to chci udělat ? Mám třeba delete=username & vzkaz=user_vzkaz a když to někdo uvidí tak vklidu může dopsat za parametr jineho uživatele a jeho zprávu a smaže ji ...
Taps
Profil
Bita:
Tak udělej takové opatření, aby si pouze přihlášený uživatel mohl mazat své vlastní zprávy. Ke smazání jiných zpráv nebude mít oprávnění.
Bita
Profil *
Taps:

to mám stylem, že jen u toho kdo ty příspěvky inzeroval tak má nabídku odstranit ... ale vlastně já bych mohl pak ještě ten parametr zkontrolovat...díky za typ jdu to vyzkoušet :-)
Taps
Profil
Bita:
kontrolulj aktuálně přihlašeného uživatele a vlastníka inzerátu...v případě shody bude možné inzerát smazat.
Bita
Profil *
Taps:

ale pokud jsem do té adresy dopsal ty parametry ručně tak to nefunguje :-/ a normalně by kdokoliv mohl smazat cizí příspěvek....


Taps:
to jsem udělal ale prostě mi to ignoruje podmínku pokud to napíšu ručně do adressbaru
Taps
Profil
Bita:
jak vypadá tvůj skript ?
Bita
Profil *
Takhle mám podmínku, get odstranit je vlastně prezdivka majitele toho příspěvku

 if($_GET['odstranit']!=$_SESSION['prezdivka']){
echo "FALSE";
}else{
echo"TRUE";
}
Taps
Profil
Bita:
níže uvedené příkazy vypíší shodné údaje ?
<?
echo $_GET['odstranit'];
echo $_SESSION['prezdivka'];

?>
Bita
Profil *
Taps:
ano přesně tak
Taps
Profil
Bita:
tím pádem nevidím žádný problém.
Bita
Profil *
no právě já taky ne a i přesto to nefunguje :-/
Taps
Profil
Bita:
nebude chyba tedy v jiné části kodu ?
Bita
Profil *
tam prostě musí být nějaký rozdíl nebo fakt nevím .... mám přezdívku kony , majitel inzerátu je kony a přesto to hodí FALSE...a když jsou přezdívka a majitel inzerátu rozdílní tak to taky hodí FALSE
Taps
Profil
Bita:
tak to zkus otočit

<?
 if($_GET['odstranit'] == $_SESSION['prezdivka']){
echo "TRUE";
}else{
echo"FALSE";
}
?>
odkaz na živou ukázku by nebyl ?
Bita
Profil *
Taps:
Nefunguje , no můžu to vyscreenovat a dát sem obrázky, pomohlo by to víc pro přehled ?
Taps
Profil
Bita:
nejraději bych se podíval na celý skript na FTP
Bita
Profil *
není zase tak extrémně dlouhý, můžu ho dát i sem ?
Taps
Profil
dej ho i sem.
Bita
Profil *
TOTO JE KÓD KTERÝ MI VYPISUJE PŘÍSPĚVKY I S ODKAZY: když je přihlášený uživatel vlastníkem příspěvku tak se mu u něj ukáže odstranit, pokud není vlastníkem tak se mu zobrazí odpovědět to funguje bez problému. Samotný problem je pod tímhle kódem.
if ($radku == 0) {
    echo "Prozatím nebyl vložen žádný příspěvek";
} else {

    while ($zaznam = MySQL_Fetch_Array($vypis)):
        $vlozil1 = $zaznam["vlozil"];
        $duvod1 = $zaznam["duvod"];
        $vek1 = $zaznam["vek"];
        $zprava1 = $zaznam["zprava"];

        echo "<div id='ram'><table><tr>";

        echo "<td>" . $zaznam["datum"] . " | ";
        echo $zaznam["duvod"] . " | ";
        echo $zaznam["vlozil"] . " | ";
        echo $zaznam["vek"] . " let</td></tr>";
        echo "<tr><td>" . $zaznam["zprava"] . "</td></tr>";

        if ($vlozil1 != $_SESSION['prezdivka']) {
            echo "<tr><td><a href='?odpovedet=$vlozil1 & duvod=$duvod1 & vek=$vek1 & zprava=$zprava1'>Odpovědět</a></td></tr>";
        } else {

            echo "<tr><td><a href='?odstranit=$vlozil1 & zprava=$zprava1'>Odstranit</a></td></tr>";
        }
        echo "</table></div>";

    endwhile;
}

Zde nastane problém při porovnávání session a get
pod proměnnou GET['odstranit'] je vlastně uložená přezdívka majitele příspěvku

i
if (isset($_GET['odstranit']) && isset($_SESSION['prezdivka'])) {


    if ($_SESSION['prezdivka'] == $_GET['odstranit']) {
        echo"spravně";
    } else {
        echo"Špatně";
Taps
Profil
Bita:
máš tam na začátku souboru
session_start() ?
Bita
Profil *
jojo :-) to tam je, i mě to zobrazí třeba přezdivka: kony majitel: kony ale i přesto to hodí FALSE
Taps
Profil
Bita:
zkus ořezat mezery
<?
 if (trim($_SESSION['prezdivka']) == trim($_GET['odstranit'])) {
        echo"spravně";
    } else {
        echo"Špatně";
?>
Bita
Profil *
Ježiš ja jsem idiot na entou .... DĚKUJU MOC, pomohlo !!


fakt díky moc, nemusím řešit už ani to URL protože takto je to daleko snažší.... takže jsi mě ušetřil dost práce :-)
Taps
Profil
Bita:
každopádně se zkus takových problémů do budoucna vyvarovat, úšetří ti to hodně práce.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0