Avatar billede Slettet bruger
31. maj 2011 - 23:23 Der er 2 kommentarer og
1 løsning

Problemer med isset og forms

Hej alle, jeg sidder og laver et lille nyhedsscript, hvor jeg checker om der er skrevet noget i 'overskrift' og 'nyhed' før det kan indsættes i min database.

samtidig har forneden lavet en if / else, der skulle fungere sådan, at når man går ind på siden står der intet, men hvis man så poster nyheden uden alle felterne er fyldt, smider den "du skal udfylde alle felter" ud. På nuværende tidspunkt, er det kun hvis man ikke har udfyldt "nyhed" at den gør det. Samtidig bliver "du skal udfylde alle felter" vist bare ved at man går ind på siden.

Kan nogle løse dette problem for mig? jeg har prøvet frem og tilbage i flere timer hehe.

Her er min kode:


<?php include('include/menuheader.php');
    echo '<img src="image/toppic/tplinks.jpg">';
      include('connect.php');
   
   
function tjek() {
   
    return (!empty($_POST['overskrift']) && !empty($_POST['nyhed']));
   
}

if (tjek()) {
   
    $sql="INSERT INTO nyhed (overskrift, nyhed) VALUES ('$_POST[overskrift]','$_POST[nyhed]')";
    $results = mysql_query($sql);
}
   
    mysql_close();
?>

    <div class="boxed">
    <h1 class="nyhedh1"> Skriv nyhed! </h1><hr class="sepline"><br>
    <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" onSubmit='submit.disabled = true;'>
        <p>Skriv en overskrift:</p>
        <input type="text" name="overskrift" style="width: 300px;"><br>
        <p>Skriv nyhed:</p>
        <textarea name="nyhed" style="width: 300px; height: 200px;"></textarea><br>
        <input type="submit" value="Post nyhed" class="input">
    </form>

<?php   
    if(isset($_POST['overskrift']) && ($_POST['nyhed'])) {
    echo "Nyheden er skrevet!"; }
    else {
    echo "du skal udfylde alle felterne!"; }
   
?>
Avatar billede The_Buzz Novice
01. juni 2011 - 00:08 #1
Du har
    if(isset($_POST['overskrift']) && ($_POST['nyhed'])) {
    echo "Nyheden er skrevet!"; }
    else {
    echo "du skal udfylde alle felterne!"; }

Prøv

    if((isset($_POST['overskrift']) && isset($_POST['nyhed'])) and $_POST['overskrift'] != '' and $_POST['nyhed'] != '' ) {
    echo "Nyheden er skrevet!"; }
    else {
    echo "du skal udfylde alle felterne!"; }
Avatar billede Slettet bruger
01. juni 2011 - 16:51 #2
Tak ! det løste mit ene problem, men mht. det andet problem med at lige så snart man går ind på siden, så udskriver den "du skal udfylde alle felterne" er ikke løst.

"du skal udfylde alle felterne" bliver vist også selvom man ikke har trykket på submit endnu, altså når siden indlæses.
Avatar billede The_Buzz Novice
02. juni 2011 - 23:47 #3
<?php 
    if(isset($_POST['overskrift']) && ($_POST['nyhed'])) {
    echo "Nyheden er skrevet!"; }
    elseif (isset($_POST)) {
    echo "du skal udfylde alle felterne!";
    } else {
    echo "dette er nu bare en tom end else sætning";
    }
 
?>
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
Kurser inden for grundlæggende programmering

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