Avatar billede kodak Mester
21. oktober 2009 - 18:01 Der er 7 kommentarer og
1 løsning

to i en

Hej jeg har følgendene html kode:
<html>
<body>
  <h1>My mail sender</h1>
  <form method=post action='sendmail.php'>
  <table border=0>
  <tr>
    <td>Navn</td>
    <td><input type='text' name='name'></td>
  </tr>
  <tr>
    <td>Mail</td>
    <td><input type='text' name='email'></td>
  </tr>
  <tr>
    <td>Besked</td>
    <td><textarea rows=4 cols=40 name='message'></textarea></td>
  </tr>
  <tr>
    <td> </td>
    <td><input type=submit name=submit value=Send></td>
  </tr>
  </table>
  </form>
</body>
</html>

Og følgendene php kode:

<?php

$ozeki_user = "xxxx";
$ozeki_password = "xxxx";
$ozeki_url = "http://xxxx";

function httpRequest($url){
    $pattern = "/http...([0-9a-zA-Z-.]*).([0-9]*).(.*)/";
    preg_match($pattern,$url,$args);
    $in = "";
    $fp = fsockopen("$args[1]", $args[2], $errno, $errstr, 30);
    if (!$fp) {
      return("$errstr ($errno)");
    } else {
        $out = "GET /$args[3] HTTP/1.1\r\n";
        $out .= "Host: $args[1]:$args[2]\r\n";
        $out .= "User-agent: Ozeki PHP client\r\n";
        $out .= "Accept: */*\r\n";
        $out .= "Connection: Close\r\n\r\n";

        fwrite($fp, $out);
        while (!feof($fp)) {
          $in.=fgets($fp, 128);
        }
    }
    fclose($fp);
    return($in);
}



function ozekiSend($phone, $msg, $debug=false){
      global $ozeki_user,$ozeki_password,$ozeki_url;

      $url = 'username='.$ozeki_user;
      $url.= '&password='.$ozeki_password;
      $url.= '&action=sendmessage';
      $url.= '&messagetype=MAIL:TEXT';
      $url.= '&recipient='.urlencode($phone);
      $url.= '&messagedata='.urlencode($msg);

      $urltouse =  $ozeki_url.$url;
      if ($debug) { echo "Request: <br>$urltouse<br><br>"; }

      //Open the URL to send the message
      $response = httpRequest($urltouse);
      if ($debug) {
          echo "Response: <br><pre>".
          str_replace(array("<",">"),array("&lt;","&gt;"),$response).
          "</pre><br>"; }

      return($response);
}


$phonenum = $_POST["email"];
$message = $_POST['message'];
$debug = true;

ozekiSend($phonenum,$message,$debug);

?>

Jeg vil gerne have den endelige værdi af $message til at indeholde:
Fra: $_POST["name"]
Besked: $_POST['message']

Så mit resultat bliver:
Fra name
Besked Hello world

Og ikke bare:
Hello World
21. oktober 2009 - 18:16 #1
Prov at erstatte din $_message med dette:

$message ="
Fra:    $_POST['name']
Besked:  $_POST['message'];
21. oktober 2009 - 18:16 #2
Undskyld, det skal ende med "", altsaa:

$message ="
Fra:    $_POST['name']
Besked:  $_POST['message'];"
Avatar billede kodak Mester
21. oktober 2009 - 18:33 #3
#2 Virker ikke
21. oktober 2009 - 20:23 #4
Det beklager jeg.  Det virker i en anden fil.  Derfor var jeg doven og testede det ikke.

Hvad jeg nu har gjort er at kopiere din kode til mit system undtagen at jeg har skifted dine sidste fire linier ud med det foelgende:

if($_POST['submit'])
{
  $phonenum = $_POST["email"];
  $message ="Fra: " . $_POST['name'] . "\nBesked: " .  $_POST['message'];
  $debug = true; 
  //ozekiSend($phonenum,$message,$debug);
  mail("christian.jorgensen@skynet.be", "Ozeki Besked", $message, "From: " . $phonenum . "\nContent-Type: text/plain");
  echo "Beskedden er sendt!";
}

Saa modtager jeg en email med

Fra: Mit navn. 
Besked:  Min sendte besked.

Forklaring:

(1)  I stedet for at bruge funktionen ozekiSend bruger jeg min egen email saa jeg kan se resultatet.
(2)  Jeg har gjort det hele betinget af at en form er blevet sendt - if($_POST['submit']) -  (det vil jeg ogsaa foreslaa at du goer.)
(3)  messagelinjen skal vaere
$message ="Fra: " . $_POST['name'] . "\nBesked: " .  $_POST['message'];
(4)  og saa lavede jeg en echo "Beskedden er sendt" saa jeg paa hjemmesiden kunne se at der skete noget.

Nu haaber jeg at det ogsaa virker i dit system.  Hvis ikke saa fortael mig hvad der gaar galt.  Saa skal jeg kikke igen.
Avatar billede dkfire Nybegynder
22. oktober 2009 - 11:29 #5
Christian_Belgien:
Til din #2: Du har normalt ret i at i en streng med "" så fortolker php variabler i strengen, men dette gælder desværre ikke for array elementer på formen $array['element'].
Du kan dog godt få det til at virke vil at indkapsle array elementet i {}. Så dit eksempel bliver noget ala:

$message ="
Fra:    {$_POST['name']}
Besked:  {$_POST['message']}";
Avatar billede kodak Mester
22. oktober 2009 - 11:34 #6
Bare så du kan være 100% inde er det en sms sender så der kan ikke redigeres for meget.

ok jeg kan ikke se nogen sammenhæng i den kode som du har i #4 så vedikke hvor du vil have at jeg skal sætte hvad ind.
22. oktober 2009 - 11:54 #7
Dine sidste fire linier i pfp koden er:

$phonenum = $_POST["email"];
$message = $_POST['message'];
$debug = true;

ozekiSend($phonenum,$message,$debug);

Du forandrer linie 2 til

$message ="Fra: " . $_POST['name'] . "\nBesked: " .  $_POST['message'];

Saa skulle du faa en besked der indeholder baade navnet og den besked brugeren fyldte ud.

I hvert fald faar jeg det paa mit eget system.  For at teste det forandrede jeg den fjerde linie til min egen email.  Jeg forventer derfor at det skal virke i dit system ogsaa.  Jeg er spaendt paa din tilbagemelding.

Jeg giver saa to tips som du kan bruge eller lade ligge:

(1)  Put dine sidste fire linier i en if funktion saaledes at de kun udfoeres naar brugeren har udfyldt og send formen.

(2)  Skriv en besked til brugeren efter at han har sendt formen saa han ved hvad der foregaar.
Avatar billede kodak Mester
22. oktober 2009 - 14:21 #8
#7 Og det virkede takker. svar!!
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