Avatar billede ponzi Nybegynder
19. april 2004 - 18:24 Der er 19 kommentarer

Sende session i mail funktion

Hej eksperter!

Fra dologin.php er følgene sessions sat

    $_SESSION['username'] = $r["username"];
    $_SESSION['type'] = $r["type"];
    $_SESSION['id'] = $r["id"];
    $_SESSION['password'] = $r["password"];

dologin header videre til members.php hvor den så tjekker om ovenstående stemmer. Det hele virker her, men under members.php har jeg lavet et link til tell.php, som er "anbefal en ven"

Problemet er at jeg ikke kan kalde en af de tidligere gemte sessions i tell.net ... Hvordan kan det være?

Tell.php ser således ud:

<? include("top.php"); ?>
<?
if (($action == "send")){
if (isset($_POST['email'])) {

session_start();

$tjek="^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\\.)+[a-z]{2,4}$";

    if (eregi($tjek, $_POST['email'])) {
  $mail = "ja";
    }
}
if ($mail == "ja"){
mail ("$email","En ven har anbefalet dig til denne side","
Jah, det er rigtigt.. du har venner.. Her kommer der til at stå en masse crap...\n
","From: Zine\n". "Reply-To: afsender email\n");
$popup = "onload=\"alert('Your friend has been invited!')\"";
} else {
$popup = "onload=\"alert('Error')\"";
}
}
echo "Your name ".$_SESSION['username']." will appear in the mail";
echo "$mailcheck";
?>

<body <? echo "$popup"; ?>>
<form name="form1" method="post" action="<? echo "$PHP_SELF"; ?>">
  <input name="action" type="hidden" id="action" value="send">
  Your friend's mail<input name="email" type="text"><br>
  <input type="submit" name="Submit" value="Submit">
</form>

<? include("bottom.php"); ?>
Avatar billede dennismp Nybegynder
19. april 2004 - 18:29 #1
har du prøvet at tilfø
dvs at : echo "Your name ".$_SESSION['username']." will appear in the mail";
skriver "Your name will appear in the mail" ud?

har du prøvet at skrive hele indholdet af din session ud? for at se om den er hel tom?
Avatar billede ponzi Nybegynder
19. april 2004 - 18:37 #2
echo "Your name ".$_SESSION['username']." will appear in the mail";
var lavet som en test for at se om den skrev noget ud, men den retunerer bare
"Your name will appear in the mail" :(

Udskrive hele indholdet af session?

echo "$_SESSION"; eller?

Jeg er ret newbie hvad angår sessions
Avatar billede dennismp Nybegynder
19. april 2004 - 18:44 #3
det kan gøres med:
print "SESSION: <pre>"
print_r($_SESSION);
print "</pre>";
Avatar billede ponzi Nybegynder
19. april 2004 - 18:49 #4
i tell.php udskriver den slet ik noget :(

men når jeg indsætter

print "SESSION: <pre>";
print_r($_SESSION);
print "</pre>";

i member.php, udskriver den indholdet... hmm?
Avatar billede dennismp Nybegynder
19. april 2004 - 18:51 #5
Prøv at smid output ud her, så jeg kan følge med :)
Avatar billede ponzi Nybegynder
19. april 2004 - 18:52 #6
Array
(
    [username] => test2
    [type] =>
    [id] => 2
)


type skal bare være tom.
men hvorfor bliver [password] ik udskrevet?
Avatar billede dennismp Nybegynder
19. april 2004 - 18:57 #7
Prøv at skrive din session ud i dologin.php, lige efter du har tildelt $_SESSION de forskellige værdier.
Avatar billede ponzi Nybegynder
19. april 2004 - 19:01 #8
same..

SESSION:
Array
(
    [username] => test2
    [type] =>
    [id] => 2
    [password] =>
)

kan det ha noget at gøre med at password, er md5? hmm nah?
Avatar billede dennismp Nybegynder
19. april 2004 - 19:06 #9
Nej, md5() laver jo bare en string. Næste skridt, prøv at bruge samme metode til at udskrive $r (brug $r istedet for $_SESSION) i dologin.php .. så kan du se hvad du får fra databasen..
Avatar billede ponzi Nybegynder
19. april 2004 - 19:08 #10
så nu virker DET.. fejl i mysql queryen.. den var sat til "SELECT username, type, id"

men den gemmer stadig ik variablen i tell.php?
Avatar billede ponzi Nybegynder
19. april 2004 - 19:21 #11
så kommer følgene:

SESSION:
Array
(
    [username] => test2
    [type] =>
    [id] => 2
    [password] => ad0234829205b9033196ba818f7a872b
    [email] => chris@pq.dk
)
Avatar billede dennismp Nybegynder
19. april 2004 - 19:28 #12
I tell.php - hvor skriver du $_SESSION ud?
Avatar billede ponzi Nybegynder
19. april 2004 - 21:30 #13
<? include("top.php"); ?>
<?
if (($action == "send")){
if (isset($_POST['email'])) {

$tjek="^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\\.)+[a-z]{2,4}$";

    if (eregi($tjek, $_POST['email'])) {
  $mail = "ja";
    }
}
if ($mail == "ja"){
session_start();
mail ("$email","En ven har anbefalet dig til denne side","
Her kommer der til at stå en masse crap...\n
","From: Zine\n". "Reply-To: afsender email\n");
$popup = "onload=\"alert('Your friend has been invited!')\"";
} else {
$popup = "onload=\"alert('Error')\"";
}
}
echo "Your name ".$_SESSION['username']." will appear in the mail";
echo "$mailcheck";
?>

<body <? echo "$popup"; ?>>
<form name="form1" method="post" action="<? echo "$PHP_SELF"; ?>">
  <input name="action" type="hidden" id="action" value="send">
  Your friend's mail<input name="email" type="text"><br>
  <input type="submit" name="Submit" value="Submit">
</form>

<? include("bottom.php"); ?>
Avatar billede dennismp Nybegynder
19. april 2004 - 21:40 #14
Prøv:
<? include("top.php"); ?>
<?
if (($action == "send")){
if (isset($_POST['email'])) {

$tjek="^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\\.)+[a-z]{2,4}$";

    if (eregi($tjek, $_POST['email'])) {
  $mail = "ja";
    }
}
if ($mail == "ja"){
session_start();
mail ("$email","En ven har anbefalet dig til denne side","
Her kommer der til at stå en masse crap...\n
","From: Zine\n". "Reply-To: afsender email\n");
$popup = "onload=\"alert('Your friend has been invited!')\"";

echo "Your name ".$_SESSION['username']." will appear in the mail";
echo "$mailcheck";

} else {
$popup = "onload=\"alert('Error')\"";
}
}
?>

<body <? echo "$popup"; ?>>
<form name="form1" method="post" action="<? echo "$PHP_SELF"; ?>">
  <input name="action" type="hidden" id="action" value="send">
  Your friend's mail<input name="email" type="text"><br>
  <input type="submit" name="Submit" value="Submit">
</form>

<? include("bottom.php"); ?>
Avatar billede ponzi Nybegynder
19. april 2004 - 22:21 #15
kun  "Your friend's mail"
Avatar billede ponzi Nybegynder
19. april 2004 - 22:23 #16
hmm hvis jeg prøver at intaste en mail skriver den:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/loads007/public_html/top.php:5) in /home/loads007/public_html/money/tell.php on line 13

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/loads007/public_html/top.php:5) in /home/loads007/public_html/money/tell.php on line 13
Your name test2 will appear in the mail
Avatar billede dennismp Nybegynder
19. april 2004 - 22:28 #17
Flyt session_start() op før du begynder at lave output
Avatar billede ponzi Nybegynder
19. april 2004 - 23:00 #18
Ok tak... nu virker det.
Hmm hvordan smider jeg så html tags ind i mailen?
drop et svar og du får pointene
Avatar billede dennismp Nybegynder
20. april 2004 - 11:46 #19
Som alt muligt andet tekst, du skal bare tilføje en header der fortæller hvordan det skal vises (at mailklienten skal vise det som html)

Mener at det blot er
MIME-Version: 1.0
Content-Type: text/html
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