Sono Juventino Skrevet 23. mars 2007 Del Skrevet 23. mars 2007 (endret) Har prøvd meg på å lage et nyhetssystem og det har faktisk funket greit hittil. Formen sender tittel, ingress og nyhet til mysql-databasen og jeg klarer å hente tilbake nyhetene. Problemet mitt kommer av at det postes til databasen uansett om feltene er tomme eller ikke. Trenger litt hjelp til å lage noen alternative veier til skriptet mitt. Nå kan de egentlig bare sende til database eller "die". Her skrives nyheter: http://sono.frac.dk/pub/ (La til printing av nyheter nederst i index.php for å gjøre det lettere) Dette er koden: Koden for at nyhetene skal postes: <?php if (!isset($_POST['submit'])) { $headline = $_POST['headline']; $intro = $_POST['intro']; $news = $_POST['news']; mysql_query("INSERT INTO `xxx` (headline, intro, news) VALUES ('$headline', '$intro', '$news')"); echo "Nyheten ble lagt til!"; } ?> Kode for å vise nyheter: <?php $result = mysql_query("SELECT * FROM xxx"); while ($show = mysql_fetch_array($result)) { echo "Headline: " . $show['headline']; echo "Intro: " . $show['intro']; echo "News: " . $show['news']; } ?> Trenger virkelig noen beskjeder med "du har ikke fylt ut felt "bla bla"-komandoer her. Takker for alle svar! Endret 23. mars 2007 av Sono Lenke til kommentar
Runar0 Skrevet 23. mars 2007 Del Skrevet 23. mars 2007 Du kan prøve med PHP if(empty($headline)) { die("Du må skrive inn ein tittel"); } Lenke til kommentar
trrunde Skrevet 23. mars 2007 Del Skrevet 23. mars 2007 du sjekker om hver enkelt variabel er tom?? hvis den er det skriver du ut meldingen din... dette scriptet ditt er utsatt for mysql injections, bruk mysql_real_escape_string Lenke til kommentar
Sono Juventino Skrevet 23. mars 2007 Forfatter Del Skrevet 23. mars 2007 (endret) Det som virker opplagt for deg, er det ikke nødvendigvis for meg trrunde. Du kan godt si at å løse ligninger er lett bare man kan formelen. Samme er prinsippet med php. Problemet er at jeg ikke kan formelen, og da er ikke nødvendigvis ligninger så lette allikevel? Beklager hvis jeg virker nebbete, frekk, eller lignende, men du forklarer litt "over hodet" på meg her. Det er greit at jeg skal sjekke om variabelen er tom, men jeg vet ikke hvordan jeg gjør det. Tusen takk til Shadows0 for et fint svar! Edit: Sliter fortsatt med noen småting. Det er fortsatt mulig å trykke "oppdater" i nettleseren når man har skrevet èn gang. Hvordan forhindrer jeg dette? Endret 23. mars 2007 av Sono Lenke til kommentar
Runar0 Skrevet 23. mars 2007 Del Skrevet 23. mars 2007 (endret) eventuelt bare gjøre noe slik etter brukere har posta nyheten for å refreshe browseren PHP <?php header('Location: filendin.php'); exit(); ?> Da vil ikkje refresh reposte Endret 23. mars 2007 av Shadows0 Lenke til kommentar
mske Skrevet 23. mars 2007 Del Skrevet 23. mars 2007 Scriptet ditt er åpent for SQL-Injections, og også XSS-angrep med mindre du escaper input og output <?php if (!isset($_POST['submit'])) { $headline = mysql_real_escape_string($_POST['headline']); $intro = mysql_real_escape_string($_POST['intro']); $news = mysql_real_escape_string($_POST['news']); mysql_query("INSERT INTO `xxx` (headline, intro, news) VALUES ('$headline', '$intro', '$news')"); echo "Nyheten ble lagt til!"; } ?> Bruk htmlentities() på output Lenke til kommentar
Sono Juventino Skrevet 23. mars 2007 Forfatter Del Skrevet 23. mars 2007 (endret) EDIT: Fikset det! Endret 24. mars 2007 av Sono Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå