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