Autor Zpráva
pheek
Profil *
Dobrý den, mám jednoduchý editor souboru napsaný v PHP:
cat /form.php
<?
echo ("Dočasné zakázání WWW stránky (v pracovní době). <br />");
?>
<form action="processscript.php" method="post">
<textarea rows="28" cols="140" name="content">
<?
$fn = "/var/www/edit/restricted-sites.squid";
print htmlspecialchars(implode("",file($fn)));
?> 
</textarea><br>
<input type="submit" value="Uložit"> 

cat /processscript.php
<?
$fn = "/var/www/edit/restricted-sites.squid";
$content = stripslashes($_POST['content']);
$fp = fopen($fn,"w") or die ("Error opening file in write mode!");
fputs($fp,$content);
fclose($fp) or die ("Error closing file!");
system ("/var/www/edit/restart_squid.sh");
echo "<meta http-equiv=\"refresh\" content=\"0; /edit/form.php\" />\n";



Pokud dám "uložit" tak mi soubor uloží a restartuje SQUID, potřeboval bych udělat to aby když dám "uložit" se po dobu restartu ukázala stránka s nějakým textem, třeba že se soubor ukládá a squid restartuje. Popřípadě výpis z konzole co se se squidem děje, jako je třeba toto:

/etc/init.d/squid restart
Restarting Squid HTTP proxy: squid Waiting.....................done.
7.Host
Profil *
<?php if($_POST["ulozit"]);
{
echo "počkejte prosím";
sleep(5);
}else{
 ?>
cat /form.php
<?
echo ("Dočasné zakázání WWW stránky (v pracovní době). <br />");
?>
<form action="processscript.php" method="post">
<textarea rows="28" cols="140" name="content">
<?
$fn = "/var/www/edit/restricted-sites.squid";
print htmlspecialchars(implode("",file($fn)));
?> 
</textarea><br>
<input type="submit" name="ulozit" value="Uložit"> 


cat /processscript.php
<?
$fn = "/var/www/edit/restricted-sites.squid";
$content = stripslashes($_POST['content']);
$fp = fopen($fn,"w") or die ("Error opening file in write mode!");
fputs($fp,$content);
fclose($fp) or die ("Error closing file!");
system ("/var/www/edit/restart_squid.sh");
echo "<meta http-equiv=\"refresh\" content=\"0; /edit/form.php\" />\n";
}
?>


Zkuste to takhle
pheek
Profil *
Vytvořil jsem tedy jede soubor ulozit.php
<?php if($_POST["ulozit"]);
{
echo "počkejte prosím";
sleep(5);
}else{
 ?>
<?
echo ("Dočasné zakázání WWW stránky (v pracovní době). <br />");
?>
<form action="processscript.php" method="post">
<textarea rows="28" cols="140" name="content">
<?
$fn = "/var/www/edit/restricted-sites.squid";
print htmlspecialchars(implode("",file($fn)));
?> 
</textarea><br>
<input type="submit" name="ulozit" value="Uložit"> 


<?
$fn = "/var/www/edit/restricted-sites.squid";
$content = stripslashes($_POST['content']);
$fp = fopen($fn,"w") or die ("Error opening file in write mode!");
fputs($fp,$content);
fclose($fp) or die ("Error closing file!");
system ("/var/www/edit/restart_squid.sh");
echo "<meta http-equiv=\"refresh\" content=\"0; /edit/form.php\" />\n";
}
?>

dostanu
Parse error: syntax error, unexpected T_ELSE in /var/www/edit/ulozit.php  on line 5
Mastodont
Profil
V prvním řádku nemá být středník na konci
_es
Profil
pheek:
Nebude v princípe oveľa jednoduchšie nasmerovať formulár na nejaký iframe alebo nové okno?
Treba len nastaviť atribút target značky form.
pheek
Profil *
Toho jsem si nevšiml, ale i tak to nechodí a navíc mi to obsah toho souboru nenávratně smaže, zrekapituluji:
vytvořil jsem jeden soubor který se jmenuje ulozit.php a do něj jsem vložil:
<?php if($_POST["ulozit"])
{
echo "počkejte prosím";
sleep(5);
}else{
 ?>
<?
echo ("Dočasné zakázání WWW stránky (v pracovní době). <br />");
?>
<form action="processscript.php" method="post">
<textarea rows="28" cols="140" name="content">
<?
$fn = "/var/www/edit/restricted-sites.squid";
print htmlspecialchars(implode("",file($fn)));
?> 
</textarea><br>
<input type="submit" name="ulozit" value="Uložit"> 


<?
$fn = "/var/www/edit/restricted-sites.squid";
$content = stripslashes($_POST['content']);
$fp = fopen($fn,"w") or die ("Error opening file in write mode!");
fputs($fp,$content);
fclose($fp) or die ("Error closing file!");
system ("/var/www/edit/restart_squid.sh");
echo "<meta http-equiv=\"refresh\" content=\"0; /edit/form.php\" />\n";
}
?>

Nemám to rozdělit a dát do více souboru?
pheek
Profil *
Našel jsem si že by se dalo vypsat co co se provádí na pozadí pomocí toho scriptu který restartuje SQUID, používá se na to flush, mohl by mi někdo poradit jak na to? Zkoušel jsem ale nedobral jsem se zdárného výsledku. Děkuji moc.
pheek
Profil *
Takže už mi to chodí, upravil jsem
cat processscript.php 

<?
$fn = "/var/www/edit/restricted-sites.squid";
$content = stripslashes($_POST['content']);
$fp = fopen($fn,"w") or die ("Error opening file in write mode!");
fputs($fp,$content);
fclose($fp) or die ("Error closing file!");
$pmt = array("-", "\\", "|", "/" );
for( $i = 0; $i <40; $i ++ ){
sleep(1);
print "Ukládám a restartuji SQUID ".$pmt[$i % 4]."<br>\n";
ob_flush();
flush();
}
system ("/var/www/edit/restart_squid.sh");
sleep(4);
echo "<meta http-equiv=\"refresh\" content=\"0; /edit/form.php\" />\n";


cat form.php 

<?
echo ("Dočasné zakázání WWW stránky (v pracovní době). <br />");
?>
<form action="processscript.php" method="post">
<textarea rows="28" cols="140" name="content">
<?
$fn = "/var/www/edit/restricted-sites.squid";
print htmlspecialchars(implode("",file($fn)));
?> 
</textarea><br>
<input type="submit" name="ulozit.php" value="Uložit"> 
</form>

Teď to vytváří
Ukládám a restartuji SQUID -
Ukládám a restartuji SQUID \
Ukládám a restartuji SQUID |
Ukládám a restartuji SQUID /
Ukládám a restartuji SQUID -
Ukládám a restartuji SQUID \
Ukládám a restartuji SQUID |
Ukládám a restartuji SQUID /
Ukládám a restartuji SQUID -

Je možné aby to zapisoval do jednoho řádku tak aby text byl na stejném místě a jen se měnilo to pole? -\-/- aby se to točilo, jako že to pracuje. A mohlo by se to točit rychleji :)
fuckin
Profil
nebylo by lepsi tam dat nejaky animovany gif?
pheek
Profil *
Jak donutit flush aby počkal až se restart provede?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0