Dag allemaal,

ik heb een functie gemaakt die ervoor zorgt dat mails met een mooie layout worden opgebouwd. Wanneer de (html-)layout in een variabele zit wordt deze via het mail() commando verstuurd.
Nu probeer ik onderaan de functie een mysql insert te doen die elke mail in een logboek stopt wegens spam problemen. Het probleem is nu dat de query niet uitgevoerd wordt/werkt. Als ik de query voor de functie zet werkt het wel.

Ik krijg via het die() commando volgende error:
Access denied for user 'apache'@'localhost' (using password: NO)

Kan iemand mij hierbij helpen?

Alvast bedankt,
David.
Kan je wat code laten zien?

Is het soms dat je binnen een functie een query wilt uitvoeren maar binnen die functie worden de connectie gegevens niet herkent? [php]global[/php] gebruiken?
<?php
function sendMail($email,$subject,$message,$fromname,$frommail){

//
//
// HTML mail opbouwen
//
//...

// Mail it
if(mail($email, $subject, $body, $headers)){
	$succes="true";
}else{
	$succes="false";
}
mysql_query("INSERT INTO email_log(date,from,frommail,to,subject,succes) VALUES('$date','$fromname','$frommail','$email','$subject','$succes')") or die(mysql_error());

}
?>


Voor deze functie kan ik wel query uitvoeren. De query in deze functie geeft een error.
Dat komt omdat de database connectie voor de functie wel beschikbaar is, maar in de functie niet. Ergens voor de functie heb je zo iets als:

$connectie = mysql_connect($server,$username,$password);

In de functie is variabele $connectie niet beschikbaar en dus is ook de database connectie niet beschikbaar. Om variabele $connectie in de functie ook beschikbaar te maken doe je in de functie:

$connectie = $GLOBALS['connectie'];
Dan werkt het wel.
Piet Verhagen op 07/06/2010 19:33:05

Dat komt omdat de database connectie voor de functie wel beschikbaar is, maar in de functie niet. Ergens voor de functie heb je zo iets als:

$connectie = mysql_connect($server,$username,$password);

In de functie is variabele $connectie niet beschikbaar en dus is ook de database connectie niet beschikbaar. Om variabele $connectie in de functie ook beschikbaar te maken doe je in de functie:

$connectie = $GLOBALS['connectie'];
Dan werkt het wel.


Met $connectie = $GLOBALS['connectie']; in de code geeft hij nog steeds dezelfde error. Dit moest toch IN de FUNCTIE zelf staan hé? Heb hem nu bovenaan staan...
Roep je de function wel aan NA het connecten mat de database?
Verder is $date onbekend in de function.
Waar is de foutafhandeling?
Ik heb het probleem net gevonden, in al mijn pagina's wordt bovenaan de php file geinclude waarin verbinding wordt gemaakt met de databank. Wat ik wel vergeten was dat deze functie via een ander -door een javascript- php file aangeroepen werd, in deze file werd dan ook geen verbinding gemaakt :P

Nu zit nog wel met het probleem dat hij de query een syntax error geeft, hier geraak ik denk ik zelf wel uit, anders horen jullie het wel ;)

Bedankt voor jullie hulp!
David
Voila, dat is ook opgelost. Het probleem zat hem niet in de query maar in een fout in de database.

Grtz

Reageren