simplus >> Det kunne tænkes, at uzziuz har erfaring fra mindre sloppy sprog end PHP - og derfor har været nødt til at tillægge sig god kodeskik og adskiller strenge og variabler ... og så hedder det i øvrigt 'irrelevant' ;o)
Derudover er der ingen, der siger, man absolut _skal_ bruge 'or die'. I mange tilfælde kan det være katastrofalt at bruge den.
Derimod er det en rigtig god ting at escape alle navne i SQL-kald. Ikke fordi, det er nødvendigt - men fordi, det _kan_ være nødvendigt - og så glemmer man det aldrig ;o)
mysql_query("INSERT INTO `DatabaseNavn` (`ip`) VALUES ('".$ip."')") or die(mysql_error());
Ja det har du ret i, dog kan jeg ikke komme i tanke om nogen mulige situationer hvor or die() kan volde problemer? - Det kan måske bare være mig der ikke har været ude i alle hjørner af MySQL, men har aldrig oplevet sådan noget før. Du tænker måske på at det kan give problemer med hensyn til headers? Så bliver det udskrevet tekst før, eller hvad mente du?
Ja escape af navne er altid en god ting, der opstår især mange problemer ved ordet 'by' som mange ikke er et reseveret ord.
Og ja, selvfølgelig hedder det irrelevant, det var bare mine store fingre der liiiige skulle trykke på tasten ved siden af.. :-)
Tak for alle svarene - det er dejligt at folk gider svare.
nu er jeg så rendt ind i et nyt problem.
Jeg har hentet ip-adresse ind i databasen, men jeg vil gerne have den sådan, at når man har skrevet i gæstebog, så kan man ikke trykke på opdater og skrive igen og igen og igen.
uzziuz, det hele er skam rigtig nok, men hvis det skal være simpelt kan det ordnes ved en helt almindelig header..
header("Location: opret_besked.php");
fx..
budolfsen -> du skal så lige være opmærksom på at der ikke må udskrives noget som helst tekst før en header.. det kan du bare fixe ved at omstrukturere din kode, samt flytte din php øverst i koden - altså før alt html
Det vil jeg mene er den bedste og simpleste løsning.
Jeg har lige lavet et lille simpelt eksempel som du kan udvide. Det burde være lige til. Det mit eksempel gør er at erstatte ordet viagra med [censur] .. Altså søger den bare efter ordet viagra og erstatter med [censur] lige meget hvor i teksten det står. Det eneste du skal ændre i mit eksempel er variablen der indeholder beskeden. Jeg har lavet variablen $var som indeholder en tekst som skal forestille selve indlægget i gæstebogen. Den erstatter du bare med din $_POST værdi fra din formular.
<?php $var = "dassviagraasd"; //her erstatter du med $_POST['navn'];
Man kan så i mit eksempel snyde koden og skrive VIagrA f.eks. så vil den ikke skrive [censur]
det kan du ordne ved at gøre alt indkommende tekst til små bogstaver ved hjælp af funktionen strtolower();
brug denne istedet:
<?php $var = "dassviagraasd"; //her erstatter du med $_POST['navn']; $var = strtolowser($var);
$var = ereg_replace("viagra+", "[censur]", $var);
echo $var; ?>
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.