PHP: Variable-Übergabe klappt nicht

WulfmanGER

Commander
Registriert
Juli 2005
Beiträge
2.415
Hi

eigentlich ganz einfach - schon 1000x gemacht - aber jetzt will es irgendwie nicht ...

Script1.php
hier ist eine Variable enthalten:
$ofdb = $row["ofdbid"];

per echo $ofdb;
=> Ausgabe - klappt.

Jetzt rufe ich per include("script2.php"); das nächste Script auf. Dieses benötigt die Variable $ofdb

Ich habe in dieser Datei erstmal nur, um es kurz zu halten, ein
echo $ofdb; => keine Ausgabe

Ich weiß net warum.

Habs schon mit $_get[ofdb] (in script2.php), mit global $ofdb
- nichts.


++++++++++

Ursprunglich wollte ich es so machen:
include("script2.php?neu=$ofdb");
script2.php ist eigentlich dafür ausgelegt direkt per URL aufgerufen zu werden - es importiert so einzelne Daten - da ich aber einen massenimport machen muß, brauch ich script1.php um hier per schleifen script2.php aufzurufen. Dieser include bringt aber eine Fehlermeldung:
Warning include(script2.php?neu=2294): failed to open stream: No error in h:\........\script1.php on line 34 [da ist der include] Warning: include(): Failed opening 'script2.php?neu=' for inclusion .............. blabla


Nachtrag:
Ich hab in der schleife in script1.php noch eine variable. $i ... die zählt einfach nur die Durchgänge. Diese wird lustigerweise an script2.php übergeben :(. Ein $ofdbA = $ofdb bringt auch nichts. $ofdbA ist auch LEER. Was stimmt an dem Inhalt nicht das der nicht übergeben wird?


Gruß und danke
 
Zuletzt bearbeitet:
PHP:
include("script2.php?neu=$ofdb");
Dürfte nicht gehen, die die Übergabe von Parametern mittels ? und & nur für http, nicht aber für das lokale Dateisystem spezifiziert ist.

Skript 1:
PHP:
$ofdb = $row["ofdbid"];
echo $ofdb;

Skript 2:
PHP:
echo $ofdb;
Sollte funktionieren, WENN du in Skript 1 die Variable ofdb nicht innerhalb einer function oder class definiert hast und WENN du in Skript 2 nicht innerhalb einer function auf die Variable zugreifst. Falls doch, musst du sie mittels dem Schlüsselwort global entsprechend global definieren.
 
Beim Include nur den Dateinamen angeben, keine Parameter. Include funktioniert im Prinzip so, dass er an der stelle wo der Include steht den Quellcode der Datei per Copy and Paste reinlädt und ausführt.
 
Hi

@Einhörnchen
$ofdb bekommt innerhalb einer while-Schleife einen Wert:
Keine function, keine class

PHP:
while($row = mysql_fetch_array ($result) {
$ofdb = $row["ofdbid"];
...
if($num_rows ==1)
{
....
} else
{
$i += 1;
echo $ofdb; // Ausgabe erfolgreich
$ofdbA = $ofdb; // zum Test
include "script2.php";
}}

Script2.php wie gesagt - direkt am DATEIANFANG (noch bevor irgendwas verarbeitet wird).

PHP:
echo $ofdb; // nix
echo $_get[ofdb]; // nix
echo $ofdbA; // nix
echo $i; // Ausgabe: 1

wenn $i geht - warum kann ich $ofdb dann nicht einfach direkt danach/davor in eine neue Var übergeben die wie $i dann an der gleichen "stelle" "erschaffen" wurde ... irgendwas rall ich hier net. Hatte mit sowas eigentlich noch nie probleme ... irgendwie hats schon geklappt
Ergänzung ()

Mhhhh jetzt klappt es - ich habe die Sortierreihenfolge beim Auslesen der DB geändert (DESC gesetzt)

Rall ich NULL!

Es wird definitiv vor dem include per Echo eine saubere Ausgabe gemacht. Somit ist die Variable vor include definitiv voll. Warum ein DESC im SELECT jetzt dafür sorgt das die Variable in script2.php gefüllt ist - versteh ich nicht - klingt absolut unlogisch ...

Dafür hab ich jetzt die nächsten Probleme - die aber daher rühren das script2.php bisher nur dazu gedacht war manuell aufgerufen zu werden. Es sind also noch div. abfragen drin, die bei einer include-Fassung etwas stören ....
 
Zuletzt bearbeitet:
Wenn du Variabeln über GET übergibst, dann auch mit $_GET['string'] abrufen(!)
PHP:
echo $_get[ofdb]; // nix ==> IST AUCH FALSCH
echo $_GET['ofdb'] // !

Ansonsten evtl. ein Tippfehler?
Funktioniert denn sowas wie echo "test"; innerhalb script2.php?
Vielleicht falscher Pfad und es wird einfach gar nichts included.
 
Zuletzt bearbeitet:
muss include nich

PHP:
include('script2.php')
und nicht
PHP:
include "script2.php"
geschrieben werden?
 
Beides funktioniert, aber include ist ein Sprachkonstrukt und keine Funktion, von daher ist das 2. semantisch korrekter, das 1. wird einfach nur unterstützt damit der Programmierer mehr Freiheiten hat bzw. er sich an weniger strikte Regeln handeln muss - imho eine doofe Sache.
 
Mhhhh jetzt klappt es - ich habe die Sortierreihenfolge beim Auslesen der DB geändert (DESC gesetzt)
Also da würde ich vermuten dass die ersten oder letzten Werte NULL sind...
 
Zurück
Oben