Array hat keine Daten mehr

quidnovi

Erfahrenes Mitglied
Hallöle

Man möge es mir nachsehen, wenn ich bei der Recherche in diesem Forum die Lösung meines Problemes überlesen habe (vielleicht versteh' ichs aber auch nicht). Gegoogelt hab' ich auch - nix wirklich verwertbares.

Die Daten eines Eingabeformulares werden in der Datei "berechnung.php" verarbeitet und in ein Array geschrieben. Die Ausgabe erfolgt in einem anderen Script in der ich die Datei "berechnung.php" include. Das funktioniert ja auch, aber nur in diesem einen Script. Wenn ich nun diese "berechnung.php" in ein weiters Script include, bekomme ich über den Befehl : error_reporting(E_ALL);
folgende Fehlermeldung:

Notice: Use of undefined constant breite - assumed 'breite' in ...

Aufgrund dieser Meldung nehme ich mal an, daß das Array keine Daten mehr hat, aber wieso?

Ich nehme an, das werden Basics sein, aber ich werde aus meinen Büchern auch nicht schlauer.

Hoffe daß sich jemand findet der einem Anfänger den Grund nennen kann.

danke im voraus
quidnovi

p.s.: Muß gestehen, daß ich bei den Arrays nicht sehr bewandert bin.
 
haste vielleicht auch ein bisschen Quellcode?

also zumindest für mich ist eine Ferndiagnose immer so schwer :-)
 
wenn du aus einem array nicht schlau wirst, lass es dir mal anzeigen bzw. ausgeben. print_r($array); hilft da schon etwas weiter. denn dadurch erkennst du ob was da ist oder nicht. wenn nicht liegt das prob wohl schon noch wo anderst.

http://de.php.net/manual/de/function.print-r.php

und um zu wissen wo ein fehler liegt ist auch require ne gute hilfe. weil da aufgehört wird, wo das problem ist. im gegensatz zu include.

http://de.php.net/manual/de/function.require.php

weiter denken, das wird schon...............
 
ja, gern. Also:

berechnung.php:

PHP:
           $lmb = $lmb;
	   $lmh = $lmh;
	   $x1 = (($lmb -110) /2);
	   $x2 = (($lmb -110) /3);
	   $dgb = ($lmb - 130);
	   $ls = (88 + ($lmb - 110) + ($lmb -110) +88);
	   $tbb = ($lmb + 66);
	   $tbh = ($lmh +22);
	   $gdt = $gdt;
	   
       $array['breite'] = $lmb;
       $array['hoehe'] = $lmh;
       $array['klemmhalterabstand1'] = $x1;
       $array['klemmhalterabstand2'] = $x2;
       $array['durchgangsbreite'] = $dgb;
       $array['laufschiene'] = $ls;
       $array['tuerblattbreite'] = $tbb;
       $array['tuerblatthoehe'] = $tbh;
       $array['glasdicketuer'] = $gdt;

Diese Daten werden dann nach dem includen in einem weiteren Script ausgegeben.
ein kleiner Auszug:

Code:
<form action="../zeichnungen/bohr_anl1.php" method="post" name="zeichnung">
	                 Lichtes Breitenmass: <? echo $array[breite]; ?> mm

in der "...bohr_anl1.php" wird nun die "berechnung.php" wiederum includet:


PHP:
include ('../include/berechnung_anlagentyp_1.php');

error_reporting(E_ALL);

echo $array[breite];

Und nun gibt er mir nüscht mehr aus.

Vielleicht hilft dir das etwas

quidnovi
 
hi "saila"

Hab' jetzt Deine Ratschläge befolgt:

Also mit "print_r" habe ich festgestellt, dass die meisten Daten fehlen, die vorhandenen Unsinn ergeben.

Mit "require" schreibt er mir so einiges an Fehlermeldungen die ich erst analysieren muß.

Hab' Dank, weiß nun wie ich mir die Nacht um die Ohren schlagen kann :-)

vorerst Dank auch an "shutdown"

mfg
quidnovi
 
Du musst den Schlüsselnamen in Anführungszeichen setzen....ansonsten wird dort eine Konstante erwartet...was auch die Fehlermeldung besagt.
also statt
echo $array[breite];
...so:
echo $array['breite'];
....beim Füllen des Arrays hast du es ja richtig gemacht:)
 
Hab' s nun so gemacht , das Arrary hat aber trotzdem keine Daten mehr.

Der Befehl
PHP:
print_r ($array);
zeigt folgendes an:

Array ( [breite] => [hoehe] => [klemmhalterabstand1] => -55 [klemmhalterabstand2] => -36.666666666667 [durchgangsbreite] => -130 [laufschiene] => -44 [tuerblattbreite] => 66 [tuerblatthoehe] => 22 [glasdicketuer] => )

Die Angaben die das Array ausgibt ergibt sich aus den Berechnungsformeln.

Die Daten sind nur einmal verfügbar.

Wo kann mein Fehler liegen?

Hüülfe!

quidnovi
 
Hab' jetzt eine Probe gestartet:

Vom Eingabeformular direkt auf "...bohr_anl1.php", und erhalte das gleiche Ergebnis.
In der Ausgabe dieses Scripts habe ich die Daten, wenn ich aber dann mit

<form action="../berechnungen/berechnung_anlagentyp_1.php" method="post" name="berechnung">

auf dieses angegebene Script verlinke, ist das Array leer. Ist etwa der "<form...>" Befehl falsch?

Sieht so aus:


PHP:
include ('../include/berechnung_anlagentyp_1.php');

error_reporting(E_ALL);

print_r ($array);

require ('../include/berechnung_anlagentyp_1.php');

echo '<form action="../berechnungen/berechnung_anlagentyp_1.php" method="post" name="zeichnung">';
echo $array['breite'];
usw.
echo'<input type="submit" value="link">';
echo '</form'>';

Is doch nicht falsch, oder?
 
Dein Problem sieht so aus:


$lmb = $lmb;
$lmh = $lmh;

Wie soll da was in dem Array stehen, wenn du es gar nicht füllst?
 
Zuletzt bearbeitet:
Gott zum Gruße "bfsdasauge"

Hab' mich vielleicht mißverständlich ausgedrückt.
Sobald ich die Daten vom Eingabeformular abschicke, füllt sich das Array . Nur wenn ich diese Daten ein zweitesmal verwenden möchte sind keine mehr da - das ist des "Pudels Kern".

Nichts desto trotz hab' ich

PHP:
#$lmb = $lmb;
#$lmh = $lmh;
$x1 = (($lmb -110) /2);
$x2 = (($lmb -110) /3);
$dgb = ($lmb - 130);
$ls = (88 + ($lmb - 110) + ($lmb -110) +88);
$tbb = ($lmb + 66);
$tbh = ($lmh +22);
 #$gdt = $gdt;

$array['breite'] = $lmb;
$array['hoehe'] = $lmh;
$array['klemmhalterabstand1'] = $x1;
$array['klemmhalterabstand2'] = $x2;
$array['durchgangsbreite'] = $dgb;
$array['laufschiene'] = $ls;
$array['tuerblattbreite'] = $tbb;
$array['tuerblatthoehe'] = $tbh;
$array['glasdicketuer'] = $gdt;

mal deaktiviert, schaut aber dann ganz gleich aus. Im ersten Script erhalte ich über
PHP:
echo $array['breite'];
echo '<br>';
echo $array['hoehe'];
echo '<br>';
echo $array['tuerblattbreite'];
usw.
alle benötigten Daten, im zweiten sind sie dann aber futsch (ruf' die Daten mit dem gleichen Befehl w.o. auf.
 
Zuletzt bearbeitet:
Zurück