Autor Zpráva
libor XYZ
Profil
dobrý den,

prosím o radu... do teď jsem proměnnou v menu předával prostřednictvím příkazového řádku:

echo ("<a href= $PHP_SELF?id=$data[id] > $data[menu] </a> <br> ");

rád bych využil session, které ale do tého konstrukce neumím začlenit... nasměruje mě nekdo prosím jak na to?

díky Libor
Radovan789
Profil *
Jsou to základy PHP:

echo("text"."text"."text")
//vypíše: texttexttext

$promena = "text2";
echo($promena.$promena)
//vypíše: text2text2

$promena = "text2";
echo($promena." mezera ".$promena)
//vypíše: text2 mezera text2

//tvůj příklad:
echo ("<a href=".$PHP_SELF?id=$data[id] > $data[menu]."</a> <br>");
Keeehi
Profil
Radovan789:
1) problémy se základy máš ty
2) Odpovídáš na něco úplně jiného

libor XYZ:
//soubor1.php
session_start();
$_SESSION['idecko'] = $data[id];
echo ("<a href=\"soubor2.php\">".$data['menu']."</a> <br>");



//soubor2.php
session_start();
// místo tohoto: $promenna = $_GET["id"]; použijete následující řádek
$promenna = $_SESSION['idecko'];
libor XYZ
Profil
Keeehi:

ano tomu rozumím,

ale když mám to menu tvořeno vice odkazy generovanými v cyklu z databaze SQL? Nejak takto?

while( $data = mysql_fetch_array( $dbdata ))
          { echo ("<a href= $PHP_SELF?id=$data[id] > $data[menu] </a> <br> "); };


tak mi to asi bohužel nepomůže…

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Keeehi
Profil
libor XYZ:
tak mi to asi bohužel nepomůže…
Ano nepomůže. Když byste se chtěl toho ?id=* zbavit, zůstaly by vám odkazy všechny stejné. Podle čeho by asi měl script poznat, že jste klikl na první, druhý, nebo třetí odkaz, když jsou všechny stejné?

Pokud však těch parametrů máte v adrese více, šly by pomocí sessions zkrátit na jeden. Jeden tam však vždy zůstat musí, kvůli rozlišení odkazů mezi sebou.
libor XYZ
Profil
přesně... <:) to je můj dotaz...

jak tedy zkonstruovat dynamicky generované menu za použití session?
radas
Profil *
a co si všechny položky uložit do pole?
Keeehi
Profil
//soubor1.php
while( $data = mysql_fetch_array( $dbdata )){
  echo "<a href=\"soubor2.php?id=$data[id]\"> $data[menu] </a><br>\n";
  $_SESSIONS[$data['id']]=array($data['sloupec1'],$data['sloupec2'],$data['sloupec3'],$data['sloupec4']);
}

//soubor2.php
$idecko = $_GET['id'];
print_r($_SESSION[$idecko]);
libor XYZ
Profil
děkuji to vypadá že bude ono... prostuduji si to a zkusím...
vidím, že to už jde i dál a kromě řádků to řeší i sloupce...

ale asi mi bude vypisovat tu hodnotu "\"soubor2.php?id=$data[id]\" v navigačním řádku...
někde jsem zahlídl doporužení, že to z bezpečnostních důvodů není vhodné.
Je možné, prosím, nějak tomu vypsání zamezit?

děkuji za Vám za váš čas
Keeehi
Profil
//soubor1.php
$i=0
while( $data = mysql_fetch_array( $dbdata )){
  $i++;
  echo "<a href=\"soubor2.php?id=$i\"> $data[menu] </a><br>\n";
  $_SESSIONS["cojavim"][$i]=array($data['id'],$data['sloupec2'],$data['sloupec3'],$data['sloupec4']);
}

//soubor2.php
$idecko = $_GET['id'];
print_r($_SESSION["cojavim"][$idecko]);

V adrese se sice id přenáší, avšak jde o jiné id, než je v DB. Jestli chcete, klidně si to můžete přejmenovat třeba na "buchta".
radas
Profil *
Keeehi:
můžu se zeptat proč tam je to i? tam bych spiš dal $data['id'] co když bude odkaz odkazovat na neplatné ID?
Keeehi
Profil
radas:
Protože to id z databáze chtěl libor XYZ skrýt.
Keeehi
Profil
radas:
můžu se zeptat proč tam je to i
Protože to id z databáze chtěl libor XYZ skrýt.

co když bude odkaz odkazovat na neplatné ID?
Tak se nic nestane, protože v $_SESSIONS["cojavim"][64984] prostě nic nebude.
libor XYZ
Profil
ano, to je řešení...

nicméně ještě se trochu vrátím k tomu strytí udajů v navigačním řádku...

v nekterých redakčních systémech (určitě v Drupalovi) je volba nějak jako
"čisté URL" Jak je potom řešen přenos hodnot do další stránky pro navigaci?
Keeehi
Profil
Drupal to dělá si takto: http://www.drupal.cz/clanky/pro-webmastery/drupal-a-seo-II-cista-url
libor XYZ
Profil
<:) koukám, že jsem se ptal blbě,
já si nějak zapamatoval jen ten termín... a už si neuvědomil o čem je...
ale děkuji, super inspirativní článek hodný zamyšlení...
a teď už se nebudu prát a zkusím něco dělat...

děkuji velice Keeehi...
Keeehi
Profil
libor XYZ:
Rádo se stalo.

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