08. juli 2006 - 13:14
Der er
10 kommentarer og 1 løsning
opdater til en anden side manuelt
hey jeg har et problem med min tagwall. Når man har skrevet og sendt en besked, bliver den sendt igen hvis man trykker opdater. Derfor tænkte jeg om man kunne vha. et metatag eller lignenden kan skifte siden fra tagwall.php?id=ny til tagwall.php, i det man selv opdatere siden. Altså ikke noget med at siden selv hopper over på den anden side.
Annonceindlæg fra Infor
Du kan f.eks. smide en: header("Location: tagwall.php"); ind efter du har skrevet til fil/database. Bare husk at der ikke må være noget output førend du sætter din header.
er det vigtigt at det er før jeg sender til min db? for lige nu siger den at siden aldrig vil blive loadet... lige nu ser sidens top sådan ud:
<?php
session_start();
$side = "tagwall";
if ($_GET["id"] = "ny")
{
$ny = true;
header("Location: tagwall.php");
}
og link:
http://noerwerk.frac.dk/tagwall.php
ja det var det ... tror jeg har den nu
Det skal være efter du har skrevet til databasen. Ellers vil der aldrig komme noget i den :)
nu har jeg prøvet en del ... og har rodet mig ud i det her: <?php session_start(); $side = "tagwall"; if ($_GET["id"] = "ny") { $ny = true; } include("db.php"); function ret_tekst($tekst) { $tekst = str_replace( "<", "<", "$tekst" ); $tekst = str_replace( ">", ">", "$tekst" ); $tekst = str_replace( "<ascii>", " <pre> ", "$tekst" ); $tekst = str_replace( "</ascii>", " </pre> ", "$tekst" ); $tekst = str_replace( "\r\n", "<br>", "$tekst" ); return $tekst; } function ret_navn($tekst) { $tekst = str_replace( "<", "<", "$tekst" ); $tekst = str_replace( ">", ">", "$tekst" ); return $tekst; } if ($ny) { if (!empty($_REQUEST["besked"]) && $_REQUEST["besked"] != "Enter your messege here!") { $tekst = ret_tekst($_REQUEST["besked"]); if ($_SESSION["admin"]) { mysql_query("insert into tagwall (navn, besked, tid, ip) values ('"."<span class=\"".$_SESSION["navn"]."\">".addslashes(ret_navn($_REQUEST["navn"]))."</span>"."', '".addslashes($tekst)."', ".time().", '".getenv("REMOTE_ADDR")."')") or die(mysql_error()); } else if ($_REQUEST["navn"] == "Name" || empty($_REQUEST["navn"])) { mysql_query("insert into tagwall (navn, besked, tid, ip) values ('Nobody', '".addslashes($tekst)."', ".time().", '".getenv("REMOTE_ADDR")."')") or die(mysql_error()); } else { mysql_query("insert into tagwall (navn, besked, tid, ip) values ('".addslashes(ret_navn($_REQUEST["navn"]))."', '".addslashes($tekst)."', ".time().", '".getenv("REMOTE_ADDR")."')") or die(mysql_error()); } } else { $Msg = "<h2>Du har ikke udfyldt beskedfeltet</h2>"; } } if (!empty($_GET["slet"]) && $_SESSION["admin"]) { mysql_query("delete from tagwall where tid='".$_GET["slet"]."'") or die(mysql_error()); } $result = mysql_query("select * from tagwall order by tid desc") or die(mysql_error()); $Msg = $Msg."<p class=\"mindre\">"; while ($row = mysql_fetch_array($result)) { $Msg = $Msg."<b>".stripslashes($row["navn"])."</b>"; if ($_SESSION["admin"]) { $Msg = $Msg." - <a href=\"tagwall.php?slet=".$row["tid"]."\">Slet</a>"; } $Msg = $Msg."<br> <u>".date("j/m-y", $row["tid"])."</u> <br> ".stripslashes($row["besked"])." <br> <br> "; } if ($_GET["id"] = "ny") { header("Location: tagwall.php"); } include("top.php"); echo Msg."</p>"; ?> <?php include("buttom.php"); ?> men det virker stadig ikke... :( kan jeg kalde ting ned fra min db efter jeg har lavet headeren eller skal det hele gøres inden?
jeg kan se at det hele virker til og med headeren, men så går den i stå der af en eller anden grund...
hov min fejl kom til at lave en enkelt = istedet for == :( det hele virker nu så bare kom med et svar
Kan du ikke poste den rigtigte kode, der er ret mange =, så det er lidt besværeligt at skulle finde der hvor der skal være == istedet for =. Tak :)
15. juli 2006 - 19:39
#10
fejlen ligger i: if ($_GET["id"] = "ny") der skal være: if ($_GET["id"] == "ny") linien er både i toppen og bunden. men der er nogle fejl, så poster en nyere en, med et maksimum antal post per side: <?php // OUTPUTBUFFER - der må ikke komme noget output før headeren har været der! ob_start(); session_start(); $ekstra = "tagwall"; include("top.php"); // DB - CONNECTION require_once("db.php"); $ppp = 5; // antallet af post per side /* CREATE TABLE `tagwall` ( `navn` VARCHAR( 255 ) NOT NULL , `besked` TEXT NOT NULL , `tid` INT NOT NULL , `ip` VARCHAR( 20 ) NOT NULL , PRIMARY KEY ( `tid` ) ); */ // TAGWALL - SEND TIL DB function ret_tekst($tekst) { $tekst = str_replace( "<", "<", "$tekst" ); $tekst = str_replace( ">", ">", "$tekst" ); $tekst = str_replace( "\r\n", "<br>", "$tekst" ); return $tekst; } function ret_navn($tekst) { $tekst = str_replace( "<", "<", "$tekst" ); $tekst = str_replace( ">", ">", "$tekst" ); return $tekst; } if ($_GET["id"] == "ny") { if (!empty($_POST["besked"]) && $_POST["besked"] != "Smid en besked!") { $tekst = ret_tekst($_POST["besked"]); if ($_POST["navn"] == "Navn" || empty($_POST["navn"])) { mysql_query("insert into tagwall (navn, besked, tid, ip) values ('Nobody', '".addslashes($tekst)."', ".time().", '".getenv("REMOTE_ADDR")."')") or die(header("Location: dberror.php?id=".mysql_error())); } else { if ($_POST["navn"] == $_SESSION["navn"]) { $name = "<a href=\"profil.php?navn=".$_SESSION["navn"]."\">".$_SESSION["navn"]."</a>"; } else { $name = addslashes(ret_navn($_POST["navn"])); } mysql_query("insert into tagwall (navn, besked, tid, ip) values ('".$name."', '".addslashes($tekst)."', ".time().", '".getenv("REMOTE_ADDR")."')") or die(header("Location: dberror.php?id=".mysql_error())); } } else { $error = true; } } if (isset($_GET["slet"]) && $_SESSION["status"] >= 9) { if ($_GET["slet"] == "all" && $_SESSION["status"] == 10) { mysql_query("truncate table tagwall") or die(header("Location: dberror.php?id=".mysql_error())); } else { mysql_query("delete from tagwall where tid='".$_GET["slet"]."'") or die(header("Location: dberror.php?id=".mysql_error())); } } if ($_GET["id"] == "ny" || isset($_GET["slet"])) { if ($_GET["id"] == "ny") { header("Location: tagwall.php?side=0".(($error) ? "&id=b" : "&id=g")); } else { header("Location: tagwall.php?side=".$_GET["side"]); } exit(); } // TAGWALL - INPUTFELT echo (($_GET["id"] == "g") ? "<h2>Din meddelelse blev sendt!</h2>" : (($_GET["id"] == "b") ? "<h2>Du havde ikke udfyldt beskedfeltet!</h2>" : "")); echo "<form method=\"post\" action=\"tagwall.php?id=ny\"> <input type=\"text\" class=\"tag\" name=\"navn\""; if (isset($_SESSION["navn"])) { echo " value=\"".$_SESSION["navn"]."\" "; } else { echo " value=\"Navn\" "; } echo "onFocus=\"this.select()\"> <input type=\"image\" src=\"gfx/ok.png\"> <br> <textarea class=\"tag\" name=\"besked\" onFocus=\"this.select()\">Smid en besked!</textarea> </form> "; // TAGWAL - OUTPUT $antal = mysql_num_rows(mysql_query("select * from tagwall")); if ($_GET["side"] > 0) { echo "<<a href=\"tagwall.php?side=".($_GET["side"] - 1)."\">prev</a> "; } else { echo "<prev "; } for ($nr = 0; $antal / $ppp > $nr; $nr++) { if ($_GET["side"] == $nr) { echo ($nr + 1)." "; continue; } echo "<a href=\"tagwall.php?side=".$nr."\">".($nr + 1)."</a> "; } if ($_GET["side"] < ($antal / $ppp) - 1) { echo "<a href=\"tagwall.php?side=".($_GET["side"] + 1)."\">next</a>>"; } else { echo "next>"; } echo "<br><br>"; $result = mysql_query("select * from tagwall order by tid desc limit ".($ppp * $_GET["side"]).", ".$ppp) or die(header("Location: dberror.php?id=".mysql_error())); while ($row = mysql_fetch_array($result)) { echo "<b>".stripslashes($row["navn"])."</b>"; if ( $_SESSION["status"] >= 9) { echo " - <a href=\"tagwall.php?slet=".$row["tid"]."&side=".$_GET["side"]."\">Slet</a>"; } echo "<br> <u>".date("j/m-y", $row["tid"])."</u> <br> ".stripslashes($row["besked"])." <br> <br> "; } // BUNDEN mysql_close($conn); include("bottom.php"); ob_end_flush(); ?> filen db.php indeholder kun en db-connect, og top.php og botton.php er ren html
16. juli 2006 - 11:22
#11
Godt arbejde, tak... :)
Vi tilbyder markedets bedste kurser inden for webudvikling