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
Annonceindlæg fra Barco
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..
09. september 2007 - 13:01
#2
saudoo, Det har jeg prøvet, og det hjælper ikke.
09. september 2007 - 13:03
#3
Jeg har også prøvet ../kontakt/godkend.php
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;">
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..
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'] ?>" />
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)..
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 :)
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.
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..
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.
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.. :-)
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.?
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.
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.
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)..
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; } ?>
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.. :-)
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 ;-)
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..
09. september 2007 - 16:51
#21
Okay, så langt så godt ;-) Men jeg kan bare ikke få teksten i besked boksen til at blive?
09. september 2007 - 16:58
#22
Jeg lavede <textarea> om til <input type="text"
09. september 2007 - 16:59
#23
Angående 09/09-2007 15:56:14, så er det ikke samme kode, alt er lavet om ;-)
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.. :-)
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; } ?>
09. september 2007 - 17:13
#27
Ja jeg har det hele til at virke, men det virker ikke på en <textarea>
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>
09. september 2007 - 17:20
#29
thesurfer, Du er en guttermand!! Vil du ikke være så venlig at smide et svar til mig.
09. september 2007 - 17:22
#30
Og for hjælp til at opfylde 09/09-2007 15:40:29 :-)
09. september 2007 - 17:29
#31
Jeg er en venlig fyr, så her er et svar fra mig.. :-)
09. september 2007 - 17:34
#32
Tak for hjælpen! ;-)
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)">
09. september 2007 - 17:38
#34
Takker for points :-)
Vi tilbyder markedets bedste kurser inden for webudvikling