Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
jerabina
Člen
Avatar
jerabina:29.7.2014 21:00

Brý večer,
mám menší problém, potřebuji předat obsah proměnných z jednoho souboru do druhého, dočetl jsem se, že to jde pomocí sessions, ale nikde jsem nenašel správnou syntaxi.
Takovýhle proměnný potřebuju předat do toho druhého souboru.

$cisloPrvni = Rand(1,2);

Poradí prosím někdo?
Děkuju

Odpovědět
29.7.2014 21:00
Když tě všechno zradilo, pomůže ti kladivo!
Avatar
Odpovídá na jerabina
Michal Žůrek - misaz:29.7.2014 21:04

pokud to sou soubory v jednom requestu

například soubor1.php:

$cisloPrvni = Rand(1,2);
include("soubor2.php");

tak v soubor2 by s proměnnou $cisloPrvni mělo jít pracovat. Pokud je to mezi více requesty, tak na začátek každého dokumentu kde chceš s proměnnou pracovat dáš

session_start();

a pak máš k dispozici super globální pole $_SESSION, kam si můžeš hodnoty odkládat.

 
Nahoru Odpovědět
29.7.2014 21:04
Avatar
Odpovídá na jerabina
Martin Konečný (pavelco1998):29.7.2014 21:04

Zdravím,

můžeš to číslo přenést přes parametr v URL (např. soubor.php?cis­lo=$cisloPrvni).

Nebo přes sessions:

// soubor 1
session_start();
$_SESSION["cislo"] = $cisloPrvni;

// soubor 2
session_start();
echo $_SESSION["cislo"];
Nahoru Odpovědět
29.7.2014 21:04
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
jerabina
Člen
Avatar
jerabina:29.7.2014 21:51

To Pavelco: A v tom souboru 2, mohu nějakým způsobem dostat tu super globální proměnnou cislo do normální proměnné řekněme zase $cisloPrvni?

To Misaz: A to musím includovat u každé proměnné zvlášť? Nejde třeba takto sdílet všechny proměnné v tom daném souboru?

Děkuji

Editováno 29.7.2014 21:54
Nahoru Odpovědět
29.7.2014 21:51
Když tě všechno zradilo, pomůže ti kladivo!
Avatar
Odpovídá na jerabina
Michal Štěpánek:30.7.2014 8:40

Proměnných si uděláš kolik potřebuješ a když pak "naincluduješ" ten jiný soubor, měl by umět s všemi dříve (resp. výše) uvedenými proměnnými pracovat.

Nahoru Odpovědět
30.7.2014 8:40
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
jerabina
Člen
Avatar
jerabina:30.7.2014 8:53

Tak v tom případě nechápu, jak je možné, že když mám tyto dva zdrojáky:

index.php(1.soubor)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="cs-cz">

<head>
  <title>Jerabina's web</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="styl.css" type="text/css" />
</head>

<body>
 <?php
  $rozhodnuti = Rand(1,2);
  include("kontrola.php");
 ?>
        <a href="http://nasobenideleni.maweb.eu/kontrola.php">kontrola</a>
</body>

</html>

kontrola.php(2­.soubor)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="cs-cz">

<head>
  <title>Jerabina's web</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="styl.css" type="text/css" />
</head>

<body>
 <?php
  echo($rozhodnuti);
 ?>
</body>

</html>

Tak mi to na stránce s indexem vypíše právě ty čísla 1-2 a když jdu na tu stránku kontrola.php tak mi to neukáže nic ...

Nahoru Odpovědět
30.7.2014 8:53
Když tě všechno zradilo, pomůže ti kladivo!
Avatar
Odpovídá na jerabina
Michal Žůrek - misaz:30.7.2014 9:43

klikni v prohlížeči pravým tlačítkem ->zobrazit zdrojový kód. Podle mě to tam bude, jen jak tam máš 2× DOCTYPE, 2× celou definici, tak je z toho browser zmatený a neukáže vůbec nic.

 
Nahoru Odpovědět
30.7.2014 9:43
Avatar
jerabina
Člen
Avatar
jerabina:30.7.2014 10:21

Když zobrazím zdroják, tak to vypadá v tom druhém souboru takto:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="cs-cz">

<head>
  <title>Jerabina's web</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="styl.css" type="text/css" />
</head>

<body>

<div ><div class="zoznam">Vyzkoušejte nový webhosting <a href="http://b.cz/">b.cz</a>. Nejkratší doména 2. řádu na českém trhu.</div></div></body>

</html>

A v prvním:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="cs-cz">

<head>
  <title>Jerabina's web</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="styl.css" type="text/css" />
</head>

<body>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="cs-cz">

<head>
  <title>Jerabina's web</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="styl.css" type="text/css" />
</head>

<body>
 1
<div ><div class="dulezite">Vyzkoušejte nový webhosting <a href="http://b.cz/">b.cz</a>. Nejkratší doména 2. řádu na českém trhu.</div></div></body>

</html>
        <a href="http://nasobenideleni.maweb.eu/kontrola.php">kontrola</a>
</body>

</html>

Takže nevím co s tím je, nevíš jak to opravit?

Nahoru Odpovědět
30.7.2014 10:21
Když tě všechno zradilo, pomůže ti kladivo!
Avatar
Odpovídá na jerabina
Michal Štěpánek:30.7.2014 10:59

Protože do toho souboru kontrola.php tím tvým kódem nic nepředáváš a při kliknutí na odkaz se ty proměnné ztratí.
když chceš jít na stránku tímto odkazem

<a href="http://nasobenideleni.maweb.eu/kontrola.php">kontrola</a>

tak musíš použít session, jinak bys tu proměnnou musel dát do odkazu

<a href="http://nasobenideleni.maweb.eu/kontrola.php?tvojepromenna=$rozhodnuti">kontrola</a>

a v souboru kontrola.php to zobrazit

echo ($tvojepromenna);

a používej "tlačítko" odpovědět...

Editováno 30.7.2014 11:01
Nahoru Odpovědět
30.7.2014 10:59
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na jerabina
Michal Štěpánek:30.7.2014 11:05

Když použiješ "include", tak ty dva soubory máš v podstatě zobrazené v jedné stránce najednou, proto ten includovaný soubor "zná" ty proměnné, které jsou definované před includováním. Pokud chceš, aby o těch proměnných věděl soubor i po kliknutí a "přesměrování" odkazem, musíš mu je nějak "poslat"

Nahoru Odpovědět
30.7.2014 11:05
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
jerabina
Člen
Avatar
Odpovídá na Michal Štěpánek
jerabina:30.7.2014 12:45

Děkuji za osvětlení.
Budu to tedy dělat přes sessions, ale mám tento dotaz:
Mohu nějakým způsobem dostat tu super globální proměnnou cislo do normální proměnné řekněme zase $cisloPrvni?

Nahoru Odpovědět
30.7.2014 12:45
Když tě všechno zradilo, pomůže ti kladivo!
Avatar
Odpovídá na jerabina
Michal Štěpánek:30.7.2014 13:00

Asi nějak dost dobře nechápu "super globální proměnná"...
Do proměnné si můžeš dosadit co potřebuješ...

$promenna1 = $promenna2;
Editováno 30.7.2014 13:01
Nahoru Odpovědět
30.7.2014 13:00
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na jerabina
Michal Žůrek - misaz:30.7.2014 13:03

uložíš to do session z proměnné cisloPrvni

$_SESSION["c1"] = $cisloPrvni;

a zpět to dostaneš jednoduše

$cisloPrvni = $_SESSION["c1"];

žádná věda

 
Nahoru Odpovědět
30.7.2014 13:03
Avatar
jerabina
Člen
Avatar
Odpovídá na Michal Žůrek - misaz
jerabina:30.7.2014 13:26

Tak já už nevim, když mám ty kódy takto:
index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="cs-cz">

<head>
  <title>Jerabina's web</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="styl.css" type="text/css" />
</head>

<body>
 <?php
  $rozhodnuti = Rand(1,2);
  session_start();
  $_SESSION["r"] = $rozhodnuti;
 ?>
        <a href="http://nasobenideleni.maweb.eu/kontrola.php">kontrola</a>
</body>

</html>

kontrola.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="cs-cz">

<head>
  <title>Jerabina's web</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="styl.css" type="text/css" />
</head>

<body>
 <?php
  $rozhodnuti = $_SESSION["r"];
  echo($rozhodnuti);
 ?>
</body>

</html>

A když v indexu kliknu na odkaz tak mi to nic neukáže .. :/

Nahoru Odpovědět
30.7.2014 13:26
Když tě všechno zradilo, pomůže ti kladivo!
Avatar
Odpovídá na jerabina
Martin Konečný (pavelco1998):30.7.2014 13:29

Musíš sessions zapnout pomocí funkce session_start() i v tom druhém souboru;

<?php

session_start();

?>
<!DOCTYPE html>

...

<body>
<?php

// zde už můžeš použít proměnnou $_SESSION

?>
Editováno 30.7.2014 13:29
Nahoru Odpovědět
30.7.2014 13:29
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na jerabina
Michal Žůrek - misaz:30.7.2014 13:30

session_start musíš napsat na začátek dokumentu ještě před doctype.

<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html lang="cs-cz">

 <head>
   <title>Jerabina's web</title>
   <meta charset="utf-8" />
   <link rel="stylesheet" href="styl.css" type="text/css" />
 </head>

 <body>
  <?php
   $rozhodnuti = Rand(1,2);

   $_SESSION["r"] = $rozhodnuti;
  ?>
        <a href="http://nasobenideleni.maweb.eu/kontrola.php">kontrola</a>
 </body>

 </html>
 
Nahoru Odpovědět
30.7.2014 13:30
Avatar
Michal Žůrek - misaz:30.7.2014 13:31

a možná by neuškodilo, kdyby sis přečetl tutoriál, tipuji že SESSION tam určitě bude vysvětlený.

 
Nahoru Odpovědět
30.7.2014 13:31
Avatar
jerabina
Člen
Avatar
Odpovídá na Michal Žůrek - misaz
jerabina:30.7.2014 17:36

Tak jsem to nějak sesmolil takto:

<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="cs-cz">

<head>
  <title>Opakování násobení a dělení</title>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="styl.css" type="text/css" />
  <link rel="shortcut icon" href="favicon.bmp">
</head>

<body>
    <p>Vypočítej</p>
 <?php
for ($i=0; $i < 10; $i++)
 {
  $rozhodnuti = Rand(1,2);

  if($i == 0)
      if($rozhodnuti == 1)
        $cisloPrvni1 = Rand(1,5);
        $cisloDruhe1 = Rand(5,10);
      if($rozhodnuti == 2)
        $cisloPrvni1 = Rand(5,10);
        $cisloDruhe1 = Rand(1,5);
  if($i == 1)
      if($rozhodnuti == 1)
        $cisloPrvni2 = Rand(1,5);
        $cisloDruhe2 = Rand(5,10);
      if($rozhodnuti == 2)
        $cisloPrvni2 = Rand(5,10);
        $cisloDruhe2 = Rand(1,5);
  if($i == 2)
      if($rozhodnuti == 1)
        $cisloPrvni3 = Rand(1,5);
        $cisloDruhe3 = Rand(5,10);
      if($rozhodnuti == 2)
        $cisloPrvni3 = Rand(5,10);
        $cisloDruhe3 = Rand(1,5);
  if($i == 3)
      if($rozhodnuti == 1)
        $cisloPrvni4 = Rand(1,5);
        $cisloDruhe4 = Rand(5,10);
      if($rozhodnuti == 2)
        $cisloPrvni4 = Rand(5,10);
        $cisloDruhe4 = Rand(1,5);
  if($i == 4)
      if($rozhodnuti == 1)
        $cisloPrvni5 = Rand(1,5);
        $cisloDruhe5 = Rand(5,10);
      if($rozhodnuti == 2)
        $cisloPrvni5 = Rand(5,10);
        $cisloDruhe5 = Rand(1,5);
  if($i == 5)
      if($rozhodnuti == 1)
        $cisloPrvni6 = Rand(1,5);
        $cisloDruhe6 = Rand(5,10);
      if($rozhodnuti == 2)
        $cisloPrvni6 = Rand(5,10);
        $cisloDruhe6 = Rand(1,5);
  if($i == 6)
      if($rozhodnuti == 1)
        $cisloPrvni7 = Rand(1,5);
        $cisloDruhe7 = Rand(5,10);
      if($rozhodnuti == 2)
        $cisloPrvni7 = Rand(5,10);
        $cisloDruhe7 = Rand(1,5);
  if($i == 7)
      if($rozhodnuti == 1)
        $cisloPrvni8 = Rand(1,5);
        $cisloDruhe8 = Rand(5,10);
      if($rozhodnuti == 2)
        $cisloPrvni8 = Rand(5,10);
        $cisloDruhe8 = Rand(1,5);
  if($i == 8)
      if($rozhodnuti == 1)
        $cisloPrvni9 = Rand(1,5);
        $cisloDruhe9 = Rand(5,10);
      if($rozhodnuti == 2)
        $cisloPrvni9 = Rand(5,10);
        $cisloDruhe9 = Rand(1,5);
  if($i == 9)
      if($rozhodnuti == 1)
        $cisloPrvni10 = Rand(1,5);
        $cisloDruhe10 = Rand(5,10);
      if($rozhodnuti == 2)
        $cisloPrvni10 = Rand(5,10);
        $cisloDruhe10 = Rand(1,5);
 }
echo($cisloPrvni1 . " x " . $cisloDruhe1 . " = " . '<input name="vysledek1" type="text"/>');
echo('<br />');
echo($cisloPrvni2 . " x " . $cisloDruhe2 . " = " . '<input name="vysledek2" type="text"/>');
echo('<br />');
echo($cisloPrvni3 . " x " . $cisloDruhe3 . " = " . '<input name="vysledek3" type="text"/>');
echo('<br />');
echo($cisloPrvni4 . " x " . $cisloDruhe4 . " = " . '<input name="vysledek4" type="text"/>');
echo('<br />');
echo($cisloPrvni5 . " x " . $cisloDruhe5 . " = " . '<input name="vysledek5" type="text"/>');
echo('<br />');
echo($cisloPrvni6 . " x " . $cisloDruhe6 . " = " . '<input name="vysledek6" type="text"/>');
echo('<br />');
echo($cisloPrvni7 . " x " . $cisloDruhe7 . " = " . '<input name="vysledek7" type="text"/>');
echo('<br />');
echo($cisloPrvni8 . " x " . $cisloDruhe8 . " = " . '<input name="vysledek8" type="text"/>');
echo('<br />');
echo($cisloPrvni9 . " x " . $cisloDruhe9 . " = " . '<input name="vysledek9" type="text"/>');
echo('<br />');
echo($cisloPrvni10 . " x " . $cisloDruhe10 . " = " . '<input name="vysledek10" type="text"/>');
 ?>
<div class="reklama_endora"><endora></div>
</body>

</html>

Zde je odkaz na web: http://nasobenideleni.maweb.eu/

Jenže mám problém, nevím proč, ale nad číslo 5 se to generuje vždycky jenom na levé straně a na pravé nikdy .. při tom by se to mělo řídit podle další náhodně vygenerované proměnné.
PS: tich formulářů si nejvšímejte, zatím to nechci nikam odesílat, až budu, tak to přepracuji.

Nahoru Odpovědět
30.7.2014 17:36
Když tě všechno zradilo, pomůže ti kladivo!
Avatar
Odpovídá na jerabina
Michal Žůrek - misaz:30.7.2014 17:39

jo, vrať se k těm tutoriálům. Začni od začátku přes pole, cykly a třeba se dostaneš i k předávání proměnných mezi soubory dopodrobna.

 
Nahoru Odpovědět
30.7.2014 17:39
Avatar
jerabina
Člen
Avatar
Odpovídá na Michal Žůrek - misaz
jerabina:30.7.2014 17:41

S předáváním nemám problém(to jsem pochopil), já mám problém s tím, že se mi generují čísla nad 5 pouze na levé straně :(

Editováno 30.7.2014 17:42
Nahoru Odpovědět
30.7.2014 17:41
Když tě všechno zradilo, pomůže ti kladivo!
Avatar
Odpovídá na jerabina
Martin Konečný (pavelco1998):30.7.2014 18:37

Zkus to udělat přes pole, takhle se v tom prakticky nedá vyznat. Pak to sem pošli a uvidíme, co je tam za problém.

Nahoru Odpovědět
30.7.2014 18:37
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
jerabina
Člen
Avatar
jerabina:30.7.2014 19:23

A to jsem se tak snažil polím vyhnout :D
Pokusím se tedy .. ale pole nikdy nebyla má silná stránka.

Nahoru Odpovědět
30.7.2014 19:23
Když tě všechno zradilo, pomůže ti kladivo!
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 22 zpráv z 22.