Avatar billede tweak Nybegynder
09. september 2007 - 11:59 Der er 33 kommentarer og
1 løsning

Action og fejl

<form method="post" action="window.open('/kontakt/godkend.php','toolbar=no,width=670,height=255,resizable=yes,scrollbars=yes,status=yes'); return false;">

Jeg får fejlen:

404 Not Found error
Avatar billede saudoo Nybegynder
09. september 2007 - 12:54 #1
Det er fordi du angiver forkert sti. Prøv eventuelt at fjerne den første skråstreg i /kontakt/godkend.php..
Avatar billede tweak Nybegynder
09. september 2007 - 13:01 #2
saudoo, Det har jeg prøvet, og det hjælper ikke.
Avatar billede tweak Nybegynder
09. september 2007 - 13:03 #3
Jeg har også prøvet ../kontakt/godkend.php
Avatar billede tweak Nybegynder
09. september 2007 - 13:51 #4
Hvis det er så er koden at se her: http://www.hpregnskab.dk/kontakt/kontakt.php

Jeg har pillet koden ud.
<form method="post" action="window.open('/kontakt/godkend.php','toolbar=no,width=670,height=255,resizable=yes,scrollbars=yes,status=yes'); return false;">
Avatar billede thesurfer Nybegynder
09. september 2007 - 14:33 #5
Jeg tror at I griber det forkert an..

Jeg synes at have kigget på noget ligende før, hvor man brugte den sædvanelige action, men brugte target for at åbne et nyt vindue, f.eks. i onsubmit..

Jeg ser lige om jeg kan lave et eksempel lidt senere på dagen..
Avatar billede thesurfer Nybegynder
09. september 2007 - 14:37 #6
Men.. hvad er meningen med at åbne et nyt vindue..?
Hvis det er for at bevare de indtastede data, hvis felterne ikke skulle kunne valideres, kan man jo bare bruge:

<input id="t1" type="text" name="name"  value="<? echo $_POST['feltnavn'] ?>" />
Avatar billede thesurfer Nybegynder
09. september 2007 - 14:40 #7
PS: Linksne "Ydelser" og "Links" for siden til at hoppe lidt ned.. Muligvis pga indholdet i venstre side, af de sider (jeg har ikke kigget koden igennem)..
Avatar billede tweak Nybegynder
09. september 2007 - 15:19 #8
thesurfer, Hvis du ser efter, så er det fordi jeg er ved at ryde op i koden og "re-designe" siden. Årsagen til at jeg vil have den til at åbne i et nyt vindue er at ellers går det indtastede tabt ved f.eks forkert v kode :)
Avatar billede tweak Nybegynder
09. september 2007 - 15:20 #9
Det kan jo så gøres med action="/kontakt/godkend.php" target="_blank" men jeg vil ikke ha den op i fuld skærm.
Avatar billede thesurfer Nybegynder
09. september 2007 - 15:29 #10
Angående "går det indtastede tabt ved f.eks forkert v kode":

Læs lige: 09/09-2007 14:37:51

Det var netop det jeg forklarede der.. men åbenbart ikke godt nok.. :-)

Når du får det på plads, kan du glemme alt om problemerne med at åbne et nyt vindue.. som også er noget irriterende..

En simpel fejlmeddelelse på "samme side" (efter post), og genvisning af værdierne, er langt bedre..
Avatar billede tweak Nybegynder
09. september 2007 - 15:32 #11
Helt enig, men hvordan :-) I stedet for at stoppe koden i en ny .php så har jeg haft den placeret i en div, men siden reloader jo.
Avatar billede thesurfer Nybegynder
09. september 2007 - 15:35 #12
Siden vil selvfølgelig loade.. det er jo netop meningen med at submitte en form.. :-)

- Alle værdierne fra formen sendes til serveren.
- Serveren kan fange værdierne
-- Hvis man har brugt method="post" (sendes via form), fanges de med $_POST['feltnavn']
-- Hvis man har brugt method="get" (sendes via urlen/adressen), fanges de med $_GET['feltnavn']

Det er elementær PHP form-behandling.. :-)
Avatar billede tweak Nybegynder
09. september 2007 - 15:38 #13
Jo, men har man så sidde og brugt 5 timer :-) på at skrive en besked er det jo sur r** at skal til at skrive den igen.?
Avatar billede thesurfer Nybegynder
09. september 2007 - 15:40 #14
Jeg vil anbefale at du gør følgende:

* Brugervenlighed:
Når man klikker "Send mail" afvikles et script (JavaScript) via onsubmit="return valider(this)", som med det samme kan fortælle brugeren, at alle felter skal udfyldes.
JavaScript kan dog IKKE aflæse CAPTCHA-billedet (billedet med koden).
JavaScript bruges for at forhindre at man skal bruge tid på at sendes dataene over, for derefter at få at vide, at man skal udfylde alle felter..

Det kalder man "brugervenlighed".

* Funktionalitet -- VIGTIG!:
Selvom felterne blev valideret på klientsiden med JavaScript, skal ud (af sikkerhedsmæssige årsager) ALTID kontrollere dem, på serversiden.
Her checker du igen om felterne er udfyldt, og her checker du også om koden matcher billede-koden.
Avatar billede tweak Nybegynder
09. september 2007 - 15:43 #15
Det er ALT for indviklet for min lille hjerne :-)

Jeg kan godt se hvad du vil, men evner ikke at kode sådan noget.
Avatar billede thesurfer Nybegynder
09. september 2007 - 15:43 #16
tweak> Der er et eller andet her, som du overhovedet ikke har forstået.. :-)

Prøv det her:

Opret filen "testside.php" med følgende indhold:

<form name="frmTest" action="testside.php" method="post">
Dit navn er: <input type="text" name="navnet">
<br>
<input type="submit" name="submitnavn" value="Send navnet">
</form>

<?php
$navnet = $_POST['navnet'];
echo "<hr>Du skrev: " . $navnet;
?>

Nu er jeg ikke PHP programmør, så du må lige rette eventuelle fejl i mine eksempler.. :-)

Husk at indtaste noget, selv den siger "Du skrev: " (uden navn)..
Avatar billede thesurfer Nybegynder
09. september 2007 - 15:44 #17
Jeg mener at man i PHP bruger isset til at checke, om noget har en værdi..

Eksempel:

<form name="frmTest" action="testside.php" method="post">
Dit navn er: <input type="text" name="navnet">
<br>
<input type="submit" name="submitnavn" value="Send navnet">
</form>

<?php
if (isset($_POST['navnet']))
{
$navnet = $_POST['navnet'];
echo "<hr>Du skrev: " . $navnet;
}
?>
Avatar billede thesurfer Nybegynder
09. september 2007 - 15:48 #18
Jeg tilføjer nu dette

value="<?php echo $_POST['navnet'] ?>

til input-linien, som vil vise navnet der blev indtastet, direkte i textbox'en

Eksempel:


<form name="frmTest" action="testside.php" method="post">
Dit navn er: <input type="text" name="navnet" value="<?php echo $_POST['navnet'] ?>">
<br>
<input type="submit" name="submitnavn" value="Send navnet">
</form>

<?php
if (isset($_POST['navnet']))
{
$navnet = $_POST['navnet'];
echo "<hr>Du skrev: " . $navnet;
}
?>


Igen:
Nu er jeg ikke PHP programmør, så du må lige rette eventuelle fejl i mine eksempler.. :-)
Avatar billede tweak Nybegynder
09. september 2007 - 15:49 #19
thesurfer, jeg vender stærkt tilbage, har lige en lille en på 5 uger som skal ha noget opmærksomhed ;-)
Avatar billede thesurfer Nybegynder
09. september 2007 - 15:56 #20
Angående: Linksne "Ydelser" og "Links" (09/09-2007 14:40:44)

Det er fordi din tabel ikke har nogen border, på de 2 sider.. det har tabellen på de andre sider..
Avatar billede tweak Nybegynder
09. september 2007 - 16:51 #21
Okay, så langt så godt ;-) Men jeg kan bare ikke få teksten i besked boksen til at blive?
Avatar billede tweak Nybegynder
09. september 2007 - 16:58 #22
Jeg lavede <textarea> om til <input type="text"
Avatar billede tweak Nybegynder
09. september 2007 - 16:59 #23
Angående 09/09-2007 15:56:14, så er det ikke samme kode, alt er lavet om ;-)
Avatar billede thesurfer Nybegynder
09. september 2007 - 17:01 #24
Huh? :-)

Skriv lige hele formen ind her.. så har jeg en bedre chance for at følge med i det du laver.. :-)
Avatar billede tweak Nybegynder
09. september 2007 - 17:03 #25
Prøv at se på http://www.hpregnskab.dk/kontakt/kontakt.php :-) Jeg tror nok det er lavet rigtigt
Avatar billede thesurfer Nybegynder
09. september 2007 - 17:09 #26
Normalt bruger man textarea, hvis man skal kunne indtaste flere linier..

Har du prøvet følgende eksempel=:

<form name="frmTest" action="testside.php" method="post">
Dit navn er: <input type="text" name="navnet" value="<?php echo $_POST['navnet'] ?>">
<br>
<input type="submit" name="submitnavn" value="Send navnet">
</form>

<?php
if (isset($_POST['navnet']))
{
$navnet = $_POST['navnet'];
echo "<hr>Du skrev: " . $navnet;
}
?>
Avatar billede tweak Nybegynder
09. september 2007 - 17:13 #27
Ja jeg har det hele til at virke, men det virker ikke på en <textarea>
Avatar billede thesurfer Nybegynder
09. september 2007 - 17:16 #28
Det er fordi en textarea ikke har en value-attribut.. :-)

Der gør man sådan her:

<textarea id="t4" name="message" rows="10" cols="49"><?php echo $_POST['message']; ?></textarea>
Avatar billede tweak Nybegynder
09. september 2007 - 17:20 #29
thesurfer, Du er en guttermand!! Vil du ikke være så venlig at smide et svar til mig.
Avatar billede tweak Nybegynder
09. september 2007 - 17:22 #30
Og for hjælp til at opfylde 09/09-2007 15:40:29 :-)
Avatar billede thesurfer Nybegynder
09. september 2007 - 17:29 #31
Jeg er en venlig fyr, så her er et svar fra mig.. :-)
Avatar billede tweak Nybegynder
09. september 2007 - 17:34 #32
Tak for hjælpen! ;-)
Avatar billede thesurfer Nybegynder
09. september 2007 - 17:38 #33
Og her er brugervenligheden-delen:

<script type="text/JavaScript">
function valider(f)
{
    el = f.elements;
    for(i = 0, len = el.length; i < len; i++)
    {
        if (el[i].type == "textbox" || el[i].type == "textarea")
        {
            if (el[i].value == "")
            {
                alert("Udfyld venligst alle felterne.");
                return false;
            }
        }
    }
    if (f.auth.value == "")
    {
        alert("Du mangler at indtaste sikkerhedskode");
        return false;
    }
    return true;
}
</script>

Den tilføjer du enten direkte ind på siden, f.eks. lige før </head>

Og så skal din form bare se sådan ud:

<form method="post" action="/kontakt/kontakt.php" onsubmit="return valider(this)">
Avatar billede thesurfer Nybegynder
09. september 2007 - 17:38 #34
Takker for points :-)
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