Avatar billede AlexanderDK Nybegynder
17. juli 2009 - 16:38 Der er 27 kommentarer

Forms output = url

Hej.

Jeg er en newbie til php og har brug for hjælp.

Jeg skal lave en php form hvor man skal kunne tilføje et mobilnummer og den vej igennem få et link som dette når man trykker submit:

http://domæne.com/12345678&src=1

Tallene skal være mobilnummeret og de skal kaldes samlet som en url?

Hvordan gør man det?

/A
Avatar billede repox Seniormester
17. juli 2009 - 17:29 #1
Lav en HTML form med et text input med navnet mobilNummer og send det til en side med nedenstående indhold.

<?php

$mobilNummer = $_POST["mobilNummer"];
$url = "http://example.org/".$mobilNummer."&src=1";
echo $url;

?>
Avatar billede AlexanderDK Nybegynder
17. juli 2009 - 18:00 #2
Hmm, kan ikke helt få det til..

<form method="POST"  action="??">
<div class="form-box">
<input type="text" class="form-text" value="mobilNummer:" />
<input class="form-submit" type="submit" value="Send" />
</div>
</form>

Det der skal ske er at der skal sendes en sms til ens mobilnummer, så jeg vil ikke have at der bliver loadet en hel ny side. bare at http://domæne.com/12345678&src=1 bliver kaldt.
Avatar billede kpdk Nybegynder
17. juli 2009 - 18:28 #3
Læg nedenstående i én fil og prøv igen :)

<?php
if( $_POST["BtnSubmit"] ) {
    echo "http://example.com/" . $_POST["TbxMobil"] . "&src=1";
}
?>

<form method="POST"  action="">
<div class="form-box">
<input type="text" class="form-text" value="mobilNummer:" name="TbxMobil" />
<input class="form-submit" type="submit" value="Send" name="BtnSend" />
</div>
</form>
Avatar billede nemlig Professor
17. juli 2009 - 18:32 #4
Bare en lille rettelse i den sidste kode:

if( $_POST["BtnSubmit"] ) {

skal være

if( $_POST["BtnSend"] ) {
Avatar billede AlexanderDK Nybegynder
17. juli 2009 - 18:53 #5
Ja, så kommer den rette url, men den bliver kun postet som text ovenover formen.. linket bliver ikke kaldt.
Avatar billede kpdk Nybegynder
17. juli 2009 - 19:11 #6
Korrekt, en staveplade fra min side :)
Hvis du vil redirecte, så kan du enten escape PHP og lave det som et javascript (location.href="dinurl") eller bruge PHP's header() funktion. Bemærk, at hvis du vil bruge header skal du ikke have outputtet noget som helst.

Header bruges som f.eks:
header("Location: http://example.com");

I mit eksempel er det bare en URL, du kan sagtens redirecte til en URI også (som er det, du ønsker).

Javascriptet, om du foretrækker, er lige så enkelt:

<script type="text/javascript">
  location.href="http://example.com";
</script>

Det skal bare bygges ind i din nuværende, og så er du kørende.
Avatar billede nemlig Professor
17. juli 2009 - 19:14 #7
Er det ikke fordi, der mangler <a href......>.

Noget i retning af :

echo "<a href=http://example.com/" . $_POST["TbxMobil"] . "&src=1>http://example.com/" . $_POST["TbxMobil"] . "&src=1</a>";
Avatar billede AlexanderDK Nybegynder
17. juli 2009 - 21:42 #8
@ kpdk
Det giver ikke helt mening for mig.. Kan du uddybe??

@ nemlig
Nix..Det virker ikke??
Avatar billede kpdk Nybegynder
17. juli 2009 - 21:38 #9
Det kommer an på om den automatisk skal redirecte eller om brugeren selv skal klikke. Hvis det sidste er tilfældet er et alm. link (<a>) fint som Nemlig er inde på.

Du kan evt. også lave en META-redirect.
http://webmaster.indiana.edu/tool_guide_info/refresh_metatag.shtml
Avatar billede nemlig Professor
17. juli 2009 - 23:46 #10
Dette her virker hos mig, men kun som et link:

<?php
if( $_POST["BtnSend"] ) {
echo "<a href=http://example.com/" . $_POST["TbxMobil"] . "&src=1>http://example.com/" . $_POST["TbxMobil"] . "&src=1</a>";
}
?>

<form method="POST"  action="">
<div class="form-box">
<input type="text" class="form-text" value="mobilNummer:" name="TbxMobil" />
<input class="form-submit" type="submit" value="Send" name="BtnSend" />
</div>
</form>
Avatar billede nemlig Professor
18. juli 2009 - 00:06 #11
Du skriver øverst et eksempel på et link:

http://domæne.com/12345678&src=1

Er du sikker på, at det er korrekt syntax. Det virker forkert på mig.

Er mobilnummeret "12345678" en parameter ligesom "1" skal der vel defineres et navn på parameteren, fx. http://domæne.com/index.php?nr=12345678&src=1

Jeg synes, det ser forkert ud, men det kan selvfølgelig også være mig, der ikke er helt med.

Ellers kan du måske oplyse, hvad filnavnet er? Er det samme fil, som skal indlæses eller ?????
Avatar billede nemlig Professor
18. juli 2009 - 00:09 #12
Her er så et eksempel, der tager udgangspunkt i kpdk's forslag ovenfor:

<?php
if(isset($_POST['BtnSend']))
{
    header('Location: http://example.com/' . $_POST['TbxMobil'] . '&src=1');
    exit();
}

?>

<form method="POST"  action="">
<div class="form-box">
<input type="text" class="form-text" value="mobilNummer:" name="TbxMobil" />
<input class="form-submit" type="submit" value="Send" name="BtnSend" />
</div>
</form>
Avatar billede AlexanderDK Nybegynder
20. juli 2009 - 18:55 #13
Undskyld stilheden.

nemlig: Det var jo det jeg ville.. Stik mig et svar..

Men kan det lade sig gøre at kalde funktionen og bare modtage beskeden "tak for ..." i linien over formularen uden at man ryger videre til en ny side??

Vh Alexander
Avatar billede nemlig Professor
20. juli 2009 - 21:16 #14
Nu er jeg i tvivl om, hvad du har gjort, da der ligger flere forslag.
Prøv lige og vis mig din kode her.
Avatar billede AlexanderDK Nybegynder
20. juli 2009 - 23:36 #15
Sådan her..

Og tak :)

<?php
if(isset($_POST['BtnSend']))
{
    header('Location: http://prtpl.com/ext/smsrecords/download.php?msisdn=' . $_POST['TbxMobil'] . '&src=1');
    exit();
}

?>

<form method="POST"  action="">
<div class="form-box">
<input type="text" class="form-text" value="mobilNummer:" name="TbxMobil" />
<input class="form-submit" type="submit" value="Send" name="BtnSend" />
</div>
</form>
Avatar billede nemlig Professor
20. juli 2009 - 23:52 #16
Jeg ved ikke om jeg helt har forstået dig. Men du vil ikke til en ny side, men blot give en kvittering på samme side.
Så er det koden i #10, som jeg gør brug af :

<?php
if( $_POST["BtnSend"] ) {
echo "<a http://prtpl.com/ext/smsrecords/download.php?msisdn=" . $_POST["TbxMobil"] . "&src=1>http://prtpl.com/ext/smsrecords/download.php?msisdn=" . $_POST["TbxMobil"] . "&src=1</a>";
echo "<br>Tak for .....<br>";
}
?>

<form method="POST"  action="">
<div class="form-box">
<input type="text" class="form-text" value="mobilNummer:" name="TbxMobil" />
<input class="form-submit" type="submit" value="Send" name="BtnSend" />
</div>
</form>
Avatar billede nemlig Professor
20. juli 2009 - 23:54 #17
Hov - der var en fejl i koden - prøver igen:

<?php
if( $_POST["BtnSend"] ) {
echo "<a href=http://prtpl.com/ext/smsrecords/download.php?msisdn=" . $_POST["TbxMobil"] . "&src=1>http://prtpl.com/ext/smsrecords/download.php?msisdn=" . $_POST["TbxMobil"] . "&src=1</a>";
echo "<br>Tak for .....<br>";
}
?>

<form method="POST"  action="">
<div class="form-box">
<input type="text" class="form-text" value="mobilNummer:" name="TbxMobil" />
<input class="form-submit" type="submit" value="Send" name="BtnSend" />
</div>
</form>
Avatar billede nemlig Professor
20. juli 2009 - 23:56 #18
Det er i øvrigt næsten den kode, som kpdk i #3 bidrog med.
Kpdk kom først, så du kan bare give ham pointene.
Avatar billede AlexanderDK Nybegynder
21. juli 2009 - 08:02 #19
Ok så skal kpdk give et svar..

Man bliver stadig smidt over til en ny side, når man trykker send
Avatar billede nemlig Professor
21. juli 2009 - 08:16 #20
Koden jeg skriver i #17 smider dig ikke på en ny side, genindlæser den samme side med inputformularen. Øverst vil stå et link og en kvittering.
Avatar billede AlexanderDK Nybegynder
21. juli 2009 - 08:40 #21
Så forstår jeg ikke hvorfor den gør som den gør.

Her er link til hvor den er http://smsrecords.dk/?q=omspillet

(midterste box i venstre side)
Avatar billede nemlig Professor
21. juli 2009 - 11:14 #22
Det gør jeg heller ikke, da jeg ikke kan se hele koden.
Noget tyder på, at du har nogle valideringer på input-feltet, og at det er i denne validering, at der sker noget forkert.

Du er velkommen til at sende koden til min email (se min profil), og jeg skal kigge på det sidst på eftermiddagen / aften.
Du kan selvfølgelig også smide koden her.

Og det du ønsker er, at der blot skal stå en kvittering, fx. lige ovenfor inputfeltet, hvor mobilnr. indtastes.
Avatar billede AlexanderDK Nybegynder
21. juli 2009 - 13:36 #23
Sitet er lavet i drupal, så jeg kan ikke hente al koden frem til desværre.

Der burde ikke være nogle validering, for det er bare lavet som en standard Block hvor jeg har lagt et form element ind.

Når jeg prøver din kode for sig selv, så virker det heller ikke rigtigt.. http://www.ideministeriet.eu/test.php..

Mange tak for besværet, men jeg lukker den her.. Jeg må betale mig fra det.. :-)
Avatar billede nemlig Professor
21. juli 2009 - 16:47 #24
Prøv lige at ændre

<form method="POST"  action="">

til

<form method="POST">

Jeg kender ikke drupal.
Men der er uden tvivl valideringer i din kode.
Scritet tjekker input, fx. om det er et mobilnr., der er indtastet.
Du kan jo prøve at indtaste tekst eller bare klikke på knappen uden indtastninger.
Avatar billede AlexanderDK Nybegynder
21. juli 2009 - 16:52 #25
Hej Jeg har løst det..

Her er den

<?php
if( $_POST["BtnSend"] ) {
echo "<script type=\"text/javascript\">window.location=\"http://prtpl.com/ext/smsrecords/download.php?msisdn=" . urlencode($_POST["TbxMobil"]) . "&src=1&return=".urlencode("http://smsrecords.dk/?q=omspillet")."\";</script>";
}


if($_GET['status'] == "OK"){
echo "<br>Der er sendt en sms til din mobil<br>";
} else if($_GET['status'] == "ERROR"){
echo "<br>Der opstod en fejl, kontrollerer telefonnummeret og prøv igen<br>";
}
?>

<form method="POST"  action="">
<div class="form-box">
<input type="text" class="form-text" value="mobilNummer:" name="TbxMobil" />
<input class="form-submit" type="submit" value="Send" name="BtnSend" />
</div>
</form>
Avatar billede AlexanderDK Nybegynder
21. juli 2009 - 16:52 #26
Med hjælp fra en anden..
:-)
Avatar billede nemlig Professor
30. juli 2009 - 12:16 #27
Husk at lukke spørgsmålet og vil du tildele point, må du lige bede om at der lægges et svar af dem, som skal have 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