Diskuze: Problém se zápisem dat a s session
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 11 zpráv z 11.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zkusil sis tu session s uživatelem nechat vypsat i v tom iframu? Možná melu nesmysly, ale myslím, že chyba bude v tom, že v tom iframu ta stránka neví, co je v té session za data...
Není to chybným zápisem SQL příkazu? Název tabulky optoclen máš uvedený v apostrofech:
INSERT INTO `optoclen`
V tom chyba nebude, to je správně. Ty apostrofy se běžně používají.
Ahoj, řešíš zajímavý problém. Je třeba si tady uvědomit, že iframe je jen rozhraní pro nějakou stránku. Ty když komunikuješ se stránkou v iframe, používají se jiná data - ta stránka posílá svou HTTP hlavičku, SESSION, COOKIES apod.
Pokud to dobře chápu, potřebuješ na tu stránku v iframe odeslat nějaká data (a dostat odpověď). K tomu by se dal využít formulář odeslaný na externí stránku. Funguje jako lokální, jen se data pošlou na adresu mimo stránku, kde momentálně jsi. Data o uživateli předáš např. jako skryté pole.
<form method="post" action="http://externi-stranka.domena">
<!-- ... ->
<input type="hidden" name="user" value="<?= $_SESSION['user-id'] ?>">
<!-- ... ->
</form>
Adresy (domény) jsou rozdílné hádám, že? Pokud ano, tak k url ve frame, které načítáš bych dodal vždy identifikační parametr uživatele pod kterým uložím ty data. Provedeš pouze ověření zda je identifikace správná.
Jakmile uživatel zadá měření, proběhnou dva skripty s podmínkami a nakonec se vloží stránka s měřením. Adresy framu jsou pro školní síť a jsou od správce sítě převedeny na veřejnou adresu. Jeden frame je pro webkameru a jeden pro samotné měření a ten skrytý je pojezd na kterém je upevněna kamera. Web má 77.48.244.198 i všechny tři framy mají stejnou síť, až poslední část ip s portem jsou rozdílné. Pouze arduino, jelikož ho mám doma jede na mojí síti zatím.
Jak bych měl tuto identifikaci zadát a jak to otestovat ?
Ještě jsme si uvědomil, že jsme neměl všude na tech podmínkových
stránkách a této session start, ale i tak to teď nezapisuje.
<?php
session_start();
?>
<html>
<head>
<style type="text/css">
h3 {text-align:left;}
h4 {text-align:left;}
</style>
</head>
<body>
<h2>Měření na fototranzistoru</h2>
<br>
<iframe src="http://77.48.244.194:****/?PWM=0"style="display:none;"></iframe>
<h3>Ovládací panel úlohy a pohled online kamery na prováděnou úlohu</h3>
<iframe src="http://192.168.1.***"width="420" height="340" style="float:left"></iframe>
<iframe src="http://77.48.244.194:****/snapshot.cgi" width="435" height="300" style="float:left"></iframe>
<h4>Popis</h4>
<p>Mezi první měření patří měření na fototranzistoru.....</p>
</body>
</html>
Jak píše Uživatel sítě , v tomto případě bude stačit předat data o uživateli přes GET (stačí za adresu přidat ?klic=hodnota&klic2=hodnota2...).
<iframe src="adresa-arduina?uzivatel=<?= $_SESSION['uzivatel-id'] ?>" ...></iframe>
A Jak docílím toho uložení ? jak to zapsat to skriptu log_optoclen, který se stará právě o zápis do databáze ? arduino zapisuje metogou GET
client.print("GET http://dalkovemereni.vos.cz/log_optoclen.php?");
client.print("pwm=");
client.print("&av=");
...
pak již následuje nahoře zmíněný skript. Stále mě není jasné jak to mohu převzít z teho framu, i když to za tu URL opíšu. Taky metodou GET ?
Jak pise 'Michal Šmahel'.
stranka login -> server1 (77.48.244.198) -> session server 1
zadny login -> server2 (77.48.244.194:****) -> session server2
zadny login -> server3 (192.168.1.***) -> session server2
Kazdy ten server ma vlastni session (php), vlastni login.
Pokud tam mas jen zarizeni, kde login zadny nemas, a chces tam neco posilat,
musis to posilat treba pres get, v pripade webkamery. Jestli mas tu stranku, jak
mas, tak staci to, co psal 'Michal Šmahel'
<iframe src="adresa-arduina?uzivatel=<?= $_SESSION['uzivatel-id'] ?>"
...></iframe> nebo
<iframe src="adresa-arduina?uzivatel=<?php echo
$_SESSION['uzivatel-id']; ?>" ...></iframe>
V prohlizeci si dej 'Zobrazit zdrojovy kod stranky' a uvidis, zda tam je kod
treba
<iframe src="adresa-arduina?uzivatel="></iframe> nebo spravne
<iframe
src="adresa-arduina?uzivatel=peter"></iframe> --
toto potrebujes docilit
Jeste by to mozna chtelo dat tam mozna isset, jestli v session ten parametr
existuje.
$x = isset($_SESSION['uzivatel-id']) ? $_SESSION['uzivatel-id'] : ''; -
Precteni session
$x = isset($_GET['uzivatel']) ? $_SESSION['uzivatel'] : ''; - Precteni
get
https://github.com/…examples.rst
client.print(String("GET /") + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n" +
"\r\n"
);
Jestli to spravne chapu, tak ten zapis je klasicke vytvoreni hlavicky jako u emailu. V PHP bys to psal
$arr = array(
"GET / HTTP/1.1", // metoda get, protokol http
"Host: " . $host, // host
"Connection: close", // ukonceni spojeni
"");
$str = implode("\r\n",$arr);
A tez jsem vygoogloval zapis, jaky pouzivas ty.
client.print("GET http://arduinoalter.altervista.org/NuovoFile.php?user=12");
Proste, klasicka adresa jako u odkazu v html. Viz ten zapis se session, to je totez, take adresa odkazu.
Zobrazeno 11 zpráv z 11.