Webdesign in Siegen

2+2 = 0 ?

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

2+2 = 0 ?

Beitragvon Summernoon am 13.02.2008, 16:07

Habe mal versucht werte aus einem Formular zu addieren leider bekomme ich etwas falsches. Geht es überhaupt variablen zu benutzen die nicht in einer Datenbank sind ?

HTML CODE
Code: Alles auswählen
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>Test umrechnen</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  </head>
  <body>
    <form action="umrechnen.php" method="post">
  <table>
    <tr>
      <td>Euro</td>
      <td><input type="text" name="euro" size="20" maxlength="20" /></td>
    </tr>
    <tr>
      <td>Dollar</td>
      <td> <input type="text" name="dollar" size="20" maxlength="20" /></td>
    </tr>
    <tr>
      <td></td>
      <td><input type="submit" name="gesendet" value="Umrechnen" /></td>
    </tr>
  </table>
</form>
  </body>
</html>


PHP CODE
Code: Alles auswählen
<?php
if(isset($_POST['gesendet']))
{
  $ergebnis = $euro+$dollar;
  echo "$ergebnis";
}
?>


mfg
Summernoon
____________________________________
Warum stimmt die Zeit des Beitrages nicht ? Habe den Beitrag eine gute Stunde früher geschrieben !!
Summernoon
Mitglied
 
Beiträge: 157
Registriert: 06.11.2007

Re: 2+2 = 0 ?

Beitragvon Basti am 13.02.2008, 16:17

Die Werte aus dem Formular werden alle als POST-Variablen verschickt bzw. bei PHP in dem entsprechenden Array "gespeichert", deswegen auch das Formularattribut method="post".

Deshalb funktioniert es in der Regel auch nicht, einfach die Namen der Formularfelder zu verwenden, zumindest nicht bei register_globals off, was auch sinnvoll ist.
Den Submit-Button rufst du ja auch schon auf diese Weise ab.

Code: Alles auswählen
<?php

if(isset($_POST['gesendet']))
{
  $ergebnis = ($_POST['euro']+$_POST['dollar']);
  echo $ergebnis;
}

?>


Beim Ausgeben von einzelnen Variablen musst du übrigens nicht zwangsweise Anführungsstriche setzen.
Benutzeravatar
Basti
Moderator
 
Beiträge: 1889
Registriert: 15.06.2006
Wohnort: Rheinbreitbach

Re: 2+2 = 0 ?

Beitragvon Summernoon am 13.02.2008, 16:22

Habe jetzt nicht ganz verstanden warum deine Lösung funktioniert ?!

Muss man einfach nur angeben das die Werte per Post vermittelt worden sind, damit die Zahlen wieder "entschlüsselt" werden bevor man damit rechnet ?

mfg
Summernoon
Summernoon
Mitglied
 
Beiträge: 157
Registriert: 06.11.2007

Re: 2+2 = 0 ?

Beitragvon Basti am 13.02.2008, 16:46

Nein, mit Verschlüsselung oder so hat das nichts zu tun.

Vielmehr gibt es eben in PHP verschiedene "globale Arrays", in denen Variablen gespeichert werden. Andere Beispiele wären $_GET (Variablen, die per URL übergeben werden, z.B. "index.php?variable=wert") und $_SESSION, die für den Inhalt einer erzeugten Session stehen.

Dies ist bei der Erstellung von diversen Scripts sehr wichtig, da man zum einen genau festlegen kann, wie die Werte übergeben werden müssen und zum anderen auch nicht so leicht Variablen Manipulationen wie bei register_globals on möglich sind.
Benutzeravatar
Basti
Moderator
 
Beiträge: 1889
Registriert: 15.06.2006
Wohnort: Rheinbreitbach

Re: 2+2 = 0 ?

Beitragvon Labrar am 13.02.2008, 16:57

Abgesehen davon wie Basti schon sagte wird bei dir reister_Globals off sein. Was auch gut so ist.
Vor ein paar Jahren noch hatte man fast überall register_Globals auf on. Mit dieser Einstellung würde dein Script vermutlich auch funktionieren. Der Nachteil daran war aber dass jede Nase deine Scripte über die Adressleiste manipulieren konnte.

Machs dir einfach und gewöhn es dir einfach an. Dann geht nix schief.

Alle Variable die du aus Formularbestandteilen beziehst (Textfeld, Textberech, Select, Schaltflächen usw usw) einfach mit dem entsprechenden Inator aufrufen.

Also $_GET['meintxetfeld'] oder $_POST['meintextfeld']
Alle Variablen die du frei erzeugst wie in deinem Fall $ergebniss kannst du auch(bzw musst du sogar) weiterhin so schreiben.
So. Das war ein kleiner Crashkurs über wie schreibe ich mit register_globals off :lol:
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Seelig sind die Blöden. Denn sie müssen sich nicht für Ihre Dummheit rechtfertigen.
Labrar
Mitglied
 
Beiträge: 382
Registriert: 11.04.2007
Wohnort: Ludwigsburg


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: Christian Trick und 2 Gäste