05. maj 2004 - 08:58
Der er
4 kommentarer og 1 løsning
Server side validering
Man kan sagtens lave noget javascript validering, men da det er er client side, kan brugeren omgå det ved at slå javascript fra :)= Så derfor vil noget server side validering være at fortrække. Jeg har noget lign med fælgende kode: <?php $time = date("d/m - Y"); if($_POST['nick'] == "Nick") { $nick = "Ukendt"; } else { $nick = &$_POST['nick']; } if($_POST['indhold'] == "Din besked") { $tjek = "0"; } else { $tjek = 1; } if($_POST['email'] == "Email") { $email = ""; } else { $email = &$_POST['email']; } $indhold = addslashes($_POST['indhold']); include("config.php"); if($tjek == 1){ mysql_query("INSERT INTO tagwall (nick, indhold, dato, email) values ('$nick', '$indhold', '$time', '$email')"); } ?> Det jeg godt kunne tænke mig var noget hvor den ikke tog < og / med , så jeg tænkte på noget med if($_POST['indhold'] == "Din besked") { $tjek = "0"; } else if $_POST['indhold'] = < & /) { $tjek = "0"; } else { $tjek = 1; } Jeg ved godt det er forkert, men det var lige hvad jeg kunne se mig ud af :)
Annonceindlæg fra Computerworld it-jobbank
if($_POST['indhold'] == "Din besked") { $tjek = "0"; } else if (strpos($_POST['indhold'], "<")) { $tjek = "0"; } else if (strpos($_POST['indhold'], "/")) { $tjek = 0; } else { $tjek = 1; }
Det er den ikke helt med på, min kode ser sådan her ud nu: <?php $time = date("d/m - Y"); if($_POST['nick'] == "Nick") { $nick = "Ukendt"; } else { $nick = &$_POST['nick']; } if($_POST['indhold'] == "Din besked") { $tjek = "0"; } else if (strpos($_POST['indhold'], "<")) { $tjek = "0"; } else if (strpos($_POST['indhold'], "/")) { $tjek = 0; } else { $tjek = 1; } if($_POST['email'] == "Email") { $email = ""; } else { $email = &$_POST['email']; } $indhold = addslashes($_POST['indhold']); include("config.php"); if($tjek == 1){ mysql_query("INSERT INTO tagwall (nick, indhold, dato, email) values ('$nick', '$indhold', '$time', '$email')"); } ?> Men den indsætter stadig < og / :S
Funktionen med når der står Din besked i indholds feltet virker dog stadig fint
<?php $indhold = addslashes($_POST['indhold']); $time = date("d/m - Y"); if($_POST['nick'] == "Nick") { $nick = "Ukendt"; } else { $nick = $_POST['nick']; } if($_POST['indhold'] == "Din besked") { $tjek = "0"; } else if (stristr($indhold,"/") || stristr($indhold,"<")) { $tjek = "0"; } else { $tjek = 1; } if($_POST['email'] == "Email") { $email = ""; } else { $email = $_POST['email']; } include("config.php"); if($tjek == 1){ mysql_query("INSERT INTO tagwall (nick, indhold, dato, email) values ('$nick', '$indhold', '$time', '$email')"); } ?> Var tricket bag det :) Men du var bestemt inde på noget af det rigtige :)
Nå ja tak til hyper, ikke ham der fra eye, men ham fra cs-hosting.dk :D
Vi tilbyder markedets bedste kurser inden for webudvikling