Unerwartete Ausgabe

bluescreen
Ich habe vor auch mal ein bischen PHP zu lernen und habe jetzt anzufangen mich mit einem Tut einzuarbeiten. Ich habe jetzt folgendes gemacht:

addieren.html
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
<html>
<body>
Bitte tragen Sie zwei Zahlen ein und senden Sie das Formular ab.<br>
<form action = "addieren.php" method = "post">
    Wert 1: <input name = "w1"><p>
    Wert 2: <input name = "w2"><p>
    <input type = "submit">
    <input type = "reset">
</form>
</body>
</html>

und addieren.php
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<html>
<body>
<?php
   $erg = $w1 + $w2;
   echo "Die Summe von $w1 und $w2 ist $erg";
?>
</body>
</html>

Wenn ich jetzt aber addieren.html aufrufe wird zwar das php-script ausgeführt aber es gibt wenn ich 3 und 4 eingebe das aus:
Die Summe von und ist 0

Woran liegt das?
Der Code ist fast wörtwörtlich aus dem Tut übernommen
xampp ist installiert
Hanfling
Safe mode ist bei dir eingeschaltet. Versuchs mal mit $_REQUEST['w1'] oder $_POST['w2'].
Chris Hunter
mus nicht unbdingt safe mode sein. kann auch einfach nur register globals auf off stehen...
egal warum... in dieser art auf Übergabevariabln zugreifen ist sowieso überhaupt nicht gut. auf jeden fall die arrays verwenden die Hanfling angesprochen hat....
Hanfling
Ok, wieder was gelernt. Augenzwinkern Aber warum heißen die dinger eigentlich Array in PHP? ._. Ich mein die Idee ist ja ned neu, aber woanderes heißt sowas überall Hash.
bluescreen
also das mit dem array is wirklich unlogisch. Unter einem Array versteh ich eine art Datenfeld. Naja, es funktioniert noch nicht ganz.
Änderung in addieren.php:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<html>
<body>
<?php
   $erg = $_POST['w1'] + $_POST['w2'];
   echo "Die Summe von $w1 und $w2 ist $erg";
?>
</body>
</html>

bei §_REQUEST ist es das selbe.
Ausgabe bei 3 und 4:
Die Summe von und ist 7
Hanfling
Dann verwende doch mal gültigen HTML Code in deinem <form></form>
Chris Hunter
ne daran liegt es nihct. $w1 und $w2 sind leider in der neuen Version deiner Datei undefiniert. Auch hier musst du $_REQUEST oder $_POST nehmen...
und "array" heißen "die" Arrays eigentlich in jeder Programmiersprache :-D
Hanfling
Zitat:
Original von Chris Hunterund "array" heißen "die" Arrays eigentlich in jeder Programmiersprache :-D

In allen anderen Programmiersprachen haben Arrays numerische Idices. Diese Zugriffsmöglichkeit geht weiter über einen Array hinaus. Sobald man so auf so etwas derart zugreifen kann heißt es normalerweise Hash und ned mehr array. Als Beispiel seien hier mal Perl, Python, Ruby usw. genannt. Selbst Java kennt sowas als Hashmap.
Chris Hunter
ach du willst mir sagen das ein assoziatives array "hash" oder "hashmap" genannt wird?
Also wenn mir jemand hash sagt denke ich zuerst an die Quersumme, dann an Prüfsumme, dann an md5, kryprografie und ganz zum schluss kommt dann erst bei mir(und das auch erst seit heute) ein assoziatives array... trotzdem ist dann aber ein "Hash" in dem sinne wie es hier verwendet wird trotzdem ein array(Datenfeld) oder nicht?
bluescreen
??
meinst du ich soll $_POST in der *.html verwenden?
geht das überhaupt.
Chris Hunter
nein, in der *.php :-D
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<html>
<body>
<?php
   $erg = $_POST['w1'] + $_POST['w2'];
   echo "Die Summe von " . $_POST['w1'] . "  und " . $_POST['w2'] . "  ist $erg";
?>
</body>
</html>
 
daHooligan
Zitat:
Original von Hanfling
Zitat:
Original von Chris Hunterund "array" heißen "die" Arrays eigentlich in jeder Programmiersprache :-D

In allen anderen Programmiersprachen haben Arrays numerische Idices. Diese Zugriffsmöglichkeit geht weiter über einen Array hinaus. Sobald man so auf so etwas derart zugreifen kann heißt es normalerweise Hash und ned mehr array. Als Beispiel seien hier mal Perl, Python, Ruby usw. genannt. Selbst Java kennt sowas als Hashmap.


na ja.... n hash ist da was ganz was anderes....
das ist eben ne andere bezeichnung, aber arrays mit nicht-numerischen indizes ist eigentlich nix außergewöhnliches beim programmieren, mir fällt zwar spontan kein beispiel ein aber das läuft dir überall übern weg.
aber du kannst bei php ja auch ein numerisches array machen, ist ja kein hexenwerk.
Hanfling
Zitat:
Original von Chris Hunter
Also wenn mir jemand hash sagt denke ich zuerst an die Quersumme, dann an Prüfsumme, dann an md5, kryprografie[...]

Bei Kachel, denk ich auch erst an mein Badezimmer, die bittere Realität sieht aber anderes aus...
bluescreen
ah!
lol, ich hab den punkt vergessen...
kein wunder das es ned geht
bluescreen
ok
ich habs getestet und es funzt. Danke für die Hilfe.

p.s.:holt einen moderator zum closen ;-)
Chris Hunter
ich bin MOD :-D Allerdings will ich das HASH-Thema doch noch gerne ausdiskutieren auch wenns offtopic ist.

Und was kann eine kachel denn noch sein? Was ist denn davon die bittere Realität *grübel*
Hanfling
Ich find halt die Bezeichnung nicht so ganz treffend in PHP. Klar kann man es wie einen Array benutzen, aber ein Array ist für mich eine simple aneinanderreihung von Werten auf die man numerisch zugreift. Bei allem weiteren finde ich, das es eher was anderes als bloß ein Array. Den Zugriff per Index hast du auch so bei vielen komplexeren Datenorganistaionsformen (oft bei Linked Lists, bei Vektoren (ich meine nicht die Mathematischen), usw.) und trotzdem würdest du es eher nicht Array nennen, auch wenn man es so benutzen kann. Wie dem auch sei, ich glaub wir kommen eh zu keinem Kompromis in dem Bezug. Augenzwinkern

Kackel ist ein "deutsches" Wort für einen Page Frame. Das wurde irgendwann mal in einem Buch so übersetzt, da dieses Buch eine Übersetzung eines Standardwerkes darstellte, hat dann dieser Begriff irrsinnigerweise weite Verbreitung gefunden.
z.B. http://www.uni-marburg.de/fb12/verteilte...hre/ss08/vl/ti2 (Kapitel 06) Seite 11. Und ja, ich finde soetwas persönlich auch sehr bitter. Zunge raus
bluescreen
kann man bei diesen Hashes auch "mehrdimensionale" erstellen?
so wie bei den arrays in C++. Insgesamt weis ich nich so was ich zu den Thema sagen soll...
Ich mein mein PHP stand an wissen is nicht grad sehr hoch...
daHooligan
Zitat:
Original von bluescreen
kann man bei diesen Hashes auch "mehrdimensionale" erstellen?
so wie bei den arrays in C++. Insgesamt weis ich nich so was ich zu den Thema sagen soll...
Ich mein mein PHP stand an wissen is nicht grad sehr hoch...


hash = repräsentation eines strings i.d.R. durch eine Zahl....
also kurz: nein, das ist ne ganz andere ecke
bluescreen
aber wäre das dann nicht eine enumeration?