Autor Zpráva
JakubZ
Profil *
Ahoj, prosímvás poraďte, už se s tím mořím opravdu dlouho. Mám PHP ověřovací stránku, která porovná s databází jméno a heslo přihlašujícího, a potom stránku kam potřebuji jméno předat pomocí session. Bohužel ač session založím a předám metodou GET do další stránky její SID, SID se v adrese neobjeví. Příklad:
http://www.server-baby.cz/dopispriteli/rozcestnik.htm
Na zkoušku můžete použít jméno Jakub bez hesla.

Kód přihlašovací stránky:

<?
session_start();

$jmeno = $_POST["jmeno"];

//session_register("jmeno");

//echo $_SESSION["jmeno"];

$_SESSION["jmeno"] = $jmeno;


$hodnota=session_id();
$name = session_name();
$link = $name."=".$hodnota;


$server_db = "";
$uzivatel_db = "";
$heslo_db = "";

$spojeni = MySQL_Connect($server_db, $uzivatel_db, $heslo_db) or die(mysql_error());
echo $jmeno;

$num = MySQL_db_Query("serverbaby","SELECT * FROM dopispriteli WHERE jmeno = '$jmeno' AND heslo = '$heslo'") or die(mysql_error());


$jetam = mysql_num_rows($num);

if ($jetam == 0) {
Echo "Omlouváme se, ale nebylo možné přihlášení.";


}
else {

// <input type=\"hidden\" value=$hodnota name=$name>

echo"

<form action=\"diskuse.php?".$link."\" method=\"get\">

Byli jste bezpečně přihlášeni. Pokračujte <input type=\"submit\" value=\"ZDE\">

</form>
";
}


?>

Kód další stránky:
<?
session_start();

//session_register("jmeno");

$jmeno=$_SESSION["jmeno"];


echo $jmeno;


?>

<script type="text/javascript">
function Smile(what)
{
document.forms.smajly.vzkaz.focus();
document.forms.smajly.vzkaz.value=
document.forms.smajly.vzkaz.value+what;
}
</script>
<table align="right">
<tr>
<td>
<a href=odhlaseno.php>Odhlásit</a>
</td>
</tr>
</table>
<?PHP


if(!isSet($jmeno)){
header("Location: chyba.htm");
}
$pripojenikdat = MySQL_Connect("");
MySQL_Select_DB("serverbaby");

$vzkazodni = mysql_query("(SELECT id,jmeno,vzkaz,datum FROM dopispriteli WHERE jmeno='$jmeno') UNION (SELECT id,jmeno,vzkaz,datum FROM dopispriteli WHERE pro='$jmeno') ORDER BY id DESC");



$pocetzaznamu = MySQL_Num_Rows($vzkazodni);


if ($pocetzaznamu<5){
echo "Nyní je registrováno ".$pocetzaznamu." vzkazů";
}
echo"

<table bgcolor=\"lightblue\" border=\"1\" width=\"555\">


<form action=\"pridatvzkaz.php\" name=\"smajly\" method=\"post\">

<tr>
<td colspan=\"3\">

<textarea name=\"vzkaz\" id=\"vzkaz\" rows=\"8\" cols=\"65\">
</textarea>
</td>
</tr>
<tr>
<td colspan=\"3\">
<img onclick=\"Smile(':o) ')\" src=\"smajly/11.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':oI ')\" src=\"smajly/1.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-I ')\" src=\"smajly/8.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-D ')\" src=\"smajly/12.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-o ')\" src=\"smajly/4.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-( ')\" src=\"smajly/2.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-§ ')\" src=\"smajly/10.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-8 ')\" src=\"smajly/3.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile('*master* ')\" src=\"smajly/9.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile('*green* ')\" src=\"smajly/7.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile('*idea* ')\" src=\"smajly/6.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile('*attention* ')\" src=\"smajly/5.gif\" width=\"15\" height=\"15\" align=\"middle\">


</td></tr>



<input type=\"hidden\" value=$jmeno name=\"jmeno\">
<input type=\"submit\" value=\"Odeslat vzkaz\"></br>


";

while (list($id,$jmeno,$vzkaz,$datum) = mysql_fetch_row($vzkazodni)) {

echo "
<tr><td width=\"50px\">".$datum."</td><td width=\"100px\">".$jmeno."</td><td width=\"380px\">".$vzkaz."</td></tr>";

}


echo "
</form>
</table>";


?>
WertriK
Profil *
V konstante SID bude hodnota jen tehdy pokud se nepodari odeslat cookies s sessid, doufam ;)
Leo
Profil
Konstanta SID tam ale nikde pouzita neni. Leo
JakubZ
Profil *
Pardon, postupně jsem to upravoval, ovšem měl jsem pocit že by to takhle mělo fungovat... Místo toho je tam $link
Leo
Profil
A funguji vam vubec session? Bez predavani v GETu, pokud mate zapnute cookie? Leo
JakubZ
Profil *
Ještě to předělám a dám znovu link o co jde, když jsem to měl pomocí SID a adresou, ta session stejně nefungovala, omlouvám se a dodám správnou verzi.
Leo
Profil
No zkuste proste

test1.php

<?php
session_start();
$_SESSION['x'] = 5;
?>

test2.php

<?php
session_start();
echo $_SESSION['x'];
?>

a zavolejte je oba pres adresni radek, zadny odkaz atd. Leo
JakubZ
Profil *
Tak jsem to zase zkousel, ostatni aplikace kde mam session fakci tak jak maji. Ale tohle ne a ne rozhybat.
V prvni strance mam jen formular[HTML] - to je ok
Druhra stranka [prihlaseni] obsahuje dotaz na DB a porovnani hodnot a naplneni $_SESSION["jmeno"] = $jmeno; - to je ok
Treti strana [diskuse] si vytahne z session hodnotu "jmeno" - zde je chyba, pri prvni navsteve je vse ok, ale kdyz dam F5 tak hodnota zmizne, $_SESSION["jmeno"] = "", nevim proc, nikde tam nic takoveho neni ...
Ctvrta strana [pridatvzkaz], sem smeruje formulaz z diskuse a sem se ani hodnotu $_SESSION["jmeno"] nedostane.

Na kazde strance jsem si nechal vypsat sessid a to je vsude stejne takze chyba bude jen v $_SESSION["jmeno"], ale bohuzel nevim presne kde.

Z diskuse mi neodejde $_SESSION["jmeno"], nevim proc. Zde je kod:

<?
session_start();


$jmeno1 = $_SESSION["jmeno"];
// jako by ta $jmeno1 vycucla hodnotu z $_SESSION["jmeno"];, a session zustala prazdna

<script type="text/javascript">
function Smile(what)
{
document.forms.smajly.vzkaz.focus();
document.forms.smajly.vzkaz.value=
document.forms.smajly.vzkaz.value+what;
}
</script>



<table align="right">
<tr>
<td>
<a href=odhlaseno.php>Odhlásit</a>
</td>
</tr>
</table>
<?PHP

//if(!isSet($jmeno1)){
//header("Location: chyba.htm");
//}

$pripojenikdat = MySQL_Connect("");
MySQL_Select_DB("");

$vzkazodni = mysql_query("(SELECT id,jmeno,vzkaz,datum FROM dopispriteli WHERE jmeno='$jmeno1') UNION (SELECT id,jmeno,vzkaz,datum FROM dopispriteli WHERE pro='$jmeno1') ORDER BY id DESC");

$pocetzaznamu = MySQL_Num_Rows($vzkazodni);

if ($pocetzaznamu < 5){
echo "Nyní je registrováno ".$pocetzaznamu." vzkazů";
}

echo"

<table bgcolor=\"lightblue\" border=\"1\" width=\"555\">


<form action=\"pridatvzkaz.php?".SID."\" name=\"smajly\" method=\"post\">
// pri odeslani formulare v session uz hodnota neni
<tr>
<td colspan=\"3\">

<textarea name=\"vzkaz\" id=\"vzkaz\" rows=\"8\" cols=\"65\">
</textarea>
</td>
</tr>
<tr>
<td colspan=\"3\">
<img onclick=\"Smile(':o) ')\" src=\"smajly/11.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':oI ')\" src=\"smajly/1.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-I ')\" src=\"smajly/8.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-D ')\" src=\"smajly/12.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-o ')\" src=\"smajly/4.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-( ')\" src=\"smajly/2.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-§ ')\" src=\"smajly/10.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile(':-8 ')\" src=\"smajly/3.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile('*master* ')\" src=\"smajly/9.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile('*green* ')\" src=\"smajly/7.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile('*idea* ')\" src=\"smajly/6.gif\" width=\"15\" height=\"15\" align=\"middle\">
<img onclick=\"Smile('*attention* ')\" src=\"smajly/5.gif\" width=\"15\" height=\"15\" align=\"middle\">


</td></tr>

<input type=\"submit\" value=\"Odeslat vzkaz\"></br>


";


while (list($id,$jmeno,$vzkaz,$datum) = mysql_fetch_row($vzkazodni)) {

echo "
<tr><td width=\"50px\">".$datum."</td><td width=\"100px\">".$jmeno."</td><td width=\"380px\">".$vzkaz."</td></tr>";

}

echo "
</form>
</table>";


?>
Leo
Profil
Mate nejspis binec s register_globals, $jmeno a $_SESSION['jmeno'] je pak skoro totez. Leo
JakubZ
Profil *
To me taky napadlo, ale zase jsem si rekl ze je to volovina aby $jmeno ovlivnila $_SESSION["jmeno"], ale je tomu tak. Maji to blbe na Czechii.

aUz vse fakci tak jak m, dekuji Leo.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0