Avatar billede krydset Nybegynder
13. oktober 2003 - 13:33 Der er 13 kommentarer og
1 løsning

Jeg er ved at være træt af php

Jeg sidder nu for 20. gang med en lille script spm bare skal indsætte noget text i en db og det sætter kun tomme felter ind :-(

Hvad pokker gør jeg forkert, jeg er godt klar over det er fordi den ikke for overført noget fra formen, men har jeg stillet det forkert op eller hva??

<?PHP
function insert_nyhed() {
    include("../dbconnect.php");
    $nyhed = $_POST['send_nyhed'];
   
    mysql_query("INSERT INTO news (nyhed) VALUES('$nyhed')") or die(mysql_error());
   
$str = <<<FORMEND
<form action='admin.php' id='insert'>
<fieldset>
    <legend>Indsæt News</legend>
    <div>
    <table>
    <tr>
        <td><textarea cols='30' rows='10' name='send_nyhed'></textarea></td><p>
        <td><input type='submit' name='send' id='submit' value='send nyhedsbrev'></td>
    </tr>
    </table>
    </div>
</fieldset>
</form>
FORMEND;
echo $str;


}
if($_GET['function'] == "insert_nyhed") {
    insert_nyhed();
}

?>

Mvh Thomas Larsen
Avatar billede swaq Nybegynder
13. oktober 2003 - 13:38 #1
prøv med:
if(isset($send_nyhed))
  $nyhed = $send_nyhed;

Kan også være du har brug for:
global $send_nyhed; //foroven i din php-fil
Avatar billede detox Nybegynder
13. oktober 2003 - 13:41 #2
Måske mangler du bare denne:

<form action='admin.php?function=insert_nyhed' id='insert'>
Avatar billede krydset Nybegynder
13. oktober 2003 - 13:46 #3
det var rigtigt den manglede jeg men det er stadig tomme felter der kommer ind
Avatar billede olebole Juniormester
13. oktober 2003 - 13:55 #4
<ole>

Mon ikke din felt type i databasen er forkert? Hvad type er feltet?

/mvh
</bole>
Avatar billede phliplip Nybegynder
13. oktober 2003 - 13:55 #5
Mangler du ikke en method= i din form !?

method="POST"
Avatar billede phliplip Nybegynder
13. oktober 2003 - 13:55 #6
Det var se'fø'li' mit svar ;)
Avatar billede detox Nybegynder
13. oktober 2003 - 13:55 #7
Du mangler osse en 'method':

<form action='admin.php?function=insert_nyhed' id='insert' method='post'>
Avatar billede olebole Juniormester
13. oktober 2003 - 13:57 #8
Oooops ... nej, det er ikke det  :)

En form sender pr. default 'GET'. Der skal stå:
  <form action='admin.php?function=insert_nyhed' id='insert' method='POST'>
Avatar billede krydset Nybegynder
13. oktober 2003 - 13:58 #9
Takker philip

Det var der fejlen var, man bliver mere og mere blind af at kigge på sådan en fejl
Avatar billede olebole Juniormester
13. oktober 2003 - 13:58 #10
Hehe .... enigheden truer fælt  :D
Avatar billede detox Nybegynder
13. oktober 2003 - 14:02 #11
Synes nu osse din opstilling kunne være bedre. Fx i den her stil:

<?PHP
function insert_nyhed() {
    include("../dbconnect.php");
    $nyhed = $_POST['send_nyhed'];
    mysql_query("INSERT INTO news (nyhed) VALUES('$nyhed')") or die(mysql_error());
}

if(isset($_GET['function']) && $_GET['function'] == "insert_nyhed") {
    insert_nyhed();
}else{
$str = <<<FORMEND
<form action='admin.php?function=insert_nyhed' id='insert' method='post'>
<fieldset>
    <legend>Indsæt News</legend>
    <div>
    <table>
    <tr>
        <td><textarea cols='30' rows='10' name='send_nyhed'></textarea></td><p>
        <td><input type='submit' name='send' id='submit' value='send nyhedsbrev'></td>
    </tr>
    </table>
    </div>
</fieldset>
</form>
FORMEND;
echo $str;
}
?>
Avatar billede olebole Juniormester
13. oktober 2003 - 14:09 #12
detox >> Ehhhhh .... og så skal man altså sidde og glo på en blank side, synes du? Er det ikke lidt uprofessionelt? Så lad os da hellere lave en egentlig forbedring  :)

<?PHP
function insert_nyhed() {
    include("../dbconnect.php");
    $nyhed = $_POST['send_nyhed'];
    mysql_query("INSERT INTO news (nyhed) VALUES('$nyhed')") or die(mysql_error());
}

if(isset($_GET['function']) && $_GET['function'] == "insert_nyhed") {
    insert_nyhed();
    Header( "Location: ".$_SERVER["PHP_SELF"]."?inserted=true" );
}
$str = <<<FORMEND
<form action='admin.php?function=insert_nyhed' id='insert' method='post'>
<fieldset>
    <legend>Indsæt News</legend>
    <div>
    <table>
    <tr>
        <td><textarea cols='30' rows='10' name='send_nyhed'></textarea></td><p>
        <td><input type='submit' name='send' id='submit' value='send nyhedsbrev'></td>
    </tr>
    </table>
    </div>
</fieldset>
</form>
FORMEND;
echo $str;
?>

Så indsætter du heller ikke to gange, hvis du reloader siden (F5)
/mvh
Avatar billede detox Nybegynder
13. oktober 2003 - 14:15 #13
olebole -> Jo, nu du siger det. Det er selvfølgelig lidt kedeligt med en blank side ;-)
Avatar billede olebole Juniormester
13. oktober 2003 - 14:17 #14
Tænkte nok, vi var enige  ;o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester