Avatar billede nemlig Professor
09. april 2007 - 12:52 Der er 12 kommentarer og
1 løsning

Wamp server med 2 problemer

Jeg anvender Wamp server og har 2 problemer:

1. Serveren vil ikke acceptere, når jeg bruger denne php-syntax: "<?". Jeg skal bruge "<?php" for at det virker.

2. Jeg har noget kode, hvor jeg tjekker om emailsadresse er korrekt indtastet. En del af koden ser sådan her ud:

if(checkdnsrr($host[1].'.', 'MX') ) return TRUE;

Jeg får denne fejl:
Fatal error: Call to undefined function checkdnsrr() in

Jeg kan godt sende emails via php's mail-funktion.
Nogen forslag til tilretninger af Wamp-serveren.
Avatar billede radion Nybegynder
09. april 2007 - 13:03 #1
hvilken php version bruger du? prøv at bruge en

echo phpinfo();

eftersom checkdnsrr blev indført i php4 kan det tænkes at du bruger en (meget) gammel php version?
Avatar billede jensgram Nybegynder
09. april 2007 - 13:11 #2
1: Kig efter short_open_tags og slå den til - http://dk.php.net/manual/en/ini.core.php.

2: http://dk.php.net/checkdnsrr - "Note:  This function is not implemented on Windows platforms. Try the » PEAR class » Net_DNS."
Avatar billede radion Nybegynder
09. april 2007 - 13:16 #3
ahh... jensgram da... I bend in the dust for the
Avatar billede jensgram Nybegynder
09. april 2007 - 13:20 #4
;)
Avatar billede erikjacobsen Ekspert
09. april 2007 - 13:21 #5
1: Alternativ: Brug "<?php", så du er sikker på det altid virker, uanset PHP-opsætning
Avatar billede nemlig Professor
09. april 2007 - 13:31 #6
1: Er jeg med på - tak for inputtene.
2: Kører PHP vers. 5.2.1. og Apache 2.2.4
Skal jeg forstå det sådan, at jeg ikke kan få det til at fungere med "checkdnsrr", men alternativt kan være en anden form for check - fx. PEAR class Net_DNS.
Giver det så ikke bare problemer med andre styresystemer??
Nogen der har et forslag til alternativ kode, hvis det er løsningen:
Min kode ser sådan her ud lige nu:


function check_email($email) {
if((preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ) {
$host = explode('@', $email);
if(checkdnsrr($host[1].'.', 'MX') ) return TRUE;
if(checkdnsrr($host[1].'.', 'A') ) return TRUE;
if(checkdnsrr($host[1].'.', 'CNAME') ) return TRUE;
}
return FALSE;
}
Avatar billede jensgram Nybegynder
09. april 2007 - 13:53 #7
Jeg er ikke helt inde i, hvordan PEAR fungerer, men jeg formoder, at man bestræber sig på at skrive x-OS pakker.

Kan ikke helt lure, hvordan Net_DNS virker, men http://pear.php.net/manual/en/package.networking.net-dns.net-dns-resolver.query.php har lidt eksempler.

Øverste kommentar på http://dk.php.net/checkdnsrr viser desuden, hvordan du kan benytte @exec("nslookup -type=A " . $reverse_ip . "." . $dnsbl_list . ".", $lookup); til at lave lookup på Win. Ved ikke om det kan bruges.
Avatar billede jensgram Nybegynder
09. april 2007 - 13:55 #8
Avatar billede Bjarne Novice
09. april 2007 - 18:28 #9
Du kan vel gøre således:

if (function_exists("checkdnsrr")) {
check_email($email);
} else {
//brug den funktion som jensgram linker til:
//http://dk2.php.net/manual/en/function.checkdnsrr.php#30692
myCheckDNSRR();
}
Avatar billede Bjarne Novice
09. april 2007 - 18:33 #10
Altså hvis der er problemer på tværs af styresystemer.
Avatar billede nemlig Professor
10. juni 2007 - 16:12 #11
Erik Jacobsen: Jeg anvendte dig forslag til punkt 1
Bjarne00: Jeg endte med at gøre brug af dit forslag til punkt 2.
Jens Gram har også bidraget.

Sender I et svar.
Avatar billede erikjacobsen Ekspert
10. juni 2007 - 16:53 #12
Ingen point til mig, tak.
Avatar billede jensgram Nybegynder
10. juni 2007 - 18:55 #13
Jeg samler stadig :)
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