Avatar billede morten_21 Nybegynder
05. juni 2004 - 20:46 Der er 14 kommentarer og
1 løsning

Overføre variable

Godaften :)

Jeg roder med en bestillingsside, hvor kunden først udfylder en formular, derefter godkender hans bestilling, og derefter modtager en kvittering samtidig med at selve ordren bliver sendt til ordremodtagelsens mailbox.

Jeg har en HTML form der indsamler data, order.php. Dem sender jeg videre til en ny side, bestil.php, vha. method="GET", og henter dem ud ved at bruge $Navn=$_GET['Navn']; for alle 10 variable, så kunden kan se og validere hvad han har indtastet. Herefter burde kunden kunne trykke på en knap/link, i stil med "Godkend bestilling", og derefter bliver variablene sendt videre til en ny side, mailorder.php, hvor mail() ordner tingene.

Men når jeg nu har hevet alle data fra FORM'en ud på bestil.php, skal jeg så virkelig til at bruge et link som "mailorder.php?id=$id&type=$type&navn=$navn&adresse=$adresse..." osv. osv. for alle variable?
Har kigget på funktionen @extract, men det er jo lidt modsat af hvad jeg skal bruge..

Gode idéer modtages - og om det er høkermetoder er ligemeget.. Det skal nemlig virke inden weekenden er ovre :/

På forhånd tak!
Avatar billede riversen Nybegynder
05. juni 2004 - 20:52 #1
du kan jo evt. bruge post istedet for get. Du kan gemme variablerne i hidden fields for at føre dem videre... alternativt benyt sessions
Avatar billede morten_21 Nybegynder
05. juni 2004 - 20:59 #2
Hvad er fordelen i post kontra get?

Sessions er right out.. Det når jeg ikke at sætte mig ind i.
Avatar billede dennismp Nybegynder
05. juni 2004 - 21:15 #3
kan du ikke bare bruge  $_SERVER['QUERY_STRING']; ?
Avatar billede morten_21 Nybegynder
05. juni 2004 - 21:33 #4
dennismp>
Aner det ikke - hvordan virker det?
Avatar billede dennismp Nybegynder
05. juni 2004 - 21:36 #5
hvis du kalder:
domæne.com/phpinfo.php?a=1&b=2

så er $_SERVER['QUERY_STRING'] = 'a=1&b=2';
Avatar billede morten_21 Nybegynder
05. juni 2004 - 21:40 #6
Ok - men jeg kan ikke umiddelbart overskue hvordan det løser problemet.

Hvis nogen har nogle mere håndgribelige eksempler er jeg meget lydhør.
Avatar billede dennismp Nybegynder
05. juni 2004 - 22:06 #7
<a href="mailorder.php?<?=$_SERVER['QUERY_STRING']?>">...</a>
Avatar billede riversen Nybegynder
05. juni 2004 - 22:15 #8
post skjuler variabler fra adresselinien. Og har ikke den samme begrænsning på længde som adresselinien har
Avatar billede dennismp Nybegynder
05. juni 2004 - 22:30 #9
morten_21; jeg vil gerne hjælpe mig, men du må være lidt mere konkret. Jeg aner ikke hvad jeg skal sige til din kommentar da jeg slet ikke ved om
1) jeg har forstået dit problem rigtigt
2) hvad der er galt med løsningsforslaget.

.. du giver mig ikke meget at arbejde med.
Avatar billede morten_21 Nybegynder
05. juni 2004 - 22:40 #10
Her kommer noget at arbejde med - men det er jo heller ikke nemt at vide om jeg kan bruge $_SERVER['QUERY_STRING'] når jeg ikke ved hvad det gør ;-)

<a href="mailorder.php?<?=$_SERVER['QUERY_STRING']?>">Godkend</a> virker ikke. Siden hvor linket er på, er helt blank - og når jeg comment'er linjen ud, kommer resten fint.

Jeg tror du har forstået problemet rigtigt. Jeg skal ha' lavet overført en stribe "2.generations" variable, og vil helst undgå at bruge et link som blabla.php?id=$id&navn=$navn&adresse=$adresse.. osv osv.

Jeg er ikke for skrap til php så forklar det gerne i noob-mode.
Avatar billede dennismp Nybegynder
05. juni 2004 - 22:55 #11
$link = 'blabla.php?';

$first = true;
foreach($_GET as $key => $val) {
  if(!$first)
    $link .= '&';
  $link .= urlencode($key) . '=' . urlencode($val);
  $first = false;
}

print "Link: $link";

prøv dette.
Avatar billede morten_21 Nybegynder
05. juni 2004 - 23:04 #12
Kanon - det virker jo. Den returnerer også "Næste", hvilket er værdien af min Submit knap :) Men det er jo også ganske ligemeget!

Jeg takker og bukker.
Avatar billede morten_21 Nybegynder
05. juni 2004 - 23:10 #13
Smid et svar og du får dine point :)
Avatar billede dennismp Nybegynder
05. juni 2004 - 23:42 #14
Hvis din submitknap har name="submit", så skulle den gerne blive ignoreret nu.

$link = 'blabla.php?';

$first = true;
foreach($_GET as $key => $val) {
  if(!$first)
    $link .= '&';
  if( $key != 'submit' ) {
    $link .= urlencode($key) . '=' . urlencode($val);
    $first = false;
  }
}

print "Link: $link";
Avatar billede morten_21 Nybegynder
05. juni 2004 - 23:58 #15
Smukt. Tak igen.
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