Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: stevo1 01. 09. 2015, 15:39:52
-
Dobry den
Potreboval by som pomoct s html.Mam formular ktory ak je spravne vypisany zapise text do text suboru. Potreboval by som tento formular prerobit na toggle button. Prikazi su len dva ak by bol toggle aktivny bol by prikaz a zapisane do suboru rozni ak by bol toggle vypnuty prikaz a zapisane do suboru by bolo zhasni. Vedel by mi niekto poradit ?
index.php
<form method="POST" action="odeslat.php">
<div align="center">
<center>
<table border="0" width="236">
<tr>
<td width="300">Pøíkaz :</td>
<td width="164"><input type="text" name="prikaz" size="20" value=""></td>
</tr>
<tr>
<td width="300">Heslo:</td>
<td width="164"><input type="password" name="heslo" size="20"></td>
</tr>
<tr>
<td width="300" colspan="2">
<p align="center"><input type="submit" value="Odeslat" name="B1"></td>
</tr>
</table>
</center>
</div>
</form>
odeslat.php
<?php
// zjitìní hodnoty pøedávaného parametru z formuláøe na strance "index.htm"
$prikaz=$_POST['prikaz'];
$heslo=$_POST['heslo'];
if ($heslo != "123") // tady si zvolte vlastní heslo
{
echo "Spatne heslo";
}
else
{
if ($prikaz == "")
{
echo "Prikaz chybi, takze se nic nezapsalo";
}
else
{
// pokud je pøíkaz zadaný, uloí ho do souboru "kod.txt"
$soubor = "kod.txt";
$fh = fopen($soubor, 'w+');
fwrite($fh, $prikaz);
fclose($fh);
echo "Prikaz '" . $prikaz . "' byl zapsan do souboru 'kod.txt'";
}
}
?>
-
index.php
<?php
$soubor = "kod.txt";
$fh = fopen($soubor, "r");
$prikaz=fread($fh,10);
fclose($fh);
if ($prikaz=="zhasni") {
$prikaz="rozni";
} else {
$prikaz="zhasni";
}
?>
<form method="POST" action="odeslat.php">
<div align="center">
<center>
<table border="0" width="236">
<tr>
<td width="300">Heslo:</td>
<td width="164"><input type="password" name="heslo" size="20"></td>
</tr>
<tr>
<td width="300" colspan="2">
<p align="center"><input type="submit" value="<?php echo $prikaz; ?>" name="B1"></td>
</tr>
</table>
</center>
</div>
</form>
odeslat.php
<?php
// zji<9a>tìní hodnoty pøedávaného parametru z formuláøe na strance "index.htm"
$heslo=$_POST['heslo'];
if ($heslo != "123") // tady si zvolte vlastní heslo
{
echo "Spatne heslo";
}
else
{
$soubor = "kod.txt";
$fh = fopen($soubor, "r");
$prikaz=fread($fh,10);
fclose($fh);
$fh = fopen($soubor, "w");
if ($prikaz=="zhasni") {
$prikaz="rozni";
} else {
$prikaz="zhasni";
}
fwrite($fh,$prikaz);
fclose($fh);
echo "Prikaz '" . $prikaz . "' byl zapsan do souboru 'kod.txt'";
}
?>
Neco takovyho?
-
ano nieco podobne ako toggle button som myslel vsak toto (https://d13yacurqjgara.cloudfront.net/users/249044/screenshots/1553755/toggle_1x.jpg) ak bude toggle aktivny zapise rozni ak bude toggle vypnuty zapise zhasni. Heslo tam nebude.
-
Doporucuji hledat "pure css toggle", lze udelat ciste pres css..
<input class="toggle" id="check1" type="checkbox" name="text" value="1" />
<label for="check1"></label>
a pomoci stylu
.toggle { opacity:0; }
.toggle + label { background:url(unchecked.png); }
.toggle:checked + label { background:url(checked.png); }
na skryti checkboxu je lepsi pouzit opacity:0, pokud se pouzije display:none nebo visibility:hidden nefunguje focus
-
Este som sa chcel spytat ak chcem odstranit odtial heslo staci to takto ?
<?php
if
{
$soubor = "kod.txt";
$fh = fopen($soubor, "r");
$prikaz=fread($fh,10);
fclose($fh);
$fh = fopen($soubor, "w");
if ($prikaz=="zhasni") {
$prikaz="rozni";
} else {
$prikaz="zhasni";
}
fwrite($fh,$prikaz);
fclose($fh);
echo "Prikaz '" . $prikaz . "' byl zapsan do souboru 'kod.txt'";
}
?>
Ospravedlnujem sa ak to je zle som zaciatocnik :/
-
Este som sa chcel spytat ak chcem odstranit odtial heslo staci to takto ?
... Ospravedlnujem sa ak to je zle som zaciatocnik :/
Je to sice značně zastaralé, kostrbaté a je v tom skrytý souběh, ale pro zkušební účely by to fungovat mohlo.
K čemu je vlastně dobrý soubor kod.txt? Má nějaký význam mimo PHP?
-
@kit vedel by si mi to upravit aby to cele dobre fungovalo ? Je tam to if v poriadku ? Cele to funguje nato ze python script v raspberry pi mi cita status ktory je v subore kod.txt :)
-
@kit vedel by si mi to upravit aby to cele dobre fungovalo ? Je tam to if v poriadku ? Cele to funguje nato ze python script v raspberry pi mi cita status ktory je v subore kod.txt :)
Ta poslední věta byla pro mne velmi důležitá.
Není to sice nijak dokonalé, ale v této podobě mi to funguje. Je to vše v jednom souboru, který si můžeš pojmenovat třeba index.php.
<?php
$soubor = "kod.txt";
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if (!isset($_POST['heslo'])) {
header('Location: #chybi-heslo');
exit();
}
if ($_POST['heslo'] != "a123") {
header('Location: #spatne-heslo');
exit();
}
if (!isset($_POST['prikaz'])) {
header('Location: #chybi-prikaz');
exit();
}
$prikaz = $_POST['prikaz'];
switch ($prikaz) {
case 'zhasni' :
case 'rozni' :
file_put_contents($soubor, $prikaz);
header('Location: #prikaz-splnen');
exit();
default:
header('Location: #spatny-prikaz');
exit();
}
}
header('Content-Type: text/html;charset=UTF-8');
if (! $stav = @file_get_contents($soubor)) {
file_put_contents($soubor, '');
}
echo <<<EOT
<form method="POST">
<div align="center">
<center>
<table border="0" width="236">
<tr>
<td width="300">Stav:</td>
<td width="164">$stav</td>
</tr>
<tr>
<td width="300">Příkaz:</td>
<td width="164"><input type="text" name="prikaz" size="20" value=""></td>
</tr>
<tr>
<td width="300">Heslo:</td>
<td width="164"><input type="password" name="heslo" size="20"></td>
</tr>
<tr>
<td width="300" colspan="2">
<p align="center"><input type="submit" value="Odeslat" name="B1"></td>
</tr>
</table>
</center>
</div>
</form>
EOT;
-
@kit ak som to dobre porozumel kodu tak si ho len upravil ? Potreboval by som aby tie prikazi rozni (aktivny toggle button) zhasni (vypnuty toggle button ) zapisovali do toho kod.txt ale aby netrebalo kliknut na tlacitko odoslat a nepytalo to heslo. Vedel by si mi to upravit ?
-
@kit ak som to dobre porozumel kodu tak si ho len upravil ? Potreboval by som aby tie prikazi rozni (aktivny toggle button) zhasni (vypnuty toggle button ) zapisovali do toho kod.txt ale aby netrebalo kliknut na tlacitko odoslat a nepytalo to heslo. Vedel by si mi to upravit ?
Stačí, když vyhodíš ty dvě podmínky, kde je použit $_POST['heslo'], tedy kompletních 6 řádek včetně if a složených závorek.
Ve formuláři pak vyhodíš dva poslední řádky tabulky.
Do toho souboru kod.txt to zapisuje už nyní.
-
... zapisovali do toho kod.txt ale aby netrebalo kliknut na tlacitko odoslat a nepytalo to heslo. Vedel by si mi to upravit ?
Jo tys to myslel úplně jednoduše s jediným tlačítkem? Na to ani nepotřebuješ tabulku.
<?php
$soubor = "kod.txt";
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if (isset($_POST['zhasni'])) {
file_put_contents($soubor, 'zhasni');
header('Location: #zhasnuto');
exit();
}
if (isset($_POST['rozni'])) {
file_put_contents($soubor, 'rozni');
header('Location: #roznuto');
exit();
}
header('Location: #chybi-prikaz');
exit();
}
header('Content-Type: text/html;charset=UTF-8');
if (! $stav = @file_get_contents($soubor)) {
file_put_contents($soubor, '');
}
$name = ($stav == 'rozni') ? 'zhasni' : 'rozni';
$value = ($stav == 'rozni') ? 'Zhasni' : 'Rožni';
echo <<<EOT
<form method="POST">
<div align="center">
<center>
<input type="submit" value="$value" name="$name"></td>
</center>
</div>
</form>
EOT;
-
@kit este som sa chcel spytat je moc velky problem tam pridat casovac ? Ak bude toggle aktivny zobrazi sa napriklad 30s a po odratani sa sam vypne ? Poto by ma zaujimalo vsak ako by to bolo ak by som refreshol stranku casovac by zacal znovu alebo by dokazal pokracovat ? Dakujem ti inak velmi pekne :)
-
... zapisovali do toho kod.txt ale aby netrebalo kliknut na tlacitko odoslat a nepytalo to heslo. Vedel by si mi to upravit ?
Jo tys to myslel úplně jednoduše s jediným tlačítkem? Na to ani nepotřebuješ tabulku.
<?php
$soubor = "kod.txt";
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if (isset($_POST['zhasni'])) {
file_put_contents($soubor, 'zhasni');
header('Location: #zhasnuto');
exit();
}
if (isset($_POST['rozni'])) {
file_put_contents($soubor, 'rozni');
header('Location: #roznuto');
exit();
}
header('Location: #chybi-prikaz');
exit();
}
header('Content-Type: text/html;charset=UTF-8');
if (! $stav = @file_get_contents($soubor)) {
file_put_contents($soubor, '');
}
$name = ($stav == 'rozni') ? 'zhasni' : 'rozni';
$value = ($stav == 'rozni') ? 'Zhasni' : 'Rožni';
echo <<<EOT
<form method="POST">
<div align="center">
<center>
<input type="submit" value="$value" name="$name"></td>
</center>
</div>
</form>
EOT;
Tak som to skusil nahodit a nezobrazi sa na stranke nic :/ ziadny toggle button vedel by si mi tam pridat toggle button ako je (https://d13yacurqjgara.cloudfront.net/users/249044/screenshots/1553755/toggle_1x.jpg)
Este raz ti velmi pekne dakujem
-
@kit prosim poradil by si mi ? Dakujem.