PHP - Übergabe von Variablen

Dieses Thema PHP - Übergabe von Variablen im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von JuliusCaesar, 9. Nov. 2004.

Thema: PHP - Übergabe von Variablen Hi Leute, ich wollte gerade ein Beispiel aus einem Buch testen und habe dafür zwei Dateien geschrieben....

  1. Hi Leute,
    ich wollte gerade ein Beispiel aus einem Buch testen und habe dafür zwei Dateien geschrieben.

    listing1-5.php:
    Code:
    <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN [url]http://www.w3.org/TR/html4/loose.dtd>[/url]
    <html>
    <head>
    <title>Lohnberechnung</title>
    <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
    </head>
    
    <body>
    <form action=listing1-6.php method=post>
    Name:<br>
    <select name=name[]>
    <option>Alex</option>
    <option>Frank</option>
    <option>Katrin</option>
    <option>Steffen</option>
    <option>Denis</option>
    </select><br>
    
    Anzahl Stunden:<br>
    <input type=text name=stunden><br>
    
    Lohn pro Stunde:<br>
    <input type=text name=lohn><br>
    
    Arbeitgeber:<br>
    <select name=arbeitgeber[]>
    <option>McBurger</option>
    <option>Kleiner Wok</option>
    <option>Mr. Pommes</option>
    <option>Brötchen de Luxe</option>
    <option>Pizza & More</option>
    </select><br><p>
    <input type=submit name=go value=Berechnen>
    </form>
    </body>
    </html>
    listing1-6.php:
    Code:
    <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN [url]http://www.w3.org/TR/html4/loose.dtd>[/url]
    <html>
    <head>
    <title>Ergebnis der Lohnberechnung</title>
    <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
    </head>
    
    <body>
    <?php
    foreach($name as $person)
    {echo Hallo $person,<br><p>;
    }
    echo du hast $stunden Stunden bei ;
    foreach($arbeitgeber as $wo_denn)
    {echo $wo_denn gearbeitet.<br><p>;
    }
    $summe = $stunden * $lohn;
    echo Dabei hast du $summe ? verdient.;
    ?>
    </body>
    </html>
    Wenn ich aber auf Berechnen klicke, kommt folgende Meldung:
    Kann mir einer sagen, woran das liegt? Ich benutze IE 6 mit SP2, JanaServer2 und PHP 5.01

    Ändere ich listing1-6.php in:
    Code:
    <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN [url]http://www.w3.org/TR/html4/loose.dtd>[/url]
    <html>
    <head>
    <title>Ergebnis der Lohnberechnung</title>
    <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
    </head>
    
    <body>
    <?php
    foreach($_POST[name] as $person)
    {echo Hallo {$person},<br><p>;
    }
    echo du hast {$_POST[stunden]} Stunden bei ;
    foreach($_POST[arbeitgeber] as $wo_denn)
    {echo {$wo_denn} gearbeitet.<br><p>;
    }
    $summe = $_POST[stunden] * $_POST[lohn];
    echo Dabei hast du $summe ? verdient.;
    ?>
    </body>
    </html>
    ab - der Vorschlag stammt von einem anderen Forum, aber die melden sich nimmer :( - bekomme ich die Meldung trotzdem.
     
  2. Hi

    Der zweite Vorschlag sieht eigentlich richtig aus, wenn du die Übung aber genau so umsetzten möchtest ändere in deiner php.ini mal register_globals = on
    Danach den Apache neustarten.

    Gruß, Michael
     
  3. Gilt das mit der php.ini auch für den zweiten Vorschlag?
    Denn der funktioniert ja auch nit. :(

    Ich hab zwar keinen Apache, sondern JanaServer 2, aber ich werd das jetzt trotzdem mal ändern. ;)
     
  4. Hab das jetzt geändert, aber der Effekt ist bei beiden Lösungsvorschlägen der Datei listing1-6.php gleich Null.
    Ich bekomme weiterhin die Meldung. :'(

    Liegt das an meinem JanaServer? Aber die ganzen PHP-Foren (WBB-Board oder so ähnlich), die ich zu Testzwecken installiert hatte, die sind ja auch gelaufen. ???
     
  5. Das Problem liegt wohl am JanaServer 2. :(
    Ich habe jetzt den Apache installiert und siehe da, es funktioniert. 8)

    Trotzdem danke für die Hilfe.
     
  6. Pfui Reitzi, :D

    wie kann man nur dazu raten mit Register Globals On zu arbeiten??? Sowas tut man nicht, man zeigt lieber wie das ganze mit Register Globals off funktioniert! ;)
     
  7. :'(Genau!!

    REGISTER_GLOBALS gehören AUS.

    Wenn du in den Select-Boxen eh kein MULTIPLE zulassen willst, dan lass bei dem namen die [] weg.
    Damit sparst du dir auch die foreach-Schleifen. (Unnötig wie ein Kropf)
    Ausserdem solltest du erstmal im PHP-Script abfragen ob überhaupt der SUBMIT-Button gedrückt wurde.
    Damit es einfacher wird habe ich es dir mal in einem Script zusammengefasst.
    Allerdings solltest du deine Daten auch überprüfen ob sie auch richtig eingegeben wurden.

    Code:
    <?
    if($_POST['go']) {
        $summe = $_POST['stunden'] * $_POST['lohn'];
        echo <p>Hallo . $_POST['name'] .</p>
               .<p>du hast . $_POST['stunden'] . Stunden bei . $_POST['arbeitgeber']. gearbeitet.</p>
               .<p>Dabei hast du . $summe . € verdient.</p><br>;
    }
    ?>
    
    <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN [url]http://www.w3.org/TR/html4/loose.dtd>[/url]
    <html>
    <head>
    <title>Lohnberechnung</title>
    <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
    </head>
    
    <body>
    <form action= method=post>
    Name:<br>
    <select name=name>
       <option>Alex</option>
       <option>Frank</option>
       <option>Katrin</option>
       <option>Steffen</option>
       <option>Denis</option>
    </select><br>
    
    Anzahl Stunden:<br>
    <input type=text name=stunden><br>
    
    Lohn pro Stunde:<br>
    <input type=text name=lohn><br>
    
    Arbeitgeber:<br>
    <select name=arbeitgeber>
       <option>McBurger</option>
       <option>Kleiner Wok</option>
       <option>Mr. Pommes</option>
       <option>Brötchen de Luxe</option>
       <option>Pizza & More</option>
    </select><br><p>
    <input type=submit name=go value=Berechnen>
    </form>
    </body>
    </html>
    
     
  8. Wenn du dann schon mit Verbesserungen anfängst dann denk mal drüber nach ob du nicht mit $_REQUEST anstatt mit $_POST arbeiten solltest. Damit brauchst du dir nämlich keinen Kopf drüber machen wie die Daten übergeben werden (ob mit POST/GET oder COOKIE).
     
  9. 8)OK,

    Auf einer Seite will ich dir Recht geben.
    Einfacher ist es natürlich wen du nur mit $_REQUEST schaffst, aber da ich das Beruflich mache, kommst du manchmal nicht umhin es zu differenzieren.
    Denk einfach mal darüber nach, wen du z.B ein Login-Script schreibst und du willst nicht, dass die Userdaten per URL weitergegeben werden.
    Da ist ein $_POST Abfrage schon sinnvoller. Daher habe ich es mir nun mal so angewöhnt.

    Aber wie gesagt im Prinzip ist die Lösung per $_REQUEST die einfachere.

    Konfuzius sagte schon:
    Alle Wege die zum Ziel führen sind richtig.

    Gruss

    ;DConny
     
  10. Danke für die Lösungen leute.

    Dann war es ja doch gut, dass ich vergessen hatte, zu erwähnen, dass sich das Problem eigentlich erledigt hatte.
    Die ganze Sache war ein Problem des JanaServer 2. Als ich den Apache installiert hatte, ging das Script einwandfrei. ;)
     
Die Seite wird geladen...

PHP - Übergabe von Variablen - Ähnliche Themen

Forum Datum
Variablenübergabe an PHP Script Webentwicklung, Hosting & Programmierung 11. Jan. 2003
WLAN, stets stärksten Acessp. - übergabe des Clients? Netzwerk 17. Dez. 2015
Batch - Auswertung einer optionalen Parameterübergabe Webentwicklung, Hosting & Programmierung 7. Sep. 2009
Parameterübergabe zwischen div. HTML-Documenten Windows XP Forum 13. Feb. 2009
Datei öffnen mit - Parameterübergabe Windows 95-2000 17. Juni 2007