Avatar billede clausberg Nybegynder
12. august 2006 - 00:26 Der er 22 kommentarer og
1 løsning

Get email og insert automatisk

Smider lidt kode og forklarer bagefter:

<?php
$conn = mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());

$result = mysql_query("SELECT * FROM tbl_716418
WHERE kategori='Fiat'") or die(mysql_error()); 

echo "<table align='center' border='0' cellspacing='0' cellpadding='0'>";

while($row = mysql_fetch_array( $result )) {
echo "<tr><td rowspan='2'>";
echo "<img src='".$uploadDir="upload/" .$row['filename']."'>";
echo "</td><td>";
echo $row['kategori'];
echo "</td><td rowspan='2' width='120'>";
echo $row['design'] . "<br />";
echo "<input type=hidden name=recipient value='.$_SESSiON['email'].'>";
echo "<a href='orderproduct.php?design=$row[email]'><img src='pic/gif/arrow.gif' border='0'>Bestil produkt</a><br />";
echo "<a href='kontaktdesign.php?design=$row[email]'><img src='pic/gif/arrow.gif' border='0'>Kontakt kunde</a><br />";
echo "<a href='showstand.php?design=$row[design]'><img src='pic/gif/arrow.gif' border='0'>Se stand</a><br />";
echo "<a href='showall.php?design=$row[design]'><img src='pic/gif/arrow.gif' border='0'>Se alle produkter</a>";
echo "</td></tr>";
echo "<tr><td height='100' width='300'>";
echo $row['comment'];
echo "</td></tr>";
echo "<tr><td colspan='3'>";
echo "<img src='pic/gif/showonehordiv.gif'>";
echo "</td></tr>";
}
echo "</table>";
?>

Ved klik på "Se alle produkter" bliver jeg sendt til en ny side med kun de produkter kunden har uploadet til databasen.

Den funktion vil jeg også gerne have i forhold til email. Dvs. ved klik på "Kontakt kunde" så skal den email der kunden har anført da denne oprettede sig som kunde på siden, blive "ført med over" til den side, hvor emailformularen findes. Emailformularen ser således ud:(kontaktdesign.php):
<?php
if(isset($_POST['email'])){
mail("kundens@egen-email.dk", "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[mail]>");
echo "Din mail er nu fremsendt og vil blive besvare snart.";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Dit navn: <input type="text" name="navn"><br>
Din email: <input type="text" name="mail"><br>
Emne: <input type="text" name="emne"><br>
Besked: <input type="text" name="besked"><br>
<input type="submit" value="Send">
</form>

Jeg går ud fra at det er i denne sætning, jeg skal sætte en form for value der hentes den email der føres med over.
mail("value="'get ['email']'", "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[mail]>");
Avatar billede jakobdo Ekspert
12. august 2006 - 00:34 #1
Hvis kunden er logget ind, så kunne du evt. trække email med ud i en session.
$_SESSION['email'] = 'kundens@egen-email.dk'; //Trækkes ud af database, når kunden logger ind.

I din kontakt formular:
<?php session_start(); ?>
Din email: <input type="text" name="mail" value="<?=$_SESSION['email'];?>"><br>
Avatar billede clausberg Nybegynder
12. august 2006 - 00:55 #2
Der er noget galt med:
echo "<input type=hidden value='.$_SESSION['email'] = 'kundens@egen-email.dk'.'>";

Den gør, at jeg får følgende fejl:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /customers/minside.dk/minside.dk/httpd.www/showone.php on line 88
Avatar billede clausberg Nybegynder
12. august 2006 - 01:11 #3
Bare se bort fra 12/08-2006 00:55:21 - det har jeg løst.
Jeg prøver lige nogle ting og vender tilbage.
Avatar billede clausberg Nybegynder
12. august 2006 - 16:42 #4
Vil dette script i kontaktdesign.php

mail("email='$_GET[email]'", "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[email]>");

kunne hente emailadressen fra showone.php:
echo "<a href='kontaktdesign.php?email=$row[email]'><img src='pic/gif/arrow.gif' border='0'>Kontakt kunde</a><br />";

Det virker bare ikke?
Avatar billede jakobdo Ekspert
12. august 2006 - 16:43 #5
Har du et login på din side nu?
Avatar billede clausberg Nybegynder
12. august 2006 - 16:54 #6
Det er ikke meningen at kunden skal være logget ind på siden. Den mail adresse der skal sættes ind i kontaktdesign.php skal være den email som "designeren"  har.

Det er vist lidt indviklet men jeg prøver lige at forklare lidt mere :-)

På en side har jeg en række søgeresultater:

Designeren Bob - kategori=Fiat - Billede af produkt - Bob´s email
Designeren Søren - kategori=Volve - billede af produkt - Søren´s email.

Bob og Søren er altså kunder der har måtte logge sig ind på siden for at uploade oplysninger til databasen.

Så kommer der en besøgende ind på siden som er på udkig efter biler... han søger efter Fiat´er og får en masse resultater frem... bl.a. Bob´s og Søren´s... Bob´s Fiat er fedest, så nu vil kunden skrive en mail til Bob... og ved klik på "kontakt designeren" så skal kunden blive sendt over til kontaktdesign.php, og når kunden udfylder emailformularen, så skal emailen fremsendes til Bob´s emailadresse..

Giver det mening? :-)
Avatar billede jakobdo Ekspert
12. august 2006 - 17:36 #7
Ja, det giver mening.
Så ville jeg lave:

kontaktdesign.php?designer=1 (id 1 = bob f.eks.)

<?php
if(is_numeric($_GET['designer'])
{
    $email = mysql_result("SELECT email FROM designer_tabel WHERE id = '".intval($_GET['designer'])."' LIMIT 1"),0);
    mail($email, "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[email]>");
}
?>

//Her kommer din for så...
Avatar billede clausberg Nybegynder
12. august 2006 - 18:16 #8
Jeg lavede faktisk en fejl :-( Det er ikke:
Designeren Bob - kategori=Fiat - Billede af produkt - Bob´s email
Designeren Søren - kategori=Volve - billede af produkt - Søren´s email.

men

Designeren Bob - kategori=Fiat - Billede af produkt - send en mail til designeren
Designeren Søren - kategori=Volve - billede af produkt - send en mail til designeren

Når man klikker på "send en mail til designeren", så kalder man på showone.php - uanset hvilken resultatstreng man klikker på.

Linien:
kontaktdesign.php?designer=1 (id 1 = bob f.eks.)
skal vel stå i showone.php... og så kan jeg vel ikke bruge id, da showeone.php kaldes ved klik på "send en mail til designeren", uanset ud fra hvilket resultat der vælges.

Jeg mener.... lad os antage at Bob har id=1 og det skal jeg vel skrive i showone.php men hvad nu hvis Søren har id=5... så skal jeg vel ind og rette i showone.php... og det er ikke meningen.
Avatar billede jakobdo Ekspert
12. august 2006 - 18:23 #9
Altså jeg går ud fra alle designere har et unikt id?
Når du så laver en søgning eller visning, så laver du et link til:
showone.php?designer=(ID PÅ DESIGNEREN)
Så id vil jo altid være den designer man vil sende en besked.
Avatar billede clausberg Nybegynder
12. august 2006 - 22:01 #10
Jeg prøver en anden måde... glemt alt ovenstående.

Når jeg peger med musen på linket "Send en mail til designeren", så kan jeg se nederst på bundlinien, at der står http://www.minside.dk/kontaktdesign.php?email=kundens@email.dk

Når jeg klikker på linket, kommer jeg frem til min emailformular... og jeg går ud fra at jeg så bare kan GET min email og sætte ind.

Jeg tror det er på følgende måde:
<?php
if(isset($_POST['navn'])){
mail("$_GET[email]", "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[mail]>");
echo "Din mail er nu fremsendt.";
}
?>

Det virker ikke, men jeg går da ud fra at man bare kan kalde på den mailadresse jeg tilsyneladende trækker med over fra den forrige side.
Jeg ved ikke om der skal stå:
if(isset($_POST['email'])){
Avatar billede jakobdo Ekspert
12. august 2006 - 22:20 #11
Når du klikker på linket:
http://www.minside.dk/kontaktdesign.php?email=kundens@email.dk
Så har du kun $_GET['email'] = 'kundens@email.dk';
Men du har ikke noget i:
$_POST['navn']
$_POST[emne]
eller
$_POST[besked]
Da jeg ikke antager du poster noget.
Avatar billede clausberg Nybegynder
12. august 2006 - 22:25 #12
kontaktdesign.php består af:

<?php
if(isset($_POST['email'])){
mail("$email = $_GET[email]", "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[mail]>");
echo "Din mail er nu fremsendt.";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Dit navn: <input type="text" name="navn"><br>
Din email: <input type="text" name="email"><br>
Emne: <input type="text" name="emne"><br>
Besked: <input type="text" name="besked"><br>
<input type="submit" value="Send">
</form>
Avatar billede clausberg Nybegynder
12. august 2006 - 22:32 #13
Tanken er at hvis jeg udfylder formularen med mit navn, min email, emne og besked, så skal mailen ved klik på Submit/send knappen sendes til den mail, som jeg har hevet med over fra forrige side.
Avatar billede jakobdo Ekspert
12. august 2006 - 22:47 #14
Så skal det være:
<?php
if(isset($_POST['email'])){
mail($_POST['designerEmail']", "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[mail]>");
echo "Din mail er nu fremsendt.";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="designerEmail" value="<?=$_GET['email'];?>">
Dit navn: <input type="text" name="navn"><br>
Din email: <input type="text" name="email"><br>
Emne: <input type="text" name="emne"><br>
Besked: <input type="text" name="besked"><br>
<input type="submit" value="Send">
</form>

Dog synes jeg ikke om din løsning, alle vil kunne finde emails på dine designere.
Men den løsning der bør virke som du ønsker.
Avatar billede clausberg Nybegynder
12. august 2006 - 23:00 #15
Så får jeg fejlen
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in .......
Avatar billede clausberg Nybegynder
12. august 2006 - 23:21 #16
Ok... du har ret i at det ikke er super smart man kan se designernes email... jeg har prøvet at skjule den ved at gøre noget nyt.

Når jeg peger med musen på linket "Send en mail til designeren", så kan jeg se nederst på bundlinien, at der nu står http://www.minside.dk/kontaktdesign.php?design=designerens-navn.

Designerens navn må nemlig godt blive vist. Og jeg går ud fra at jeg hiver det med over til kontaktdesign.php.
Kan man så ikke gøre følgende:

<?php
$conn = mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());

$result = mysql_query("SELECT email FROM tbl_716418
WHERE design='$_GET[design]'") or die(mysql_error()); 

if(isset($_POST['email'])){
mail($email, "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[mail]>");
echo "Din mail er nu fremsendt.";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Dit navn: <input type="text" name="navn"><br>
Din email: <input type="text" name="email"><br>
Emne: <input type="text" name="emne"><br>
Besked: <input type="text" name="besked"><br>
<input type="submit" value="Send">
</form>
Avatar billede jakobdo Ekspert
12. august 2006 - 23:38 #17
Du skal lige rette:
mail($_POST['designerEmail']" til: mail($_POST['designerEmail']
Avatar billede jakobdo Ekspert
12. august 2006 - 23:41 #18
Og ellers sådan:

<?php
if(isset($_POST['email']))
{
    $conn = mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
    mysql_select_db("xxx") or die(mysql_error());
   
    $name = mysql_real_escape_string($_GET['design']);
    $email = mysql_result(mysql_query("SELECT email FROM tbl_716418 WHERE design='$name' LIMIT 1"),0);
    mail($email, "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[mail]>");
    echo "Din mail er nu fremsendt.";
}
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input type="hidden" name="modtager" value="<?=$_GET['design'];?>"><br>
Dit navn: <input type="text" name="navn"><br>
Din email: <input type="text" name="email"><br>
Emne: <input type="text" name="emne"><br>
Besked: <input type="text" name="besked"><br>
<input type="submit" value="Send">
</form>
Avatar billede clausberg Nybegynder
12. august 2006 - 23:46 #19
Ja, nu virker det... pyha... du har ihvertfald fortjent dine point.

Men du har jo ret i at den måde jeg har gjort det på har den ulempe at man kan se designerens email... jeg vil tro at man kan undgå det ved at gøre som jeg forslog i 12/08-2006 23:21:43... er det muligt?
Avatar billede jakobdo Ekspert
13. august 2006 - 00:10 #20
Det er muligt.
Jeg ville dog tage og bruge designerens ID.
SÅ det bliver:
http://www.minside.dk/kontaktdesign.php?design=1

og så på siden:

<?php
if(isset($_POST['email']) && is_numeric($_POST['modtager']))
{
    $conn = mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
    mysql_select_db("xxx") or die(mysql_error());
 
    $design = intval($_GET['design']);
    $email = mysql_result(mysql_query("SELECT email FROM tbl_716418 WHERE DESIGNER_ID='$name' LIMIT 1"),0);
    mail($email, "$_POST[emne]", "Beskeden er:\n $_POST[besked]", "From: $_POST[navn] <$_POST[mail]>");
    echo "Din mail er nu fremsendt.";
}
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input type="hidden" name="modtager" value="<?=$_GET['design'];?>"><br>
Dit navn: <input type="text" name="navn"><br>
Din email: <input type="text" name="email"><br>
Emne: <input type="text" name="emne"><br>
Besked: <input type="text" name="besked"><br>
<input type="submit" value="Send">
</form>
Avatar billede jakobdo Ekspert
13. august 2006 - 00:10 #21
Og et svar!
Avatar billede clausberg Nybegynder
13. august 2006 - 00:22 #22
Jeg prøver at arbejde videre med det - tak for indsatsen :-)
Avatar billede jakobdo Ekspert
13. august 2006 - 10:29 #23
Det var så lidt, og takker for point.
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