Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Variablen ohne <form> übergeben (https://www.delphipraxis.net/43492-%5Bphp%5D-variablen-ohne-form-uebergeben.html)

TheMiller 4. Apr 2005 22:53


[PHP] Variablen ohne <form> übergeben
 
Hallo,

nochmals eine Frage zu PHP. Variablen mittels <form method="post"> zu übergeben ist kein thema. Doch wie kann ich Variablen an eine andere Seite übergeben, wenn diese nicht in dem <form></form>-Tag steht? ISt das überhaupt möglich? Mit Sessions möchte ich allerdings nicht arbeiten...

Danke im Voraus

Jelly 4. Apr 2005 22:56

Re: [PHP] Variablen ohne <form> übergeben
 
Stichwort Session... zu Beginn deiner PHP Seite kannst du Session Variablen registrieren, mittels
Code:
session_start ;
session_register('Varname1') ;
session_register('Varname2') ;
etc.
Danach solltest du auf den folgenden Seite, welche innerhalb der gleichen Session aufgerufen werden, mittels $Varname1 rsp $Varnam2 auf den Variableninhalt zugreifen können.

TheMiller 4. Apr 2005 22:58

Re: [PHP] Variablen ohne <form> übergeben
 
Naja...

wenn's nur mit Sessions geht, dann werde ich sie doch wohl benutzen müssen. Aber ich habe im php-resource gelesen, dass man session_register('ya') nicht mehr benutzen sollte.. warum?!? - Keine Ahnung...

Pr0g 4. Apr 2005 23:24

Re: [PHP] Variablen ohne <form> übergeben
 
Ja, man sollte es nicht nutzen, einfach einmal sesion_start() aufrufen und dann per $_SESSION['der_name'] drauf zugreifen. Guck dir für eine Begründung den Kasten "Achtung" an: Link.


Wie wäre es per Url, also GET-Parameter, wenn du nicht per Session arbeiten willst?


MfG Pr0g

TheMiller 4. Apr 2005 23:31

Re: [PHP] Variablen ohne <form> übergeben
 
Hm, es ist etwas komplizierter.

Ich habe eine MySQL-Tabelle. Diese wird ausgelesen und in Tabellen untereinander eingetragen. Es soll um Reisen gehen (habe ich mir jetzt mal so ausgesucht). Habe jetzt folgenden Code (Css-Styles kommen noch):

Delphi-Quellcode:
<? $result=mysql_query("SELECT * FROM termine WHERE monat LIKE '".$HTTP_POST_VARS["monat"]."'");
           while($row = mysql_fetch_object($result))
             {
             $ziel = $row -> ziel;
            $monat = $row -> monat;
            $vonbis = $row -> vonbis;
            $preis = $row -> preis;
            $tage = $row -> tage;
            $hkat = $row -> hkat;
            $unterkunft = $row -> verpflegung;
            $rbesch = $row -> rbesch;
            $leistung = $row -> leistung;
            ?>
       
       <table border="1" width="100%" bordercolor="#316EAF" cellpadding="0" style="border-style:solid; padding:5 5 5 5">
        <tr>
         <td width="100%" colspan="5"><?php echo $ziel ?></td>
        </tr>
        <tr>
         <td width="40%" align="left"><?php echo $vonbis ?></td>
         <td width="20%" align="center"><?php echo $tage ?> Tage</td>
         <td width="40%" align="right"><?php echo $preis ?> €</td>
        </tr>
        <tr>
         <td width="70%" colspan="2"><?php echo $hkat ?></td>
         <td width="30%"><?php echo $unterkunft ?></td>
        </tr>
        <tr>
         <td width="60%" colspan="2" valign="top" style="text-align:justify; padding:5 5 5 5"><?php echo nl2br($rbesch) ?></td>
         <td width="40%" valign="top" style="text-align:justify; padding:5 5 5 5">[b]Unsere Leistungen: [/b]

<?php echo nl2br($leistung); ?></td>
        </tr>
        <tr bordercolor="#FFFFFF">
         <td>
<form action="reisebuchen.php" method="post">
<input type="submit" value="Reise buchen!"/></form></td>
        </tr>
       </table>
       


       <? }
       ?>
Wenn der Interessen nun auf "Reise buchen!" klickt, sollen die Daten von der ausgewählten Reise nochmal angezeigt werden. Kann ja jetzt nicht mehr die Variable "$ziel" nehmen, da diese ja die letzte Reise in der Tabelle enthält und nicht die, die der User anklickt.

Jetzt wollte ich nach einer Lösung fragen. Ich lerne ja noch, wie ihr wahrscheinlich unschwer erkennen könnt ;-)

Danke

BYe

bigg 4. Apr 2005 23:34

Re: [PHP] Variablen ohne <form> übergeben
 
Du kannst auch versteckte Formulare verwenden.

TheMiller 4. Apr 2005 23:38

Re: [PHP] Variablen ohne <form> übergeben
 
Ja, aber was ist, wenn ich jetzt in einem Monat 5 Reisen habe. Da kann ich doch nicht 35 versteckte Formulare haben. Außerdem, wie registriere ich denn, welchen "Reise buchen!"-Button der User denn überhaupt gedrückt hat?

Airblader 5. Apr 2005 05:01

Re: [PHP] Variablen ohne <form> übergeben
 
Gib den Buttons namen und überprüfe auf isset($_POST['button_name'])
übrigens: HTTP_POST_VARS ist veraltet, nimm lieber die neuere superglobale variable $_POST.

Du brauchst eig. keine 35 Formulare...gib einfach unterschiedliche namen wie xxx_1, xxx_2 und dann yyy_1 und yyy_2

und je nach gedrücktem button holst du dir die elemente mit ner anderen zahl hitnen.
Übrigens: Wenn du auf einen festen string prüfst, nimm doch: WHERE monat = ... und nicht LIKE.

Evtl. könntest du auch auf injections achten :)
(mysql_escape_string())

air

Nisbo 25. Apr 2005 17:56

Re: [PHP] Variablen ohne <form> übergeben
 
Ich weiß nich tob es noch aktuell ist aber haben deine einträge in der table termine keine IDs ?
dann könntest du im <input type="hidden" name="terminid" value="<?php echo $terminid ?>"> mit ins form einfügen

ein eetwas schlechtere methode wäre ein $terminid++ mit einzubauen und das <input type="hidden" name="terminid" value="<?php echo $terminid ?>"> einfügen

bei der weiteren anzeige kannst du dann ja auch ein $count++ mitlaufen lassen und wenn

if($count++ == $_REQUEST['terminid']){
// hier die anzeige ausgeben
}

aber das ist dann halt etwas unsauber

Strophi 25. Apr 2005 20:01

Re: [PHP] Variablen ohne <form> übergeben
 
Hi,

also wenn ich Dich richtig verstehe,

könntest Du folgendes probieren

<?php

header("Location: http://www.host.tld/script.php?var1=val1&var2=val2.........");

?>

so würde ich von einem Script Namen an anderes Script übergeben:

<?php

$vorname='dead';
$name='kennedies';

header("Location: http://www.host.tld/script.php?vorname=$vorname&name=$name");

?>

mfg

strophi


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz