Martin Linden: Wenn Die PHP datein eingefügt wird funktioniert sie nicht

Hallo,
Ich hab mir ein Foto Sktipt geschrieben, das ja potentiell auch schon gut läuft, aber ein kleiner Teil läuft noch nicht.
Es ist so, dass wenn eine Seite in einer anderes Seite geladen wird (mit include) dann wird diese Seite garnicht angezeigt.
Sonst geht die Seite. Und eigentlich wird beim einfügen der Seite auch die Datenbank in der "Überseite" geschlossen.

Ich stelle einfach als erstes mal die eingefügte seite hier hin, vielleicht hat jemand einen Tipp.
Es würde mir sehr weiterhelfen

Und wie gesagt, eigentlich läuft die Seite,, nur eben nicht, wenn sie eingefügt wird
<?

include("passwort.php");
$tabelle = "fotos";

$link = $_SERVER["REQUEST_URI"];

$sql = mysql_connect($dbhost, $dbuser, $dbpswd)
  or die("<br>Konnte nicht auf die Datenbank Verbinden");

mysql_select_db($dbname)
  or die("<br>Konnte nicht zur Datenbank verbinden!");
$abfrage = "SELECT * FROM $tabelle WHERE xx1 = '$link'";
$ergebnis = mysql_query($abfrage);
 //$ergebnis = mysql_query("SELECT * FROM $tabelle WHERE xx1 = '$link'");

$row = mysql_fetch_object($ergebnis);

echo "<br><br><center>";
if($row->jpg == "anfang")
{
echo "<h1>".$row->ueberschrift."</h1>";
}

echo "<br><br></center>";

echo "<table border="0" cellspacing="0" cellpadding="0" align="center"><tr><td>";

$count = "0";

while($row = mysql_fetch_object($ergebnis))
{
if(!($row->jpg == "anfang" or $row->jpg == "ende")){
 echo "<a href="view.php?idgiv=".$row->id.""><img src="phpThumb.php?src=".$row->jpg."&w=100"></a>&nbsp;";

$count++;

if($count == "6")
 {
  echo "</td></tr><tr><td>";
  $count = 0;
 }
}
}

echo "</td></tr></table>";

?>

Gruß
Martin

  1. Hallo,

    Ich hab mir ein Foto Sktipt geschrieben, das ja potentiell auch schon gut läuft, aber ein kleiner Teil läuft noch nicht.
    Es ist so, dass wenn eine Seite in einer anderes Seite geladen wird (mit include) dann wird diese Seite garnicht angezeigt.

    Diesen Satz habe ich mehrfach lesen müssen ;) Oh je - ich hoffe es richtig verstanden zu haben.

    Sonst geht die Seite.

    Da wäre es schön, wenn meine Mutmaßungen, die ich folgenden äußere, nicht zutreffen sollten, daß Du hier noch mal einen Vergleich anstellst von "Seite läuft, wie erwartet" zu "Seite geht nicht beim Include".

    <?
    include("passwort.php");

    Ich hoffe, ich kann davon ausgehen, daß die drei scripte

    (1.php => include(2.php => include(passwort.php)) im sel-

    ben Verzeichnis liegen.

    Leider deutet der Steuerfluß auf das Gegeteil hin und

    stirbt (die()) rekursiv!

    $link       = $_SERVER["REQUEST_URI"];
    $sql        = mysql_connect($dbhost, $dbuser, $dbpswd)
                  or die("<br>Konnte nicht auf die Datenbank Verbinden");

    mysql_select_db($dbname)
                  or die("<br>Konnte nicht zur Datenbank verbinden!");

    |

    $abfrage    = "SELECT * FROM $tabelle WHERE xx1 = '$link'";
    $ergebnis   = mysql_query($abfrage);
    //$ergebnis = mysql_query("SELECT * FROM $tabelle WHERE xx1 = '$link'");
    $row        = mysql_fetch_object($ergebnis);

    echo "<br><br><center>";

    if($row->jpg == "anfang")
       {
       echo "<h1>".$row->ueberschrift."</h1>";
       }

    echo '<br><br></center><table border="0" cellspacing="0" cellpadding="0" align="center"><tr><td>';

    $count      = "0";

    while($row  = mysql_fetch_object($ergebnis))
       {
       if(!($row->jpg == "anfang" or $row->jpg == "ende"))
           {
           echo '<a href="view.php?idgiv='.$row->id.'"><img src="phpThumb.php?src='.$row->jpg.'&w=100"></a>&nbsp;';

    $count++;

    if($count == "6")
               {
               echo "</td></tr><tr><td>";
               $count = 0;
               }
           }
       }

    echo "</td></tr></table>";

    ?>

    Und eigentlich wird beim einfügen der Seite auch die Datenbank in der "Überseite" geschlossen.

    |

    <?php

    $sql        = mysql_connect($dbhost, $dbuser, $dbpswd)
                  or die("<br>Konnte nicht auf die Datenbank Verbinden");

    # 2.php erbt alle globalen variablen von 1.php!

    include('2.php');

    # 2.php hat zur Ausführung möglicherweise geerbte
               # Variablen andere Werte zugewiesen.
               # Was nur der Erblasser dazu sagt ;)

    mach_was($sql);

    ?>

    Dein eigentliches Problem läßt sich mit einem kleinen Script, was Du bitte mal als "test.php" benennst und ausprobierst:

    <?php
    $b='Guten Morgen!';
    if(!isset($a)) {$a=1;include('test.php');}
    else die('Gute Nacht!');
    echo $b;
    ?>

    Gute Nacht!
    eddi

    --
    Manchmal trifft es einen doch ganz unverhofft t86591:
    > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
    Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
    1. Hallo,
      also ich hab jetzt mal nur die datein per Include in die datei eingefügt. Also eindach nur:

      <?
      include("anzeigen.php");
      ?>

      und dann wird die datei zwar auch eingefügt,
      also eine
      echo "hallo welt"; wird ausgeführt,
      aber die ganze sql abfrage wird nicht ausgeführt.

      und wiegesagt, wenn ich direkt anzeigen.php aufrufe, dann funktioniert die datei.

      Gruß
      Martin

      1. Hallo,

        Liegen beide Scripte im SELBEN Verzeichnis?
        Wird die Anweisung "or die()" für den Fall, daß das Sript inkludiert wird, ausgeführt?
        Warum hast Du nicht verstanden, das $sql in der aufgerufenen Instanz die Variable $sql in der aufrufenden Instatz überschreibt?
        Warum hast Du nicht verstanden, wie exit() oder die() funktionieren?

        Nur so mal ein paar Fragen, die in meinem müden Schädel rumschwirren, wenn ich mir Deinen Code in <./?t=87687&m=521672> ansehe...

        Gruß aus Berlin!
        eddi

        --
        Manchmal trifft es einen doch ganz unverhofft t86591:
        > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
        Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
        1. Hello Eddi,

          ich vermute schon die ganze Zeit, dass anzeigen.php die Auslieferung eines Mime-Type "picture" beinhaltet, was natürlich bei direkten Aufruf durch den Browser klappt, aber nicht, wenn  man den Pic-Stream innerhalb eines HTML-Documentes überträgt.

          Aber unser Martin Linden hält uns ja auch weiterhin doof, also gibt uns nicht die angeforderten Infos. Also gibts auch keine wirkliche Hilfe.

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          1. Hallo Tom,

            boha - bist Du böse! *lol*

            Zwischenzeitlich war es dann wirklich so weit, das ich neben dem Wasser für einen neuen Tee, den ich wirklich dringend brauch, auch schon gekocht habe; - da werden Bücher über Bücher zu PHP geschreiben, die allesamt auch gleich mit supertollen Erklärungen jeden Einsteiger zum Quasi-Admin und Datenbankmanager mutieren lasse, ohne auch nur ein Wort darüber zu verlieren, daß man sich mit anderen Dingen zuerst zu beschäftigen hat.

            Wie kann man nur auf die Idee kommen Dateien gar Bilder, die nicht weiter zu verarbeiten sondern nur zu servieren sind, in eine DB meißeln? Oder machen das nur Leute, die die Kochplatte ihres E-Herds auf höchste Stufe stellen, damit sie von der aufsteigenden Abwärme eine Turbine betreiben können, damit der PC Strom bekommt?

            Ich verstehe es nicht!

            Gruß aus Berlin!
            eddi

            --
            Manchmal trifft es einen doch ganz unverhofft t86591:
            > '..."Vorläufig abgebrochen" ist ungefähr so sinnvoll formuliert, wie "einstweilig erschossen" oder "temporär verbrannt"...'
            Ich danke Sven für diese Erkenntnis - Gott, was habe ich gelacht ;)
  2. Hello Martin,

    nur, damit Du weißt, warum Dir noch keiner geantwortet hat:

    Du sprichst hier von einem komplexen Problem, ohne jegliche Hintergrundinformation, Fehlerbearbeitung, Fehlerausgaben etc.

    Außerdem gehört zu solch einem Problem die kurze Schilderung des erwünschrten Verhaltens und was Du bereits unternommen hast, um den fehler zu finden.

    Bau bitte erstmal alle Fehler-Analysemöglichkeiten ein.
    Dazu gehört das Error-Tracking genauso wie die automatische Ausgaben von Warnungen:

    <?php   ### nameDesScriptes.php ###

    error_reporting(E_ALL);
    ini_set('track_errors','1');
    $php_errormsg = '';    ## Diese Zuweisung muß vor jeder zu überprüfenden Operation
                           ## neu getätigt werden, da PHP hier selbst evtl. einen Bug hat.

    Und wenn dann ein mysql_query($sql) ducrchgeführt wurde, gehört dahinter ein

    $res = mysql_query($sql,$con);
    if(!$res) echo mysql_error();

    zumindest in der Entwicklungsphase.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau