Gå til innhold

Skript poster til mysql uansett hva man gjør.


Anbefalte innlegg

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! :thumbup:

Endret av Sono
Lenke til kommentar
Videoannonse
Annonse

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. :D

 

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 av Sono
Lenke til kommentar

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 av Shadows0
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...