Funguje to! :-) Ale to rozhodovanie som musel dať uplne na uvod stranky.
Příspěvky odeslané z IP adresy 147.232.177.–
dal som exit(); za ten header a nič sa nezmenilo.
if ($_SESSION['login']===true){
header('LOCATION: ovladanie-rele.php');
}
Toto mám iba na overenie, ak je používateľ prihlaseny a spustí prihlasovaciu stránku tak aby nevykreslilo formular a preplo ho na stranku po prihlaseni
Ahoj, neviem si poradiť s problémom. Mam session, prihlasenie. Prihlásenie je staticke (heslo je v kode). Po prihlasení mam header a celá stránka (prihlasovacia) sa zachová tak, že po prihlásení sa zobrazí zase ona a až refreshi (mnou zadaný/znova klik na submit button formulara) sa mi zobrazí stránka na ktorú sa chcem napojiť...
PHP:
<?php
if ($_SESSION['login']===true){
header('LOCATION: ovladanie-rele.php');
}else{
if(isset($_POST["prihlasit"])) {
$password = $_POST['password'];
$password = trim( $password );
$password = htmlspecialchars( $password, ENT_QUOTES );
if(($password == "heslo")){
$_SESSION['login'] = true;
header('LOCATION: ovladanie-rele.php');
} else{
echo "<center>Údaje nie sú správne! Pokus opakujte!</center>";
}
}
?>
HTML:
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<div class="form-group">
<input type="password" class="form-control" name="password" placehodler="Heslo">
</div>
<button type="submit" class="btn btn-default" name="prihlasit">Prihlásiť</button>
</form>
Neviem, prečo mi to robí.. v kóde mam samozrejme session_start(); hneď za doctype..
Robím niekde nejakú chybu?
Neviem to upraviť tak, aby mi to fungovalo..
Ahojte, mám problém a neviem si poradiť..
Mám 2 tabuľky:
názov: obsahuje tieto stĺpce
ponuky: id title description travel destination datefrom dateto image price
rezervacie: id userid people datefrom dateto finalprice destinationid note
pouzivatelia: id meno heslo email adresa telefon
Mám php script, ktorý mi pracuje s tabuľkou rezervacie... (výpis všetkých rezervácii daného používateľa)
Problém je ten, že potrebujem na základe stĺpca destinationid prejsť do tabuľky ponuky, aby som získal title a destination tohto id... (destinationid z tabulky rezervacie teda oznacuje id v tabulke ponuky)
Vracia mi to stále iba jedno id a nezobrazí mi druhý záznam (iné id) pri oboch záznamoch mi dáva to isté title a destination.
Prvé 2 stĺpce sú z tabulky ponuky, s tým je problém...
Zdrojový kód, ktorý aktuálne používam:
<!DOCTYPE html>
<html lang="sk">
<?php
session_start();
include("connect.php");
$rezervacie = mysqli_query($con,"SELECT * FROM `rezervacie` WHERE `userid`>='".$_SESSION['uid']."'") or die(mysqli_error($con));
while($line = mysqli_fetch_assoc($rezervacie)){
$idcko = $line['destinationid'] ;
}
$ponuka_get = mysqli_query($con,"SELECT * FROM `ponuky` WHERE `id`='".$idcko."'") or die(mysqli_error($con));
$ponuka = mysqli_fetch_assoc($ponuka_get);
?>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Webaplikácia s využitím PHP pre predmet Databázové systémy. Zadanie č.18 - cestovná agentúra">
<meta name="author" content="Martin Chlebovec FEI">
<link rel="icon" type="image/png" href="img/tuke.png" />
<meta name="robots" content="noindex, nofollow">
<title>Cestovná agentúra - prihlásenie</title>
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
padding-top: 54px;
}
@media (min-width: 992px) {
body {
padding-top: 56px;
}
}
.footer {
position: fixed;
left: 0;
bottom: 0;
width: 100%;
background-color: #909193;
color: white;
text-align: center;
}
</style>
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
<div class="container">
<a class="navbar-brand"><font color="white">Martin Chlebovec</font></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<?php
if(isset($_SESSION['uid'])){
?>
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="index.php">Novinky</a>
</li>
<li class="nav-item">
<a class="nav-link" href="vyhladavanie.php">Vyhľadávanie</a>
</li>
<li class="nav-item">
<a class="nav-link" href="rezervacie.php">Moje rezervácie</a>
</li>
<li class="nav-item">
<a class="nav-link" href="logout.php">Odhlásiť sa</a>
</li>
</ul>
<?php } ?>
</div>
</div>
</nav>
<div class="container">
<center><h2>Rezervácia</h2></center>
<center>
<?php
if(!isset($_SESSION['uid'])){
header("Location: login.php");
}
?>
<table width=80%>
<thead><tr><th>Názov ubytovania</th><th>Destinácia</th><th>Počet osôb</th><th>Od</th><th>Do</th><th>Cena</th></tr>
<tbody>
<?php
$rezervacie = mysqli_query($con,"SELECT * FROM `rezervacie` WHERE `userid`>='".$_SESSION['uid']."' ORDER BY `datefrom` ASC") or die(mysqli_error($con));
while($line = mysqli_fetch_assoc($rezervacie)){
echo "<tr>";
echo "<td>". $ponuka['title'] ."</td>";
echo "<td>". $ponuka['destination'] ."</td>";
echo "<td>". $line['people'] ."</td>";
echo "<td>". $line['datefrom'] ."</td>";
echo "<td>". $line['dateto'] ."</td>";
echo "<td>". $line['finalprice'] ."</td>";
echo "</tr>";
} ?> </tbody></table>
</center>
</div>
<?php
include("footer.php");
?>
<!-- Bootstrap core JavaScript -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
</body>
</html>
Skúšal som túto časť kódu:
$ponuka_get = mysqli_query($con,"SELECT * FROM `ponuky` WHERE `id`='".$idcko."'") or die(mysqli_error($con));
$ponuka = mysqli_fetch_assoc($ponuka_get);
Dávať aj do cyklov while, ale bezúspešne, výsledok stále rovnaký..
Ahoj, mám webaplikáciu na ovládanie hlasom pre mikrokontroléry. Mám ju na webe aj ako free na vyskúšanie. Jedná sa o technológiu Webkit, s ktorou funguje iba prehliadač Chrome.
Hlasom sa dá ovládať keď si klient povolí mikrofón, klikne na mikrofón na stránke (obrázok) a môže hovoriť príkaz. Používatelia sú ale takí leniví, že si mikrofón nepovolia a klikajú a furt mi vypisujú, že to nefunguje, pritom furt je chyba tam.
Vedel by mi niekto poradiť aj s konkrétnym príkladom?
Chcem toto:
- Ak používateľ nemá prehliadač Chrome, vypíše sa iba hláška: Nemáte kompatibilný prehliadač, použite Chrome!
- Ak používateľ nemá povolený mikrofón tak: Povoľte si mikrofón a refreshnite stránku!
Ďakujem za rady! :) Neviem čo nato použiť, na toto asi PHP nie je dobrá voľba, malo by sa to riešiť na strane klienta.
Ahoj, mám na stránke 8 formulárov pre relé. Návštevníci ale na ne klikajú bez spôsobu a to relé prepínajú aj 3x za sekundu.. Potreboval by som nejakú premennú, ktorá sa po odoslaní formulára pripočíta o 1 a ak je hodnota premennej viac ako 5 tak to vypíše hlášku. Formuláre sa vykresľujú aj v session. Ak nastavím nejak tú premennú, napr na 0. Tak pri refreshi sa mi tá hodnota tou nulou prepíše..
Potrebujem len premennú, ktorá sa iteruje cez ++ a ak je hodnota 5 a viac tak vypíš echo..
Dík za rady.
Ahoj, mám projekt ovládania hlasom z webu pre 3rd party zariadenia. Mám na stránke formulár s dvomi metódami vstupu:
- Input + submit, napíšem ručne čo potrebujem
- Hlasom po kliku na ikonu (Ajax spustí PHP script)
Hlas sa nahráva pokým hovorím a po dorozprávaní sa preloží na string. Nakoľko je to ale niekedy nepresné, musím podmienkami OR prevádzať výsledný string, ktorý sa zapíše do texťáku, aby som mal na strane 3rd party zariadenia iba jednu podmienku. Obe metódy sa spracuvávajú totožne. Tú hlasom spúšťa ajax.
Ak mám OR statementy pri if v manuálnom, funguje to OK. Keď to mám pri hlase, nespracuje sa to a do texťáku sa nič nezapíše... Kde môže byť problém, nejaký timeout?
FUNGUJE OK, pri manuálnom ešte submit atd.... toto vnútro je identické.
<?php
$preklad = $_POST['preklad'];
if($preklad == ""){
echo "Prázdne pole ťažko zapíšem :-)!";
}elseif(strlen($preklad) > 50){
echo "Tvoja požiadavka je príliš dlhá!";
}else{
$preklad = htmlspecialchars( $preklad);
$preklad = trim( $preklad );
file_put_contents("preklady.txt", $preklad); }
?>
FUNGUJE OK iba pri manuálnom zadaní, pri hlasom sa nevykoná.
<?php
$preklad = $_POST['preklad'];
if($preklad == ""){
echo "Prázdne pole ťažko zapíšem :-)!";
}elseif(strlen($preklad) > 50){
echo "Tvoja požiadavka je príliš dlhá!";
}else{
$preklad = htmlspecialchars($preklad);
$preklad = trim( $preklad );
if ($preklad=="Zapni LED1" || $preklad=="Zapni LED 1" || $preklad=="Zopni LED 1" || $preklad=="Zopni led 1" || $preklad=="Zapni led 1" || $preklad=="Zapni led1" ){
$preklad=="Zapni LED 1";
file_put_contents("preklady.txt", $preklad);
}else if ($preklad=="Zapni LED2" || $preklad=="Zapni LED 2" || $preklad=="Zopni LED 2" || $preklad=="Zopni led 2" || $preklad=="Zapni led 2" || $preklad=="Zapni led2"){
$preklad=="Zapni LED 2";
file_put_contents("preklady.txt", $preklad);
}else if ($preklad=="Zapni LED3" || $preklad=="Zapni LED 3" || $preklad=="Zopni LED 2" || $preklad=="Zopni led 3" || $preklad=="Zapni led 3" || $preklad=="Zapni led3"){
$preklad=="Zapni LED 3";
file_put_contents("preklady.txt", $preklad);
}else if ($preklad=="Zapni LED4" || $preklad=="Zapni LED 4" || $preklad=="Zopni LED 4" || $preklad=="Zopni led 4" || $preklad=="Zapni led 4" || $preklad=="Zapni led4"){
$preklad=="Zapni LED 4";
file_put_contents("preklady.txt", $preklad);
}else if ($preklad=="Vypni LED1" || $preklad=="Vypni LED 1" || $preklad=="Vypni led 1" || $preklad=="Vypni led1"){
$preklad=="Vypni LED 1";
file_put_contents("preklady.txt", $preklad);
}else if ($preklad=="Vypni LED2" || $preklad=="Vypni LED 2" || $preklad=="Vypni led 2" || $preklad=="Vypni led2"){
$preklad=="Vypni LED 2";
file_put_contents("preklady.txt", $preklad);
}else if ($preklad=="Vypni LED3" || $preklad=="Vypni LED 3" || $preklad=="Vypni led 3" || $preklad=="Vypni led3"){
$preklad=="Vypni LED 3";
file_put_contents("preklady.txt", $preklad);
}else if ($preklad=="Vypni LED4" || $preklad=="Vypni LED 4" || $preklad=="Vypni led 4" || $preklad=="Vypni led4"){
$preklad=="Vypni LED 4";
file_put_contents("preklady.txt", $preklad);
}else if ($preklad=="Zapni" || $preklad=="Zepni" || $preklad=="Zopni" || $preklad=="Zapni všetko" || $preklad=="Zapni diody" || $preklad=="Spusť diody"){
$preklad=="Zapni";
file_put_contents("preklady.txt", $preklad);
}
else if ($preklad=="Vypni" || $preklad=="Vypnúť" || $preklad=="Vypni všetko" || $preklad=="Vypni diódy"){
$preklad=="Vypni";
file_put_contents("preklady.txt", $preklad);
}
}
?>
Ahojte, po dlhom boji s tým, ako používať AJAX mám následujúci problém. Potrebujem ním spúšťať PHP scripty, ktoré čítajú a vypisujú obsah PHP súboru (TXT súbory musím použiť z dôvodu používania mikrokontroléra) php kód čítať nevie ani HTML. Iba vykonávať requesty. PHP súbor otvorí TXT súbor a prečíta, väčšinou má asi tak 3 písmená, ako ktorý.. ZAP/VYP.
<script>
$.ajax({
url: "zistinastavenuhodnotuzavlaha.php",
success: function(data) {
$('#zavlahazistenie').val(data);
}
});
</script>
<script>
$.ajax({
url: "zistinastavenuhodnotutermostat.php",
success: function(data) {
$('#termostatzistenie').val(data);
}
});
</script>
<script>
setInterval(function(){
$.get('automanualtermostat.php', function(data){
$('#automanual').text(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('get_teplota.php', function(data){
$('#stavteplota').text(data + " °C")
});
},1000);
</script>
<script>
setInterval(function(){
$.get('get_teplota.php', function(data){
$('#stavteplotatermostat').text(data + " °C")
});
},1000);
</script>
<script>
setInterval(function(){
$.get('zmenirezimtermostat.php', function(data){
$('#zmenitrezimtermostat').html(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('zmenigarazovubranu.php', function(data){
$('#zmenigarazovubranu').html(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('zistinastavenuhodnotutermostat.php', function(data){
$('#referenciatermostatu').text(data + " °C")
});
});
</script>
<script>
setInterval(function(){
$.get('hodnotatermostatu.php', function(data){
$('#hodnotatermostatu').text(data)
});
});
</script>
<script>
setInterval(function(){
$.get('zmenirezimzavlaha.php', function(data){
$('#zmenitrezimzavlaha').html(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('automanualtermostat.php', function(data){
$('#manualautomattermostat').text(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('automanualzavlaha.php', function(data){
$('#manualautomatzavlaha').text(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('get_zavlaha.php', function(data){
$('#stavzavlahy').text(data )
});
},1000);
</script>
<script>
setInterval(function(){
$.get('get_auto.php', function(data){
$('#stavauta').text(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('get_brana.php', function(data){
$('#stavbrany').text(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('get_pir.php', function(data){
$('#stavpir').text(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('get_svetlo.php', function(data){
$('#stavsvetlo').text(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('zistajaktualnuzavlahu.php', function(data){
$('#stavzavlahaaktual').text(data + " %")
});
},1000);
</script>
<script>
setInterval(function(){
$.get('zistinastavenuhodnotuzavlaha.php', function(data){
$('#referenciazavlahy').text(data + " %")
});
},1000);
</script>
<script>
setInterval(function(){
$.get('get_osoby.php', function(data){
$('#stavosob').text(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('get_termostat.php', function(data){
$('#stavtermostat').text(data)
});
},1000);
</script>
<script>
setInterval(function(){
$.get('zmenitsvetlo.php', function(data){
$('#zmenitsvetlo').html(data)
});
}),1000;
</script>
<script>
setInterval(function(){
$.get('get_termostatrezim.php', function(data){
$('#termostatrezim').text(data)
});
},1000); </script>
<script>
setInterval(function(){
$.get('get_zavlaharezim.php', function(data){
$('#zavlaharezim').text(data)
});
},1000);
</script>
Keď si zobrazím konzolu, tak za 3 sekundy už mám skoro 4000 chýb.. Chyba je: