| Autor | Zpráva | ||
|---|---|---|---|
| BedyR Profil |
#1 · Zasláno: 4. 9. 2014, 12:59:22
Dobrý,
Nevím jestli jsem zde správně protože problém se týká HTML, ale mám tam i PHP. Mám stránku s tabulkou z které vyberu řádek a ten pak můžu editovat nebo rušit. Výběrem řádku se uloží do SESSION informace o ID řádku. Pak stiskem tlačítka EDIT se zobrazí formulář pro editaci konkretního řádku dle ID. Ve všech prohlížečích to funguje správně, jen CHROME provede toto: - po klepnuti na řádek tabulky načte formulář sám dvakrát , po prve je v GETu správná hodnota ta se uloží do ID a vykreslí formulář po druhém je v GETu hodnota 'favicon.ico' ta se uloží do ID ale nepřekreslí formulář - takže po stisku na EDIT nedojde k editaci odpovídajícího řádku. udělal jsem malí příkladek: index.php - uložen na lokále ve složce test <?php
session_start();
if (!isset($_SESSION['ID'])) {
$_SESSION['ID'] = 0;
$_SESSION['pruchod'] = 1;
$_SESSION['GET'] = array();
}
else {
$_SESSION['pruchod'] ++;
}
if (count($_GET)>0) {
$_SESSION['GET'][$_SESSION['pruchod']] = $_GET;
$_SESSION['ID'] = $_GET['rade'];
}
if (count($_POST)>0) {
if (isset($_POST['EDIT'])) { $idedit = $_SESSION['ID']; }
$_SESSION['GET'] = array();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html40/loose.dtd">
<html>
<head>
<link rel="icon" href="favicon.ico">
</head>
<body>
<div class="seznam">
<div id="sez_popis">
<span class="hlav">Kod</span>
</div>
<div id="sez_rad">
<a class="rad" href="http://localhost/test/rec/1">
<div class="pol">0001</div>
</a>
<a class="rad" href="http://localhost/test/rec/2">
<div class="pol">0002</div>
</a>
<a class="rad" href="http://localhost/test/rec/3">
<div class="pol">0003</div>
</a>
</div>
</div>
<form method="post" action="http://localhost/test/index.php" enctype="multipart/form-data" target="_self">
<input name="EDIT" type="submit" value="Edit">
</form>
<?php
if (count($_GET)>0) {
echo "<br>GET<pre>".print_r($_SESSION['GET'],true)."</pre>";
echo "ID ".$_SESSION['ID'];
}
if (count($_POST)>0) {
echo "idedit ".$idedit."<br>";
echo "ID ".$_SESSION['ID'];
}
?>
</body>
</html>.htaccess - uložen na lokále ve složce test ## PHP
php_value memory_limit 48M
php_value post_max_size 48M
php_value upload_max_size 48M
php_value upload_max_filesize 256M
php_value max_execution_time 2000
php_value max_input_time 2000
## Nastavení register_globals
<IfModule mod_php5.c>
php_flag register_globals on
</IfModule>
##
AddType application/x-httpd-php .php .php5
DirectoryIndex index.php index.html info.html
## Přesměřování a podstrkávání
RewriteEngine On
Options +FollowSymlinks
# pokud je to zanorene v nejakem adresari, uvedte ho za /
RewriteBase /test/
# ignoruje vsechny opravdove adresare
RewriteCond %{REQUEST_FILENAME} !-d
# ignoruje vsechy opravdove soubory (php skripty, obrazky, styly)
RewriteCond %{REQUEST_FILENAME} !-f
# vsechno ostatni necha vygenerovat index.php ( ten rozhodne jaky ma mit obsah) [L]
RewriteRule ^rec/(.*)/?$ index.php?rade=$1Pokud odstraním z html hlavičky <link rel="icon" href="favicon.ico"> Jenže 'favicon' tam musí být. Mohl by mi někdo poradit. Díky |
||
| Davex Profil |
Existuje v adresáři test/ soubor favicon.ico? Zkus udělat vyjímku, že když bude v GET hodnota favicon.ico, tak se skript ukončí.
|
||
| BedyR Profil |
Davex:
Ve složce test je soubor favicon.ico. Nejdřív jsem to řešil tak že jsem v části testující GET udělal podmínku if (isset($_GET['rade'])) { if ($_GET['rade']!='favicon.ico') { zpracování GET['rade'] } }. Pak jsem dal úplně na začátek index.php podmínku <?php if ($_GET['rade']!='favicon.ico') { zpracování } ?>No, ale spouští se to dvakrát ! Uvažoval jsem jestli nemusí mít CHROME jinak zapsaný ten favicon.ico , když u jiných prohlížečů to proběhne jednou, že musí být něco co způsobí refreš . Zatím dík. Původně jsem tam měl řádky: <link rel="shortcut icon" href="favicon.ico"> <link rel="icon" type="image/gif" href="animated_favicon.tif"> U POSTu pouze jednou. Zvlášťní. |
||
| Davex Profil |
#4 · Zasláno: 4. 9. 2014, 23:48:37
BedyR:
Tak tam dej odkaz na favicon takový, aby se načítal přímo z adresáře /test/ a nenačítal se z cesty, která se přepisuje na index.php <link rel="shortcut icon" href="/test/favicon.ico"> <link rel="icon" type="image/gif" href="/test/animated_favicon.tif"> |
||
| BedyR Profil |
Davex:
Dík, to bylo to ono co dělá život krásný. |
||
|
Časová prodleva: 12 let
|
|||
0