Hogy Működik a header() függvény?
Sziasztok. Nemrég kezdtem el php-val foglalkozni és belefutottam egy valószínüleg triviális problémába, de nem tudok tovább jutni, ezért kérném a segítségeteket.
Az oldal olyasmi mint egy fórum, és a bejegyzések törlésével illetve szerkesztésével van bajom.
meg is mutatnám azt a oldal azon részeit ahol a problémák vannakMinden tök faszán működne rajta, ha a header() függvény csinálná ami a dolga, viszont mindig azt a hibát dobja ki hogy már előzőleg elküldte a header-t és nem akarja módósítani. Kérdésem az lenne hogy Header-t tényleg csak egyszer lehet elküldeni egy munkameneteten belül?
■ Az oldal olyasmi mint egy fórum, és a bejegyzések törlésével illetve szerkesztésével van bajom.
meg is mutatnám azt a oldal azon részeit ahol a problémák vannak
- <? include('connect.php');
- if (isset($_REQUEST[cim]))
- {
- $sql="insert into cikkek (datum,cim,tartalom) values(NOW(),'".$_REQUEST[cim]."','".$_REQUEST[tartalom]."')";
- mysql_query($sql);
- echo "<script type='text/javascript'>alert('A bejegyzés sikeresen hozzáadva az adatbázishoz ".$_REQUEST[cim]." néven!');</script>";
- header("location:cikk_edit.php");
- }
- ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
- <title>Adminisztrációs oldal -> Madách Musical Tánciskola</title>
- <script type="text/javascript">
- function modosit(){
- r = confirm("Biztos benne, hogy modosítani akarja a bejegyzést?");
- if (r == true){
- <?
- if (isset($_REQUEST[modositcim]))
- {
- $sql="update cikkek set cim='$_REQUEST[modositcim]', tartalom='$_REQUEST[tartalom]' where id=$_REQUEST[id]";
- mysql_query($sql);
- echo "alert('bejegyzés frissitve!')";
- }
- ?>
- }
- else{}
- }
- </script>
- <script type="text/javascript">
- function torolcikk(){
- r = confirm("Biztos benne, hogy törölni akarja a bejegyzést?");
- if (r == true){
- <?
- if (isset($_REQUEST[szerkeszt]) && $_REQUEST[szerkeszt] == "torol")
- {
- $sql="delete from cikkek where id=$_REQUEST[id]";
- mysql_query($sql);
- echo "alert('bejegyzés törölve!')";
- header("location:cikk_edit.php?szerkeszt=none");
- }
- ?>
- }
- else
- {<? header("location:cikk_edit.php?szerkeszt=none"); ?>}
- }
- </script>
- <script type="text/javascript" src="scriptek/jquery-1.3.2.js"></script>
- <link rel="stylesheet" type="text/css" href="editor.css" media="all"></link>
- </head>
- <body>
- <div id="oldalkeret">
- <? include('menusor.php'); ?>
- <div class="jobboldal">
- <div id="rejtett_doboz1" class="rejtettdiv">
- <form name="uj_cikk" method="post">
- <span class="felirat2">Cím:</span><br/>
- <input type="text" name="cim" width="500"/>
- <br/>
- <span class="felirat2">Tartalom:</span><br/>
- <textarea name="tartalom" cols="50" rows="20"></textarea>
- <br/>
- <input type="submit" value="Mentés" onclick="ujcikk()"/>
- </form>
- </div>
- <div id="uj_cikk" class="felirat1">
- Új cikk
- </div>
- <div id="rejtett_doboz2" class="rejtettdiv">
- <form method="post">
- <input type="hidden" name="szerkeszt" />
- <span class="felirat2">Az adatbázisban szereplõ cikkek</span>
- <?
- $result=mysql_query("select * from cikkek order by -datum");
- echo "<div id='belso_tabla'><font color='#f5f4f2'><table width='95%'>";
- echo "<tr><th width='80%'>Cím</th><th width='10%'>Tõrlés</th><th width='10%'>Módosítás</th></tr>";
- while ($sor=mysql_fetch_array($result))
- {
- echo "<tr><td>$sor[cim]</td><td align='center' valign='middle'><a href='cikk_edit.php?szerkeszt=torol&id=$sor[id]' onClick='torolcikk()'><img src='elemek/del.png'/></a></td><td align='center' valign='middle'><a href='cikk_edit.php?szerkeszt=szerkeszt&id=$sor[id]'><img src='elemek/mod.png'/></a></td></tr>";
- }
- echo "</table></font></div>";
- if (isset($_REQUEST[szerkeszt]) && $_REQUEST[szerkeszt]== "szerkeszt")
- {
- $result=mysql_query("select * from cikkek where id=$_REQUEST[id]");
- $sor=mysql_fetch_array($result);
- ?>
- <form name="cikk_mod" method="post">
- <input type="hidden" name="id" value="<?=$_REQUEST[id]; ?>" />
- <span class="felirat2">Cím:</span><br/>
- <input type="text" name="modositcim" width="500" value="<?=$sor[cim]; ?>"/>
- <br/>
- <span class="felirat2">Tartalom:</span><br/>
- <textarea name="tartalom" cols="60" rows="10"><?=$sor[tartalom]; ?></textarea>
- <br/>
- <input type="submit" value="Mentés" onclick="modosit()"/>
- </form>
- <? }
- ?>
- </form>
- </div>
- <div id="cikk_szerk" class="felirat1">
- Szerkesztés
- </div>
- <div id="aktiv_ablak">
- </div>
- </div>
- </div>
- </body>
- </html>
Ha nincs cache-elve(?) a
Ha csak egy szóköz vagy null karakter megelőzi, már nem fog működni.
(ennyi amit én tudok a témáról, aztán valaki biztosan mond róla többet is)
Szuper. és hogyan tudom
Passz. Talán a webszerver
Ingyenes szolgáltatóknál, ahol reklámokkal szemetelik tele az oldalad, általában be van állítva.
Lévén reklám a statikus HTML
Pontosabban nem cache, hanem
Na... ezért volt ott a
Köszi.
Ebből következően mégis php.ini, ha általánosságban kell.
BOM
A "header('Location...')"
A lényege az, hogy átirányítson, és nem pedig az, hogy javascript alerteket értelmezzen.
Egyébként hogyan gondoltad ezt a dolgot? Rákattint az alert 'OK' gombjára, és csak utána megy tovább a location-re? Erre inkább a javascript window.location változóját ajánlanám.
Ez jó ötletnek tűnik, de...
kliens vs szerver
hmm... okés és php-ban van
Igazából szeretném
Új oldal
Király vagy! :D Köszönöm
Köszönöm szépen így már jó lesz. :D
És köszönöm mindenki másnak is aki segített a problémám megoldásában. :D
Nem fog működni