Autor Zpráva
blast3r
Profil
<form name="spracuj" method="post" action="index.php?page=odkazy&action=send">
Preco toto neni validne?
Potom ako mam preniest udaje $_GET['action'] ?
Pre presnost tu je link http://www.blaster.profitux.cz/index.php?page=katalog dole je odkaz na skontrolovanie validity
Jiří Bureš
Profil *
Znak & by měl být zadaný znakovou entitou &amp;.

Protože nevím, jak toto fórum zachází se znakovými entitami, tak je potřeba za znak & v adrese doplnit amp; (text amp a středník).
blast3r
Profil
Dik, na toto by som urcite neprisiel :))
Jiří Bureš
Profil *
Ale jo. Přišel. Otázkou je kdy :-)
Yuhů
Profil
Vůbec nejde o validitu znaku &. Ten se sice (mimochodem) do url má psát jako &amp;, ale v tomto případě je problém v něčem jiném.

Parametry se nedají psát přímo do action. Na to jsou skryté inputy. Takhle je to správně:

<form name="spracuj" method="post" action="index.php">
<input type="hidden" name="page" value="odkazy">
<input type="hidden" name="action" value="send">
...
Yuhů
Profil
> Potom ako mam preniest udaje $_GET['action']

přes $_GET to nepůjde, ale přes $_POST by neměl být problém
blast3r
Profil
No, asi si nerozumieme :)
Udaje ako su url stranky, popis stranky a nazov stranky -> prenasam ich cez $_POST
action -> cez $_GET
No a potom uz len scipt:


if ( ($_GET['action'] == "send") && ($_POST['url'] !== "") && ($_POST['nazov'] !== "") && ($_POST['popis'] !== ""))
{
......
}

elseif (($_GET['action'] == "send") && ($_POST['url'] !== "" || $_POST['nazov'] !== "" || $_POST['popis'] !== ""))
{
echo "<h3>Vyplnte prosím vsetky povinné údaje</h3>";
echo "<a href='JavaScript:history.back(-1)'>Spät</a>";
}

else
{
include("$file");
}
drake127
Profil *
Umístění znaku & do stránky skutečně není validní, protože prohlížeč by měl/mohl pokládat text za ním, za definici znakové entity.

Je naprosto bez problémů dávat do action parametry (get) a formulář posílat přes method="post". Tím pádem skriptu dojdou některé proměnné v get a jiné v post. Nakolik je to využitelné záleží na tom, co zrovna děláte.

Já třeba do kódu často dávám toto:
if (isset($_GET['page']))
$page = $_GET['page'];
if (isset($_POST['page'])) // POST má prioritu před GET, pokud jsou poslané obě dvě
$page = $_POST['page'];
if (!isset($page)) // Pokud není ani jedna
$page = 'home';
if (!is_readable("./$page.php")) // A pokud neexistuje.
$page = '404';
DoubleThink
Profil *
drake127

Přesně tak

Je to jedninný způsob jak poslat zároveň POST i GET data

Toto funguje:
<form action="?action=write" method="post">

Toto ne:
<form action="?action=write" method="get">
blast3r
Profil
JJ, ja s vami suhlasim ale neviem aky ma vyznam to co Yuhu pisal-
<form name="spracuj" method="post" action="index.php">
<input type="hidden" name="page" value="odkazy">
<input type="hidden" name="action" value="send">
drake127
Profil *
Yuhu pouze převedl proměnné, které ty posíláš pomocí get do post a poslal je se zbytkem formuláře.
Victorius
Profil
V odkazech používej entitu &amp;
validátor to žere
Toto téma je uzamčeno. Odpověď nelze zaslat.