Avatar billede JJ77 Juniormester
28. november 2006 - 10:32 Der er 19 kommentarer og
1 løsning

link som kalder script som åbner emailadresse

Nedenstående link skulle gerne kalde filen email.php, men det er som om der er et eller andet galt, viser bare en blank side. Tror fejlen ligger i email.php. Når man holder musen over "email til bruger" vises id´et i statuslinien, så det har den da fanget..

Scriptet skulle hjælpe med at en brugers email var usynlig for spammerrobotter ol.

<a href=\"email.php?id=$Id\">E-mail til bruger</a>


---------FILEN EMAIL.PHP---------
<?PHP
require("../blabla.php");

$id = $_GET[Id];
$emails = mysql_query("SELECT email FROM erhvervAfProdukt WHERE id = 'Id'") or die(mysql_error();)
$row = mysql_fetch_array($emails);
$email = $row[email];
header("Location: mailto:$email");
?>
Avatar billede olebole Juniormester
28. november 2006 - 10:51 #1
<ole>

Det kan du ikke. Den header, du prøver at sætte, er en HTTP-header (tilhørende HTTP-protokollen) - men det, du forsøger, er at åbne brugerens mail-program gennem mailto-pseudo-protokollen.
Der er med andre ord tale om en sammenblanding af to protokoller - og det dur ikke  :)

/mvh
</bole>
Avatar billede olebole Juniormester
28. november 2006 - 10:53 #2
Husk iøvrigt altid at escape array-kald, når disse ikke i forvejen er escaped i en streng: $row["email"];
Avatar billede JJ77 Juniormester
28. november 2006 - 11:02 #3
hmmm, know im confused... men det lyder rigtigt.. kan du ikke hjælpe med hvordan det så skal se ud:-) tak
Avatar billede sw_red_6 Nybegynder
28. november 2006 - 11:04 #4
det kunne være at du skulle kigge på funktionen mail() http://dk.php.net/manual/en/function.mail.php
Avatar billede showsource Seniormester
28. november 2006 - 11:30 #5
Det her virker i NS og IE

Fil med link :

<a href="email.php" target="_BLANK">Email</a>

email.php:

<?php
$var = "email@email.dk"; // I stedet for query

    $ex = explode("@", $var);

        if(count($ex) == 2) {
        $domain = end(explode(".", $ex[1]));
        $to = substr($ex[1], 0, (strlen($ex[1])-strlen($domain)));
        echo"<script>\r\n";
        echo"java script:void(location.href = \"mai\"+\"lto:". $ex[0] ."\"+\"@\"+\"". $to ."\"+\"". $domain ."\");\r\n";
        //echo"window.close();\r\n";
        echo"</script>";
        }else{
        echo "Fejl i emailadresse";
        }

?>

window.close() virker ikke i netscape, ihvertfald ikke på den måde :O)
Avatar billede showsource Seniormester
28. november 2006 - 11:31 #6
Er iøvrigt hentet fra html.dk, mener jeg, altså void .........
Avatar billede JJ77 Juniormester
28. november 2006 - 13:48 #7
Når nedenstående script bliver kaldt skal det bare starte outlook med den email som hører til id.

<?PHP
require("../blabla.php");

$id = $_GET[Id];
$emails = mysql_query("SELECT email FROM erhvervAfProdukt WHERE id = 'Id'") or die(mysql_error();)
$row = mysql_fetch_array($emails);
$email = $row[email];
header("Location: mailto:$email");
?>
Avatar billede sw_red_6 Nybegynder
28. november 2006 - 14:30 #8
hmm kunne det evt. lade sig gøre med:
<?PHP
require("../blabla.php");

$id = $_GET[Id];
$emails = mysql_query("SELECT email FROM erhvervAfProdukt WHERE id = 'Id'") or die(mysql_error();)
$row = mysql_fetch_array($emails);
$email = $row[email];
?>
<script type="text/javascript">
window.location.href='mailto: <?php echo $email; ?>';
</script>

Det er absolut ikke noget jeg er sikker på og jeg er meget usikker på om det kan lade sig gøre
Avatar billede showsource Seniormester
29. november 2006 - 08:54 #9
Det her virker fint nok, i Ie og Firefox, samt NS 8.1, men ikke i NS 7.2 (Hvis history.go() fjernes, virker det også i 7.2)

<html><head>

<?php
if(isset($_GET["id"])) {

$find = mysql_query("SELECT `email` FROM `erhvervAfProdukt` WHERE `id` = ". intval($_GET["id"]) ."") or die (mysql_error());

    if(mysql_num_rows($find) == 1) {
    $email = mysql_result($find, 0);
    mysql_free_result($find);

        echo"<script>\r\n";
        echo"void(location.href=\"mailto:". $email ."\");\r\n";
        echo"history.go(-1);\r\n";
        echo"</script>";
    }
}
?>

</head>
<body>


</body></html>
Avatar billede JJ77 Juniormester
29. november 2006 - 18:32 #10
Super.. den sidste virker perfekt.. :-)

Bruger <a href=\"email.php?id=$Id\">E-mail til bruger</a> til at starte scriptet.

Men hvad nu hvis brugeren ikke har en email. Kan man så få den til at lade være med at vise E-mail til bruger ?
Avatar billede JJ77 Juniormester
29. november 2006 - 18:35 #11
før havde jeg bare dette link til at vise annoncens email. og hvis der ikke var tilknyttet en mail blev intet vist.

<a href=\"mailto:".$raekke['email']."\">".$raekke['email']."</a>
Avatar billede showsource Seniormester
29. november 2006 - 19:11 #12
hvis du også vælger email i din query, kan du

echo (trim($raekke['email']) != "" ? "<a href=\"email.php?id=". $raekke["$Id"] ."\">E-mail til bruger</a>" : "&nbsp;");
Avatar billede JJ77 Juniormester
29. november 2006 - 20:18 #13
hmm kan det passe der er en fejl.. kan ikke lige få det til at funke..
har sat det ind som følger.. først vises det gamle som virker, og så det som jeg ikke kan få til at virke..


<td width=\"300\" valign=\"top\"><span class=\"lilleS\"><a href=\"email.php?id=$Id\">E-mail til bruger</a></span></td>


<td width=\"55\" valign=\"top\"><span class=\"mellem\">E-mail:</span></td>                                                         
<td width=\"300\" valign=\"top\"><span class=\"lilleS\"><?PHP echo (trim($raekke['email']) != "" ? "<a href=\"email.php?id=". $raekke["$Id"] ."\">E-mail til bruger</a>" : "&nbsp;"); ?></span></td>
Avatar billede showsource Seniormester
29. november 2006 - 20:41 #14
Ser ud som om du laver en echo i en echo !
Avatar billede JJ77 Juniormester
29. november 2006 - 21:02 #15
ja, det ku der være noget om.. kan stadig ikke få det til at virke selv om jeg fjerner echo og <? ?>.. får bare blank skærm..
Avatar billede JJ77 Juniormester
29. november 2006 - 22:34 #16
Har lige et spørgsmål relateret til denne løsning. Er dette en sikker måde at skjule brugeres e-mails fra spamrobotter? Emailen vises sammen med en annonce hvor alt indhold i forvejen er trukket ud fra databasen... Som det så er nu med den ekstra e-mail funktion, så er emailen nu bare et nummer som så kan aktivere scriptet som henter e-mailen som hører til nummeret... men kan en spamrobot ikke bare aktivere linket og så opsnappe emailen, bare et niveau dybere?
Avatar billede JJ77 Juniormester
29. november 2006 - 23:40 #17
og lige en sidste ting.. har lige sat pointene op til 60..

ville det være muligt, istedet for at starte outlook, at få smidt emailadressen ind i feltet hvor der før stod "E-mail til bruger".. mere specifikt i dette felt:

<a href=\"email.php?id=$Id\">E-mail til bruger</a>


Altså den kalder scriptet nedenfor og smider e-mailadressen op i ovenstående:


----------------email.php---------------

if(isset($_GET["id"])) {

$find = mysql_query("SELECT `email` FROM `erhvervAfProdukt` WHERE `id` = ". intval($_GET["id"]) ."") or die (mysql_error());

    if(mysql_num_rows($find) == 1) {
    $email = mysql_result($find, 0);
    mysql_free_result($find);

        echo"<script>\r\n";
        echo"void(location.href=\"mailto:". $email ."\");\r\n";
        echo"history.go(-1);\r\n";
        echo"</script>";
    }
}
Avatar billede showsource Seniormester
30. november 2006 - 05:38 #18
well, den vil sikkert kunne findes, emailen.
Og især hvis du vil skifte teksten "E-mail til bruger" ud med emailadressen.
Hvis du vil være helt sikker på at emailen ikke findes på din side, så lad brugeren sende en email via en formular på din side.
Avatar billede JJ77 Juniormester
10. december 2006 - 13:56 #19
smider du ikke lige et svar showsource.. takker
Avatar billede showsource Seniormester
10. december 2006 - 14:15 #20
johh, kan jeg godt
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