Avatar billede neverknow Nybegynder
27. september 2007 - 10:26 Der er 15 kommentarer og
1 løsning

POST til url uden at bruge formular

Hej eksperter,

Jeg har et sms script, det skal poste nogle værdier bl.a. brugernavn og password til min sms udbyder. Mit problem er at jeg kan jo ikke have mit brugernavn og password til at flyde rundt i rent html. Her tænker jeg på at man kan løse det ved at smide det i en formular med input type hidden.

Hvordan kan jeg sende de 2 variabler med post til den url de skal sendes til?

Disse variabler skal sendes til udbyderen med post.

$sms_username = "username";
$sms_password = "password";
$sms_message = $_POST['message'];
$sms_number = $_POST['number'];

Håber det giver lidt mening.

//TLH//
Avatar billede neverknow Nybegynder
27. september 2007 - 12:36 #1
Det var måske for snørklet forklaret. Jeg har følgende setup.

// smssender.php start //

<?php
$sms_username = "someusername";
$sms_password = "mypassword";
$uriaction = "http://someuri.xx/smscript.php?sendsms=1";
?>

<form name="smsform" method="POST" action="$uriaction">
<input type="text" name="message" value="" />
<input type="text" name="number" value="" />
<input type="submit" name"submit" value="Send SMS" />
</form>

// smssender.php end //

Hvordan får jeg sendt $sms_username + $sms_password med når nedenstående form submittes og uden at man kan se username og password når html'en genereres.

//TLH//
Avatar billede neverknow Nybegynder
27. september 2007 - 12:45 #2
Hmm, doh.

$_POST variabler er jo bare et array så jeg har fundet min løsning.

# cat smsform.php
<?php
$_POST['sms_username'] = "someusername";
$_POST['password'] = "mypassword";
$uriaction = "?send=1";
?>

<form name="smsform" method="POST" action="<?php echo $uriaction; ?>">
<input type="text" name="message" value="" />
<input type="text" name="number" value="" />
<input type="submit" name"submit" value="Send SMS" />
</form>

<?php
if ($_GET['send']) {
  print_r($_POST);
}
?>h
Avatar billede neverknow Nybegynder
27. september 2007 - 12:47 #3
svar
Avatar billede johan.o Nybegynder
27. september 2007 - 16:16 #4
..øhhh..når brugeren trykker send så sendes brugernavn og kode da ingen steder hen. Den eneste grund til at du kan se de to er fordi du har defineret dem i toppen..de sendes da aldrig med formen.

Mvh. Johan
Avatar billede neverknow Nybegynder
27. september 2007 - 16:25 #5
Det fandt jeg ud af så kan jeg sku lade være med at være så kæbhøj. Idéer til løsningen søges.
Avatar billede johan.o Nybegynder
27. september 2007 - 18:15 #6
Du kan jo prøve at spørge igen hvis du vil have fornyet fokus på problemet, du har jo sådan set lukket her.

Men bortset fra det så kunne du jo lade formen være som den er og sende indholdet til en php side du selv laver. På denne nye php side kan du så tilføje brugernavn og password og så sende indholdet direkte til din smsudbyder. Du skal dog være klar over at til trods for at brugeren aldrig ser brugernavn og pass så sendes det stadig i klar tekst over nettet.

Jeg sidder lige på arbejdet nu, men kigger igen når jeg kommer hjem, om du har fået yderligere hjælp.

Mvh. Johan
Avatar billede johan.o Nybegynder
27. september 2007 - 18:17 #7
...er rimelig sikker på at POST data kan sendes via header information direkte fra en php side til en anden.....but later.

Mvh. Johan
Avatar billede johan.o Nybegynder
28. september 2007 - 00:50 #8
Så fik jeg kigget lidt på det.

Du skal rette lidt i koden herunder og naturligvis tilpasse den til dit setup, men jeg tror du kan se principet :)

<?php

function sendToHost($host,$method,$path,$data)
{
$fp = fsockopen($host, 80);
fputs($fp, "POST ".$path." HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: " . strlen($data) . "\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data);
fclose($fp);
return; }

if(isset($_POST['number'])) {
// Eksempel : sendToHost("www.domæne.dk", "POST", "/folder/fil.php", "user=bruger&pass=password");
sendToHost("www.din_sms_udbyder.dk", "POST", "sti_til_fil", "user=brugernavn&pass=password&message=".urlencode($_POST['message'])."&number=".urlencode($_POST['number'])); }
else {
echo "
<html>
<body>
<form name='smsform' method='POST' action='posttest1.php'>
<p>Besked : </p>
<input type='text' name='message' value=''>
<p>Telefon nummer : </p>
<input type='text' name='number' value=''>
<input type='submit' value='Send SMS'>
</form>
</body>
</html>"; }

?>

Det er klippet og tilrettet fra dette link...

http://www.faqts.com/knowledge_base/view.phtml/aid/12039/fid/51

Men nu falder mine små øjne vist i så jeg...må....hel...zzzz zzzz zzzz
Avatar billede neverknow Nybegynder
29. september 2007 - 07:47 #9
Det ser fint ud johan prøver lige at modificere det du har lavet der lidt.
Avatar billede nielle Nybegynder
29. september 2007 - 09:12 #10
> Vil gerne give dig nogle point johan.o, men nu er de kastet ud jo. :(

Standardløsningen på det problem er at du opretter et nyt spørgsmål her i denne kategori med titlen "point til johan.o".

Husk endeligt at smide et link fra det ene spørgsmål (dvs. et link begge veje) til det andet sådan ar folk kan se hvorfor. :^)
Avatar billede johan.o Nybegynder
29. september 2007 - 11:20 #11
...hmm der er vist lidt 'kuk' i den her...

Det citat som nielle viser det kan jeg ikke finde i nogen post ??!?

Fra jeg har postet min kode, er der kun et svar fra neverknow, hvor han siger han vil kigge på det, og så posten fra nielle.....

Er der noget jeg har misset ?

Mvh. Johan
Avatar billede nielle Nybegynder
29. september 2007 - 12:34 #12
Det ville ikke være første gang at indlæg er forsvundet på mystisk vis ... jeg er rimeligt sikker på at den var herfra. :^$
Avatar billede neverknow Nybegynder
29. september 2007 - 14:05 #13
Det var mig der kom til at poste nogle, ting jeg ikke ville have postet.

Men jeg har fundet en løsning, har brugt noget af koden fra dig og lavet lidt om. Havde før fundet den side du også har fundet uden at jeg fik afprøvet koden. Men nu har jeg lavet følgende.

// class.sendData.php start

<?php

/*
sendToHost giver mulighed for, at sende data til en ekstern url,
der kan enten sendes, som POST eller GET.
*/

class sendData {

  function sendToHost($host, $path, $method, $data) {
      $fp = fsockopen($host, 80);
      fputs($fp, $method." ".$path." HTTP/1.1\r\n");
      fputs($fp, "Host: $host\r\n");
      fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
      fputs($fp, "Content-length: " . strlen($data) . "\r\n");
      fputs($fp, "Connection: close\r\n\r\n");
      fputs($fp, $data);
      fclose($fp);
      return;
  }
}
?>

// class.sendData.php end

Og så selve siden, med form etc.

// smsform.php start

<?php

//if send isset
if($_GET['send']) {
  // Call object sendtohost
  include_once('class.sendData.php');
  $obj = new sendData();

  // Define sendToHost variables
  $host = "www.dinhost.dk";
  $path = "/smsrecieve.php";
  $method = "POST";

  // Define data variables
  $username = "etbrugernavn";
  $password = "enkode";
  $number = urlencode($_POST['number']);
  $message = urlencode($_POST['message']);

  //Make $data string
  $data = "user=".$username."&";
  $data .= "pass=".$password."&";
  $data .= "number=".$number."&";
  $data .= "message=".$message;

  //call sendToHost
  $obj->sendToHost($host, $path, $method, $data); }
//else echo form 
else {
  echo "
  <html>
  <body>
  <form name='smsform' method='POST' action='smsform.php?send=1'>
  <p>Besked : </p>
  <input type='text' name='message' value=''>
  <p>Telefon nummer : </p>
  <input type='text' name='number' value=''>
  <input type='submit' value='Send SMS'>
  </form>
  </body>
  </html>";
}
?>

// smsform.php end

Har tjekket det ved at lave recievesms.php som tager variabler fra post og gemmer dem i et .txt og det virker helt perfekt.

Så tak for hjælpen johan.o.
Avatar billede johan.o Nybegynder
29. september 2007 - 14:12 #14
Velbekommen :)

Mvh. Johan
Avatar billede neverknow Nybegynder
29. september 2007 - 17:22 #15
point finder du herunder johan.o!

http://www.eksperten.dk/spm/798756
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