Slettet bruger
01. september 2005 - 15:20
Der er
40 kommentarer og 1 løsning
Skrive med HTML
Hej alle sammen - jeg vil godt have sådan at statusen ejer kan skrive med HTML i tagwall. Min tagwall ser sådan ud: <? session_start(); if (session_is_registered("brugernavn") AND ("kodeord")) { include "config.php"; $hent = mysql_query("SELECT * FROM community WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis = mysql_fetch_array($hent); ?> <? if($_POST[action] == "skriv") { if($_POST[tekst] == "") { print "<font color=black>Skriv noget!</font><br><br>"; }else{ include "config.php"; $navn = $_SESSION[brugernavn]; $farve = $_POST[farve]; $tekst = htmlspecialchars($_POST[tekst]); $dato = date('d/m/Y H:i:s'); $ip = $_SERVER[REMOTE_ADDR]; mysql_query("INSERT INTO tagwall (navn, dato, tekst, farve, ip) VALUES ('$navn', '$dato', '$tekst', '$farve', '$ip')"); } } ?> <html> <head> <link rel="stylesheet" HREF="style.css" type="text/css"> </head> <form action="index.php" method="post"> <input type="hidden" name="action" value="skriv"> <? include "config.php"; $admin = mysql_query("SELECT * FROM community WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis_admin = mysql_fetch_array($admin); if($vis_admin[status] == "Ejer") { print "<input type='hidden' name='farve' value='#CKDJ54'>"; ?><input type="text" name="tekst" size="20" style="border: 1px solid #000000"><br> <input type="submit" name="submit" value="Tag it" style="border:1px solid #000000; font-size:12; background-color:#FFFFFF"> <input type="reset" name="reset" value="Forfra" style="border-style: solid; border-width: 1px; font-size:12; background-color:#FFFFFF"> <button class="button" onclick="window.location='index.php'" style="font-size: 12; border: 1px solid #000000; background-color: #FFFFFF"> Opdater </button></form> <br> <? $num = mysql_query("SELECT * FROM tagwall ORDER BY id DESC"); $all_tags = mysql_num_rows($num); echo("Tags ialt <b>".$all_tags."</b>."); ?> <? $query = mysql_query("SELECT * FROM tagwall WHERE navn = '$_SESSION[brugernavn]'") or die(mysql_error()); $you_tags = mysql_num_rows($query); echo("Du har skrevet <b>".$you_tags."</b> tags."); ?> <br><br> <? } } if($_GET[vis] == "alle") { include "config.php"; $hent_beskeder = mysql_query("SELECT * FROM tagwall ORDER BY id DESC") or die(mysql_error()); while($vis_beskeder = mysql_fetch_array($hent_beskeder)) { ?> <hr style="BORDER-RIGHT: #333333 3px dotted; BORDER-TOP: #333333 3px dotted; BORDER-LEFT: #333333 3px dotted; BORDER-BOTTOM: #333333 3px dotted" SIZE="1" color="#D4DFEC"> <b><font color="<? echo $vis_beskeder[farve]; ?>"><? echo $vis_beskeder[navn]; ?></font></b> - D. <? echo $vis_beskeder[dato]; ?><br> <? echo $vis_beskeder[tekst]; ?><br> <? } } ?> </body></html> <? }else{ print "<link rel='stylesheet' HREF='style.css' type='text/css'><font color=red>Du skal være logget ind for at kunne skrive i tagwall'en!</font>"; } ?>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
01. september 2005 - 16:02
#1
Kan alle skrive med HTML nu?
01. september 2005 - 16:07
#2
Nej, det kan de ikke :) Den nemmeste måde, som jeg ser det, er at udskifte din htmlspecialchars($_POST['tekst']) og lave den en smule om. if($status == "ejer") { $tekst = mysql_real_escape_string($_POST['tekst']); } else { $tekst = strip_tags(mysql_real_escape_string($_POST['tekst'])); } navn = $_SESSION['brugernavn']; $farve = $_POST['farve']; $dato = date('d/m/Y H:i:s'); $ip = $_SERVER['REMOTE_ADDR']; mysql_query("INSERT INTO tagwall (navn, dato, tekst, farve, ip) VALUES ('$navn', '$dato', '$tekst', '$farve', '$ip')"); Prøv det :)
01. september 2005 - 16:12
#3
Alternativt, hvis du vil beholde din htmlspecialchars(): if($status == "ejer") { $tekst = htmlspecialchars($_POST['tekst']); $tekst = str_replace("<", "<", $tekst); $tekst = str_replace(">", ">", $tekst); } else { $tekst = htmlspecialchars($_POST['tekst']); } $navn = $_SESSION['brugernavn']; $farve = $_POST['farve']; $dato = date('d/m/Y H:i:s'); $ip = $_SERVER['REMOTE_ADDR']; mysql_query("INSERT INTO tagwall (navn, dato, tekst, farve, ip) VALUES ('$navn', '$dato', '$tekst', '$farve', '$ip')");
01. september 2005 - 16:16
#4
Og hvis det så skal være helt godt, så der ikke kommer problemer hvis brugeren bruger " eller ', så vil jeg tilføje lidt så det bliver: if($status == "ejer") { $tekst = mysql_real_escape_string(htmlspecialchars($_POST['tekst'])); $tekst = str_replace("<", "<", $tekst); $tekst = str_replace(">", ">", $tekst); } else { $tekst = mysql_real_escape_string(htmlspecialchars($_POST['tekst'])); } $navn = $_SESSION['brugernavn']; $farve = $_POST['farve']; $dato = date('d/m/Y H:i:s'); $ip = $_SERVER['REMOTE_ADDR']; mysql_query("INSERT INTO tagwall (navn, dato, tekst, farve, ip) VALUES ('$navn', '$dato', '$tekst', '$farve', '$ip')"); Og så i din udskrift: <? echo striptags($vis_beskeder[tekst]); ?> :)
Slettet bruger
01. september 2005 - 16:52
#5
Første og anden dur ikke..
01. september 2005 - 16:54
#6
Hvad med 3. ? Og har du tilpasset if($status == "ejer") ? Jeg ved jo ikke hvor statusen kommer fra, så hvis det f.eks. er en session, så skal det jo være if($_SESSION['status'] == "ejer") etc.
Slettet bruger
01. september 2005 - 17:05
#7
Nej det er ikke session.. Får fejlen: Fatal error: Call to undefined function: striptags() "Adressen siger jeg ikke"
01. september 2005 - 17:10
#8
Den hedder jo også strip_tags()
Slettet bruger
01. september 2005 - 17:11
#9
Ja men det virker jo ikke..
01. september 2005 - 17:11
#10
Men jeg tror 3. forslag også er det der passer bedst til det du vil have...
Slettet bruger
01. september 2005 - 17:12
#11
Det er nummer 3 der ikke virker.....
01. september 2005 - 17:13
#12
Ah, nu ved jeg det. Det er fordi jeg skrev: <? echo striptags($vis_beskeder[tekst]); ?> der skal stå: <? echo stripslashes($vis_beskeder[tekst]); ?> Det var fingrene, der ville andet end hovedet :)
Slettet bruger
01. september 2005 - 17:16
#13
Den skriver bare tekst.!!!
01. september 2005 - 17:20
#14
Hvad gør du? Hvad indtaster du i feltet? Og du må også meget gerne lige paste den del der omhandler insert igen.
Slettet bruger
01. september 2005 - 17:20
#15
<? session_start(); if (session_is_registered("brugernavn") AND ("kodeord")) { include "config.php"; $hent = mysql_query("SELECT * FROM community WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis = mysql_fetch_array($hent); ?> <? if($_POST[action] == "skriv") { if($_POST[tekst] == "") { print "<font color=black>Skriv noget!</font><br><br>"; }else{ include "config.php"; $navn = $_SESSION[brugernavn]; $farve = $_POST[farve]; $tekst = htmlspecialchars($_POST[tekst]); $dato = date('d/m/Y H:i:s'); $ip = $_SERVER[REMOTE_ADDR]; mysql_query("INSERT INTO tagwall (navn, dato, tekst, farve, ip) VALUES ('$navn', '$dato', '$tekst', '$farve', '$ip')"); } } ?> <html> <head> <link rel="stylesheet" HREF="style.css" type="text/css"> </head> <form action="index.php" method="post"> <input type="hidden" name="action" value="skriv"> <? include "config.php"; $admin = mysql_query("SELECT * FROM community WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis_admin = mysql_fetch_array($admin); if($vis_admin[status] == "Ejer") { print "<input type='hidden' name='farve' value='#CKDJ54'>"; ?><input type="text" name="tekst" size="20" style="border: 1px solid #000000"><br> <input type="submit" name="submit" value="Tag it" style="border:1px solid #000000; font-size:12; background-color:#FFFFFF"> <input type="reset" name="reset" value="Forfra" style="border-style: solid; border-width: 1px; font-size:12; background-color:#FFFFFF"> <button class="button" onclick="window.location='index.php'" style="font-size: 12; border: 1px solid #000000; background-color: #FFFFFF"> Opdater </button></form> <br> <? $num = mysql_query("SELECT * FROM tagwall ORDER BY id DESC"); $all_tags = mysql_num_rows($num); echo("Tags ialt <b>".$all_tags."</b>."); ?> <? $query = mysql_query("SELECT * FROM tagwall WHERE navn = '$_SESSION[brugernavn]'") or die(mysql_error()); $you_tags = mysql_num_rows($query); echo("Du har skrevet <b>".$you_tags."</b> tags."); ?> <br><br> <? } } if($_GET[vis] == "alle") { include "config.php"; $hent_beskeder = mysql_query("SELECT * FROM tagwall ORDER BY id DESC") or die(mysql_error()); while($vis_beskeder = mysql_fetch_array($hent_beskeder)) { ?> <hr style="BORDER-RIGHT: #333333 3px dotted; BORDER-TOP: #333333 3px dotted; BORDER-LEFT: #333333 3px dotted; BORDER-BOTTOM: #333333 3px dotted" SIZE="1" color="#D4DFEC"> <b><font color="<? echo $vis_beskeder[farve]; ?>"><? echo $vis_beskeder[navn]; ?></font></b> - D. <? echo $vis_beskeder[dato]; ?><br> <? echo $vis_beskeder[tekst]; ?><br> <? } } ?> </body></html> <? }else{ print "<link rel='stylesheet' HREF='style.css' type='text/css'><font color=red>Du skal være logget ind for at kunne skrive i tagwall'en!</font>"; } ?>
Slettet bruger
01. september 2005 - 17:21
#16
Ups ja jeg indtaster bare <B> og <b>
01. september 2005 - 17:22
#17
Det du pastede der, er jo fuldstændig identisk med det du skrev i dit spørgsmål?! Der er jo ikke tilpasset til mine løsninger?
Slettet bruger
01. september 2005 - 17:26
#18
Så skriver jeg din løsning - samtidig fik jeg lejligheden til at ændre noget andet osv: <? session_start(); if (session_is_registered("brugernavn") AND ("kodeord")) { include "config.php"; $hent = mysql_query("SELECT * FROM community WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis = mysql_fetch_array($hent); ?> <? if($_POST[action] == "skriv") { if($_POST[tekst] == "") { print "<font color=black>Skriv noget!</font><br><br>"; }else{ include "config.php"; if($_SESSION['status'] == "Ejer") { $tekst = mysql_real_escape_string(htmlspecialchars($_POST['tekst'])); $tekst = str_replace("<", "<", $tekst); $tekst = str_replace(">", ">", $tekst); } else { $tekst = mysql_real_escape_string(htmlspecialchars($_POST['tekst'])); } $navn = $_SESSION[brugernavn]; $farve = $_POST[farve]; $tekst = htmlspecialchars($_POST[tekst]); $dato = date('d.m H:i:s'); $ip = $_SERVER[REMOTE_ADDR]; mysql_query("INSERT INTO tagwall (navn, dato, tekst, farve, ip) VALUES ('$navn', '$dato', '$tekst', '$farve', '$ip')"); } } ?> <html> <head> <link rel="stylesheet" HREF="style.css" type="text/css"> </head> <form action="index.php" method="post"> <input type="hidden" name="action" value="skriv"> <? include "config.php"; $admin = mysql_query("SELECT * FROM community WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error()); $vis_admin = mysql_fetch_array($admin); if($vis_admin[status] == "Ejer") { print "<input type='hidden' name='farve' value='#GREEN'>"; ?><input style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 8pt; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #ffffff" name="tekst" value="Din besked" onFocus="if(this.value=='Din besked'){this.value=''}" onBlur="if(this.value==''){this.value='Din besked'}" size="34"> <input type="submit" name="submit" value="Skriv" style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 8pt; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #ffffff"> <button class="button" onclick="window.location='index.php'" style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 8pt; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #ffffff">Opdater</button> <button class="button" onclick="window.location='../login_menu.php'" style="BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; FONT-SIZE: 8pt; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 1px solid; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #ffffff">Funks.</button> <button class="button" onclick="window.location='index.php?vis=alle'" style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 8pt; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #ffffff">Alle tags</button></form> <br> <? $num = mysql_query("SELECT * FROM tagwall ORDER BY id DESC"); $all_tags = mysql_num_rows($num); echo("Tags ialt <b>".$all_tags."</b>."); ?> <? $query = mysql_query("SELECT * FROM tagwall WHERE navn = '$_SESSION[brugernavn]'") or die(mysql_error()); $you_tags = mysql_num_rows($query); echo("Du har skrevet <b>".$you_tags."</b> tags."); ?> <br><br> <? if($_GET[vis] == "" OR $_GET[vis] == "nyeste") { include("config.php"); $hent_beskeder = mysql_query("SELECT * FROM tagwall ORDER BY id DESC LIMIT 20") or die(mysql_error()); while($vis_beskeder = mysql_fetch_array($hent_beskeder)) { ?> <hr style="BORDER-RIGHT: #333333 3px dotted; BORDER-TOP: #333333 3px dotted; BORDER-LEFT: #333333 3px dotted; BORDER-BOTTOM: #333333 3px dotted" SIZE="1" color="#D4DFEC"> <b><font color="<? echo $vis_beskeder[farve]; ?>"><? echo $vis_beskeder[navn]; ?></font></a></b> - D. <? echo $vis_beskeder[dato]; ?><br> <? echo stripslashes($vis_beskeder[tekst]); ?><br> <? } } if($_GET[vis] == "alle") { include "config.php"; $hent_beskeder = mysql_query("SELECT * FROM tagwall ORDER BY id DESC") or die(mysql_error()); while($vis_beskeder = mysql_fetch_array($hent_beskeder)) { ?> <hr style="BORDER-RIGHT: #333333 3px dotted; BORDER-TOP: #333333 3px dotted; BORDER-LEFT: #333333 3px dotted; BORDER-BOTTOM: #333333 3px dotted" SIZE="1" color="#D4DFEC"> <b><font color="<? echo $vis_beskeder[farve]; ?>"><? echo $vis_beskeder[navn]; ?></font></b> - D. <? echo $vis_beskeder[dato]; ?><br> <? echo $vis_beskeder[tekst]; ?><br> </body></html> <? }else{ print "<font color=black>Login*</font>"; } ?>
01. september 2005 - 17:28
#19
Yes. Men 2 ting: 1: Denne linie: $tekst = htmlspecialchars($_POST[tekst]); ... den skal væk! Ellers overrider du jo, hvad du netop har lavet i if-else'n. 2: Du mangler stadig stripslashes() på din udskrift: <? echo $vis_beskeder[tekst]; ?>
01. september 2005 - 17:28
#20
Doh! <? echo stripslashes($vis_beskeder[tekst]); ?>
Slettet bruger
01. september 2005 - 17:29
#21
Nummer to fatter jeg ikke lige..
01. september 2005 - 17:30
#22
Kan du finde linien: <? echo $vis_beskeder[tekst]; ?> ca. i bunden af din kode? Den skal så udskiftes med: <? echo stripslashes($vis_beskeder[tekst]); ?>
Slettet bruger
01. september 2005 - 17:32
#23
Det er den nu - den udskriver stadig <b>..
01. september 2005 - 17:33
#24
Og du er 120% sikker på, at denne: if($_SESSION['status'] == "Ejer") { er korrekt? For det kunne meget vel tyde på, at den ikke kommer ind i den del af if'en. For at teste det, kan du indsætter en echo-linie: if($_SESSION['status'] == "Ejer") { echo "test"; //alt andet som det er nu } Og du har klaret punkt 1 fra kl. 17.28.26 ?
Slettet bruger
01. september 2005 - 17:35
#25
Ja det har jeg - fatter ikke lige din kode, hvad skal den til for.?
01. september 2005 - 17:36
#26
Hvilken del fatter du ikke?
Slettet bruger
01. september 2005 - 17:37
#27
if($_SESSION['status'] == "Ejer") { echo "test"; //alt andet som det er nu } Hvad skal den til for.?
01. september 2005 - 17:40
#28
Den skal vise, om if-sætningen fungerer som den skal. Det jeg mener er, at du blot tilføjer echo-linien så det bliver: if($_SESSION['status'] == "Ejer") { echo "test"; $tekst = mysql_real_escape_string(htmlspecialchars($_POST['tekst'])); $tekst = str_replace("<", "<", $tekst); $tekst = str_replace(">", ">", $tekst); } else { $tekst = mysql_real_escape_string(htmlspecialchars($_POST['tekst'])); }
Slettet bruger
01. september 2005 - 17:43
#29
Den udskriver stadig <b>
01. september 2005 - 17:44
#30
Hvis den ikke skriver "test" på skærmen, så er det: if($_SESSION['status'] == "Ejer") { ... der er noget galt med. Prøv at få den udskrevet et sted, og se om den nu også indeholder "Ejer".
Slettet bruger
01. september 2005 - 17:45
#31
Der er altså noget i din programering der ikke giver mening. - Jeg ved ikke hvad men det virker bare ikke..
01. september 2005 - 17:53
#32
Hvis du ikke vil have hjælp, så kan jeg heller ikke!
Men du kan se det her:
http://www.tele2gaming.dk/slet.php og så prøv <b>noget tekst</b>
Måske jeg kan gå med til, at når man begynder at bruge " og ' kan det faile, men det kan løses. Men før det, så skal vi vist lige have det andet til at virke - hvis du altså vil!?
Slettet bruger
01. september 2005 - 17:56
#33
Jeg vil gerne have hjælp.
01. september 2005 - 17:58
#34
Godt, men så må du jo også fortælle mig det jeg spørger om, ellers har jeg jo ingen chance overhovedet :) Så øverst i filen, EFTER session_start() indsætter du disse 2 linier: echo "Sessionen indeholder: ".$_SESSION['status']; exit; ... og så fortæller du mig, hvad der bliver udskrevet.
Slettet bruger
01. september 2005 - 18:04
#35
Blank side..
01. september 2005 - 18:05
#36
Fint, så er det jo som jeg siger. $_SESSION['status'] indeholder ingenting, og derfor vil du aldrig få mit script til at acceptere html-tags, for det er jo pointen i det hele...
Slettet bruger
01. september 2005 - 18:07
#37
Nå så kan det ikke virke..
01. september 2005 - 18:08
#38
Jo, det kan det sagtens, men hvor havde du tænkt dig, at status kom fra? Hvor derfinerer du hvem der har status som ejer? Det er jo klart, at status = ejer ikke kommer af sig selv...
Slettet bruger
01. september 2005 - 18:10
#39
Kan ikke forklare..
01. september 2005 - 18:22
#40
Aha...
Slettet bruger
03. september 2005 - 00:40
#41
Glem det totalt.. - Tak for hjælpen ellers.
Vi tilbyder markedets bedste kurser inden for webudvikling