Avatar billede Kim_m Nybegynder
04. maj 2015 - 21:15 Der er 8 kommentarer og
1 løsning

form mail går ikke til fejl side

Hej.

Når der er tomme felter i min formmail skulle siden hoppe til fejl-km.php, men det gør den ikke, den går til "mail er sendt" siden.
De indtastede data bliver sendt fra formmail til en ny side med post.
Session_start();  er sat i toppen af siden

Håber nogen kan hjælpe.

Kim.
           
           
    $_SESSION['errorMessage'] = '';
           
    if(empty($_POST['navn']))
    {
    $_SESSION['errorMessage .'] = '<p style="color: #FF0000">Skriv venligst dit navn!</p>';
    }
    if(empty($_POST['mail']))
    {
    $_SESSION['errorMessage .'] = '<p style="color: #FF0000">Skriv venligst din mail adresse!</p>';
        }
    if(empty($_POST['besked']))
    {
    $_SESSION['errorMessage .'] = '<p style="color: #FF0000">Skriv venligst en besked!</p>';
    }
                                   
            if(!empty($_SESSION['errorMessage']))                {
            header( "Location: fejl-km.php");
            }
Avatar billede olsensweb.dk Ekspert
04. maj 2015 - 21:27 #1
hvorfor har du punktum inde i firkant parantesen ??
$_SESSION['errorMessage .'] =

her tester du på en helt anden variabel
if(!empty($_SESSION['errorMessage']))

de 2 session variabler er forskællige
Avatar billede Kim_m Nybegynder
04. maj 2015 - 22:09 #2
Det er jo for at der bliver føjet mere til variablen.
Men kan godt se at der er noget galt.
Skal punktum så være lige til højre for firkantet parentes?
Avatar billede olsensweb.dk Ekspert
05. maj 2015 - 07:13 #3
>Skal punktum så være lige til højre for firkantet parentes?
ja

hvis du vil concatenerer noget indhold til variablens nuværende indhold skal punktummet på den anden side

denne
$_SESSION['errorMessage .'] = '<

skal se sådan ud
$_SESSION['errorMessage'] .= '<

hvis du vil overskrive indholdet af variablen, skal det se sådan ud
$_SESSION['errorMessage'] = '<
Avatar billede Slater Ekspert
05. maj 2015 - 08:14 #4
Faktisk er .= opfattet som ét tegn af PHP, hvilket du kan se ved, at du ikke engang må skrive . = med mellemrum. Ligesom -> skal de *altid* stå lige efter hinanden.
Avatar billede Kim_m Nybegynder
05. maj 2015 - 11:14 #5
Nu ser det ud til at virke.

Ja jeg måtte skrive:
$_SESSION['errorMessage'].='<p  for at det virkede.

Jeg må køre nu men tester det lige helt igennem senere.

Tusind tak for hjælp til nu.

Kim.
Avatar billede Kim_m Nybegynder
05. maj 2015 - 15:16 #6
Det virker bare som det skal.

Mange tak for hjælpen.

Vil I sende et svar.

Kim
Avatar billede showsource Seniormester
05. maj 2015 - 17:49 #7
Du bør altid bruge en fuld url til en "Location"
http://dk.php.net/manual/en/function.header.php
( se nederst på siden )

trim() fjerner tomt indhold, f.ex. space og enter

Og så kan du bruge et array i stedet:


    if(trim($_POST['navn']) == '')
    {
    $_SESSION['errorMessage'][] = 'Skriv venligst dit navn!';
    }
    if(trim($_POST['mail']) == '')
    {
    $_SESSION['errorMessage'][] = 'Skriv venligst din mail adresse!';
        }
    if(trim($_POST['besked']) == '')
    {
    $_SESSION['errorMessage'][] = 'Skriv venligst en besked!';
    }
                                 
            if(isset($_SESSION['errorMessage']))                {
            header("Location:http//'.$_SERVER['HTTP_HOST'].'/fejl-km.php");
exit;
            }

// fejl-km.php

<?php
session_start();
if(isset($_SESSION['errorMessage']) && is_array($_SESSION['errorMessage'])) {

    for($i = 0; $i < count($_SESSION['errorMessage']); $i++) {
    echo'<p style="color: #FF0000">'.$_SESSION['errorMessage'][$i].'</p>\r\n';
    }

}
( utestet )
Avatar billede olsensweb.dk Ekspert
06. maj 2015 - 07:23 #8
>Vil I sende et svar.
får du her.

men showsource løsning i #7 er måske mere interessant, og falder mere i min smag, så kig på den og afprøv den
Avatar billede Kim_m Nybegynder
08. maj 2015 - 12:27 #9
Hej ronols.

Har rettet til fuld url, og kikker på det andet.


Prøver nu at se om jeg selv kan finde ud af at få det indtastet til at blive stående i felter ved fejl, inden jeg ligger et spørgsmål :-)

Kim
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

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