Avatar billede ballegaarden Nybegynder
29. januar 2010 - 16:41 Der er 8 kommentarer og
1 løsning

PHP formular virker ikke med Firefox

Er der en der kan hjælpe mig med min php formular eller måske er det siden der bruger php formularen, hvor der skal rettes noget. Når en bruger, der bruger Firefox indtaster en ordre på min side, bliver den ikke sendt til mig. Mærkeligt for kontaktformularen jeg også har, virker fint i Firefox.
Avatar billede keysersoze Ekspert
29. januar 2010 - 16:52 #1
PHP er serverside og det fungerer uafhængig af klienten - kun klientsprog, som fx HTML/CSS/Javascript, kan påvirke resultatet. Så problemet må ligge et andet sted end i din PHP.
Avatar billede ballegaarden Nybegynder
29. januar 2010 - 17:57 #2
Jeg har lige prøvet at kontakte min udbyder og de siger at det må være noget galt hos mig, da det kun er firefox der ikke kan sende.
Jeg har nemlig fået en mail fra dem at der var optimeret fra php 5,2 til 5,3 - men det siger mig desværre ikke noget.
  Men da min kontakt formular virker, kan jeg ikke forstå det, for der står det samme øverst i dem begge.
Avatar billede keysersoze Ekspert
29. januar 2010 - 20:11 #3
Det er jo slet ikke sikkert at det er din PHP-kode fejlen ligger i - som nævnt er PHP browseruafhængigt ligesom fx ASP er det da det begge er sprog til serveren.

Skal du have nogen som helst chance for at få hjælp bliver du nødt til at komme med noget kode og evt et link. Prøv evt inden at debug dig igennem din PHP ved fx at udskrive variabler og se hvor langt koden kommer igennem.
Avatar billede ballegaarden Nybegynder
29. januar 2010 - 22:20 #4
Jeg må ærlig tilstå at jeg ved ikke hvad debug er for noget, jeg prøvede lige at google det (UHA) - vi starter lige med at du får et link til siden:
http://www.ballegaarden.com/kurv.html

Jeg forstår ikke at det ikke skulle være noget med php filen, for hvad betyder så den mail jeg fik fra min udbyder (for det virker ikke i firefox men i de andre):

Dit webhotel hos One.com vil blive opgraderet 2010-01-11 fra PHP 5.2
til PHP 5.3. PHP 5.3 er den seneste og mest stabile version. I denne
version er ydeevnen også blevet forbedret.
Hvis du ser en del PHP-meddelelser der starter med "Notice" eller
"Warning", selvom din side fungerer fint, så kan du løse dette problem
ved at slå PHP error messages fra i dit kontrolpanel under Avanceret.
Fejlmeddelserne betyder at dit script virker, men at det ikke er
optimeret til PHP 5.3.
Avatar billede keysersoze Ekspert
29. januar 2010 - 23:35 #5
Når jeg klikker på send ender jeg på en php-side med en masse fejl. Og som sagt - PHP er browseruafhængigt, så det lyder som om du gør noget galt i klient-delen eller forventer et resultat fra klienten i din PHP-kode der varierer fra browser til browser og det er selvfølgelig også uheldigt.
Avatar billede ballegaarden Nybegynder
30. januar 2010 - 12:11 #6
Sikke en smørre den udgiver kan jeg se nu, det har den så ikke gjort før. Jeg ændrede i mine indstillinger i går hos min udbyder, så den stod i: PHP error messages.

Nu har jeg fjernet meddelelserne og de går stadig fint igennem - dine 3 gik også igennem, der gør de selv om man får den lange smørre.
Bare ikke med Firefox!

Har du forstand på den der php formular og kan guide mig lidt igennem, hvor evt. fejlen ligger, for det er en jeg en gang har fået hjælp til her.:

<?php
$hjemmeside = "www.ballegaarden.com";
$mail = "mail@ballegaarden.com";
$afsendermail = "kanikke@besvares.invalid";
$viderestil = "http://ballegaarden.com/svar-besked.html";

/* Her hentes oplysningerne fra de udfyldte felter */
$tlf = $_REQUEST['tlf'] ;
$email = $_REQUEST['email'] ;
$epost = $_REQUEST['epost'] ;
$besked = $_REQUEST['besked'];
$navn = $_REQUEST['navn'];
$adresse = $_REQUEST['adresse'];
$by = $_REQUEST['by'];
$spamfaelde = $_REQUEST['spamfaelde'];
$kopi = $_REQUEST['kopi'];
$emne = $_REQUEST['emne'];

$aktivitets_tappe = $_REQUEST['aktivitets_tappe'];
$Antal4 = $_REQUEST['Antal4'];
$Sum4 = $_REQUEST['Sum4'];

$guf_taske = $_REQUEST['guf_taske'];
$Antal5 = $_REQUEST['Antal5'];
$Sum5 = $_REQUEST['Sum5'];

$bolde = $_REQUEST['bolde'];
$Antal6 = $_REQUEST['Antal6'];
$Sum6 = $_REQUEST['Sum6'];

$underlag1 = $_REQUEST['underlag1'];
$Antal7 = $_REQUEST['Antal7'];
$Sum7 = $_REQUEST['Sum7'];

$underlag2 = $_REQUEST['underlag2'];
$Antal8 = $_REQUEST['Antal8'];
$Sum8 = $_REQUEST['Sum8'];

$underlag3 = $_REQUEST['underlag3'];
$Antal9 = $_REQUEST['Antal9'];
$Sum9 = $_REQUEST['Sum9'];

$varmepude_u = $_REQUEST['varmepude_u'];
$Antal10 = $_REQUEST['Antal10'];
$Sum10 = $_REQUEST['Sum10'];

$varmepude_m = $_REQUEST['varmepude_m'];
$Antal11 = $_REQUEST['Antal11'];
$Sum11 = $_REQUEST['Sum11'];

$daekken = $_REQUEST['daekken'];
$Antal12 = $_REQUEST['Antal12'];
$Sum12 = $_REQUEST['Sum12'];

$pude = $_REQUEST['pude'];
$Antal13 = $_REQUEST['Antal13'];
$Sum13 = $_REQUEST['Sum13'];

$hundeskal_lille = $_REQUEST['hundeskal_lille'];
$Antal14 = $_REQUEST['Antal14'];
$Sum14 = $_REQUEST['Sum14'];

$hundeskal_stor = $_REQUEST['hundeskal_stor'];
$Antal15 = $_REQUEST['Antal15'];
$Sum15 = $_REQUEST['Sum15'];

$lightcap300 = $_REQUEST['lightcap300'];
$smoke300 = $_REQUEST['smoke300'];
$rod300 = $_REQUEST['rod300'];
$Antal1 = $_REQUEST['Antal1'];
$Sum1 = $_REQUEST['Sum1'];

$lightcap200 = $_REQUEST['lightcap200'];
$smoke200 = $_REQUEST['smoke200'];
$klar200 = $_REQUEST['klar200'];
$Antal2 = $_REQUEST['Antal2'];
$Sum2 = $_REQUEST['Sum2'];

$lightship = $_REQUEST['lightship'];
$ls_bla = $_REQUEST['ls_bla'];
$ls_rod = $_REQUEST['ls_rod'];
$Antal3 = $_REQUEST['Antal3'];
$Sum3 = $_REQUEST['Sum3'];

$ialt0 = $_REQUEST['ialt0'];


/* Her tjekkes, om det skjulte spamfælde-felt er udfyldt */
if ($email > '') {
  echo "Du er havnet i formularens spamfælde. Det burde ikke være muligt at havne her ved et uheld, så skam dig!";
  exit ();
}

/* Her tjekkes, om der er forbudte tegn i felterne */
if (eregi("[\]",$navn) || eregi("[\]",$epost) || eregi("[\]",$emne) || eregi("[@]",$tlf)){
  echo "Formularen er ikke udfyldt korrekt, tryk på tilbage-knappen og prøv igen. Tjek, at du har skrevet din mail-adresse korrekt, og at du har skrevet den i det rigtige felt.";
  exit();
}

/* Her tjekkes, om afsenderen har indtastet sin mail-adresse, og i så fald bruges den som afsendeeradresse, så der kan svares på mailen */
if (epost > '') {
  $headers="From: $navn <$epost>\r\n";
}
else {
  $headers="From: Bestilformular <$afsendermail>\r\n";
}

/* Her indsættes din mailadresse, så afsenderen kan svare på kopimailen */
$formularheaders="From: $hjemmeside <$afsendermail>\r\n";

/* Her samles afsenderens navn, mailadresse og besked i en enkelt variabel */
$oplysninger="Følgende er sendt via bestilformularen på $hjemmeside:\r\n\r

\nAktivitets-tæppe: $aktivitets_tappe\r\nAktivitets-tæppe stk.: $Antal4\r\nAktivitets-tæppe kr.: $Sum4
\nGUF-taske: $guf_taske\r\nGUF-taske stk.: $Antal5\r\nGUF-taske kr.: $Sum5
\nBolde: $bolde\r\nBolde stk.: $Antal6\r\nBolde kr.: $Sum6
\nUnderlag1: $underlag1\r\nUnderlag1 stk.: $Antal7\r\nUnderlag1 kr.: $Sum7
\nUnderlag2: $underlag2\r\nUnderlag2 stk.: $Antal8\r\nUnderlag2 kr.: $Sum8
\nUnderlag3: $underlag3\r\nUnderlag3 stk.: $Antal9\r\nUnderlag3 kr.: $Sum9
\nVarmepude_u: $varmepude_u\r\nVarmepude_u stk.: $Antal10\r\nVarmepude_u kr.: $Sum10
\nVarmepude_m: $varmepude_m\r\nVarmepude_m stk.: $Antal11\r\nVarmepude_m kr.: $Sum11
\nDækken: $daekken\r\nDækken stk.: $Antal12\r\nDækken kr.: $Sum12
\nPude: $pude\r\nPude stk.: $Antal13\r\nPude kr.: $Sum13
\nHundeskål_lille: $hundeskal_lille\r\nHundeskål_lille stk.: $Antal14\r\nHundeskål_lille kr.: $Sum14
\nHundeskål_stor: $hundeskal_stor\r\nHundeskål_stor stk.: $Antal15\r\nHundeskål_stor kr.: $Sum15
\nLightCap300: $lightcap300\r\nSmoke: $smoke300\r\nRød: $rod300\r\nLightCap stk.: $Antal1\r\nLightCap kr.: $Sum1
\nLightCap200: $lightcap200\r\nSmoke: $smoke200\r\nKlar: $klar200\r\nLightCap stk.: $Antal2\r\nLightCap kr.: $Sum2
\nLightShip: $lightship\r\nGul: $ls_gul\r\nGrøn: $ls_gron\r\nBlå: $ls_bla\r\nRød: $ls_rod\r\nKlar: $ls_klar\r\nLightShip stk.: $Antal3\r\nLightShip kr.: $Sum3
\r\nSamlet pris: $ialt0
\nNavn:
$navn\r\nAdresse: $adresse\r\nBy: $by
\nE-mail: $epost\r\r\nTlf: $tlf
\nBesked: $besked";

/* Her samles oplysningerne til afsenderens kopi af mailen */
$kopimail="Hej $navn\r\nDu har sendt følgende via bestilformularen på $hjemmeside:\r\n$besked";

if ($kopi > '') {
  /* Her sendes til modtageradressen */
  mail($mail, $emne, $oplysninger, $headers);

  /* Her sendes en kopimail til afsenderen */
  mail($epost, $emne, $kopimail, $formularheaders);
}

else {
  /* Her sendes mailen til modtageradressen */
  mail($mail, $emne, $oplysninger, $headers);
}

/* Når mailen er sendt, viderestilles til denne hjemmeside */
header( "Location: $viderestil" );
?>
Avatar billede keysersoze Ekspert
30. januar 2010 - 12:46 #7
Jeg kan ikke PHP så jeg kan ikke komme med en løsning - men jeg kan se at det ikke er særlig solid kode der er skrevet. Du har fx et tjek for om $email er udfyldt (din "spam-sikring"), men hvis dette bliver fanget som en fejl fortsætter koden alligevel og sender mig videre med meddelelse om at beskeden er sendt.

Du bliver nødt til at gen-tænke og teste din kode grundigt - fx ved at udskrive debug-variabler undervejs (det kan du gøre ved midlertidigt at fjerne din viderestilling og vha echo skrive fx "step1", "step2" osv så du ved hvor henne du lander i koden ved bestemte scenarier.
Avatar billede ballegaarden Nybegynder
30. januar 2010 - 12:56 #8
Jeg ved ikke helt om jeg forstår hvad du mener, men jeg prøver at lege lidt med det.
Hvordan er det nu jeg giver dig point - er det ikke ved at du svarer og ikke kommenterer?
Avatar billede keysersoze Ekspert
30. januar 2010 - 16:59 #9
jo - jeg skal lægge et svar og det får du her hvis jeg har været til hjælp.

Men som sagt, det er ikke firefox der har skyldes, det er programmøren. Jeg har nævnt nogle huller i programmeringen men da jeg ikke selv laver PHP kan jeg desværre ikke komme nærmere noget.
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