Avatar billede michael_stim Ekspert
26. september 2009 - 17:12 Der er 14 kommentarer og
1 løsning

Tror en gammel variabel kommer med eller lignende.

Kan ikke lige se fejlen her. Fungerer fint på den ene server men når jeg flytter den over i prod, virker det ikke. Jeg synes jeg har debugget alt, men åbenbart ikke. Serverne skulle være identiske??? Får fejlen MySQL_fetch_array er ikke et gyldigt argument (eller noget i den dur) i det kald der gøres på htmlsiden, når jeg tilmelder mig ugens menu (til venstre i menuen).

HTML'en kan ses på www.stinas-skafferi.se (ikke fungerende).

Og fungerende: www.stimose.se/stinas-skafferi

Fra den ene side kalder jeg en funktion der bl a sender et mail afsted. Det må være i mailfunktionen det går galt, for når jeg bare poster ind i databasen, får jeg ingen fejl.

PHP på HTML siden:
I toppen:
//ini_set('display_errors', 1);
//error_reporting(E_ALL);
require_once('funktioner.php');
$conn=conn();

if(isset($_POST["sendMail"]) && $_POST["mailnavn"] != "" && $_POST["mailadresse"] != ""){
    sendpost($_POST['mailnavn'], $_POST['mailadresse']);
}
else if(isset($_POST["deleteMail"]) && $_POST["mailnavn"] != "" && $_POST["mailadresse"] != ""){
    deletepost($_POST['mailnavn'], $_POST['mailadresse']);
}

Kaldet hvor det går galt:

$query="SELECT overskrift, tekst FROM menytekst WHERE id=1" or die(mysql_error());
//echo $query;
$result=mysql_query($query);
//print_r($result);
$row=mysql_fetch_array($result);//Her knækker filmen
//print_r($row);
$overskrift=$row['overskrift'];
$tekst=entities($row['tekst']);

funktionen der bliver kaldt når man tilmelder sig ugens meny

function sendpost($mailnavn, $mailepost){
$result1="INSERT INTO mail (navn, adresse, aktiv) VALUES('".$mailnavn."', '".$mailepost."', 1)" or die(mysql_error());
mysql_query($result1);       
/*$to="".$mailnavn." <".$mailepost.">";
$mail='info@stinas-skafferi.se';
$br = (stristr(PHP_OS, "win")) ? "\r\n" : "\n";
$headers = "MIME-Version: 1.0$br";
$headers .= "Content-Type: text/plain; charset=\"ISO-8859-1\"; $br";
$headers .= "Content-Transfer-Encoding: quoted-printable$br";
$headers .= "From: Stinas skafferi <info@stinas-skafferi.se>" .$br;
$headers .= "Reply-To: info@stinas-skafferi.se" . $br;
$headers .= "X-Mailer: PHP/" . phpversion();
$headers = rtrim($headers);
$body ="Hej ".$mailnavn.",".$br;
$body.="Ni erhåller detta mail, då Ni har anmält Er på min hemsida att Ni önskar få veckans lunchmeny tillsänt Eder.";
$body.="Om så inte är fallet och Ni inte önskar denna informationen varje vecka kan Ni gå in på www.stinas-skafferi.se och avanmäla Er.".$br.$br;
               
$body.="Tack på förhand!".$br;
$body.="Mvh Christina Lundvall-Stinas Skafferi AB";
$sub="Bekräftigelse från Stinas skafferi.";
mail($to, $sub, $body, $headers);*/
    }
Avatar billede michael_stim Ekspert
26. september 2009 - 17:16 #1
PS. Sletter jer selvfølgelig fra maillisten hvis i tester ;o)
Men i får ikke nogle fejl, da jeg har udkommenteret maildelen.
Avatar billede ksoren Nybegynder
26. september 2009 - 17:18 #2
Det plejer at være

$query="SELECT overskrift, tekst FROM menytekst WHERE id=1";

$result=mysql_query($query) or die(mysql_error());
Avatar billede michael_stim Ekspert
26. september 2009 - 17:39 #3
Copy/paste fejl. Men det var ikke det der gjorde det.
Avatar billede michael_stim Ekspert
26. september 2009 - 17:39 #4
Men tak for at du så det.
Avatar billede michael_stim Ekspert
26. september 2009 - 17:42 #5
Ser ud til at den taber database forbindelsen, så snart jeg har maildelen med. Og den connecter ikke igen, selvom jeg kalder conn() igen lige før eksekveringen. Er der muligvis en variabel i maildelen der dræber database connectionen?
Avatar billede michael_stim Ekspert
26. september 2009 - 18:02 #6
Sætter jeg if(isset....) UNDER kaldet på HTML siden, fungerer det nogenlunde. Jeg får ingen fejl, men den er ret så langsom.
Avatar billede michael_stim Ekspert
26. september 2009 - 18:04 #7
Altså, ikke optimalt, da jeg så skal lede efter det sidste kald på alle siderne.
Avatar billede showsource Seniormester
27. september 2009 - 06:13 #8
Denne duer nok ikke:
/*$to="".$mailnavn." <".$mailepost.">";

og måske heller ikke denne:
headers .= "Content-Type: text/plain; charset=\"ISO-8859-1\"; $br";

og du bør lave et tjek på mail, for alle tilfældes skyld.
Avatar billede michael_stim Ekspert
27. september 2009 - 12:15 #9
Hej showsource,

Hvorfor duer den ikke? Ville du have $to=$mailnavn."<".$mailpost osv? Og hvad er der galt med headeren? Skal lige siges at mail kommer frem og det ser ud som det skal. Den dræber bare databaseconnectionen.
Avatar billede showsource Seniormester
28. september 2009 - 07:17 #10
Der må være noget kode du ikke viser.

/* er jo starten på en udkommentering

/*
$var = "Ikke sat";
*/

m.h.t. header linien er det mig som kikker forkert !
Avatar billede michael_stim Ekspert
28. september 2009 - 11:23 #11
Hele maildelen med variabler er udkommenteret i og med koden kommer fra den server der det ikke fungerer ;o)
Avatar billede showsource Seniormester
29. september 2009 - 08:44 #12
Jeg er ikke rigtig med længere, men er ret sikker på du bruger noget kode som du ikke viser. ?
Avatar billede michael_stim Ekspert
29. september 2009 - 14:45 #13
Venstresiden er en funktion der kalder noget htmlkode, toppen kalder noget htmlkode. Den kode kan ses som html i vis kilde. Ellers bliver der ikke kaldt nogle funktioner, foruden dem der allerede er blevet vist. Er 100% sikker på at det er mail delen der på en eller anden måde giver problemer, for er den udkommenteret fungerer det. Men fjerner jeg udkommenteringen, dræber den databaseforbindelsen, også selvom jeg connecter igen lige før databasekaldet.
Avatar billede michael_stim Ekspert
17. oktober 2009 - 09:33 #14
Lukker, men har ikke fået løst problemet. Har brugt en nødløsning hvor jeg har sat mailfunktionen under det sidste databasekald, på hver side. Det mærkelige er bare at det fungerer på den ene server, men ikke på den anden.
Avatar billede michael_stim Ekspert
11. marts 2010 - 14:23 #15
Opdatering: Serverfejl.
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