Tabelle wird nicht ausgegeben

Hallo!
TvP hat gesagt.:
Wenn ich das spontan so überblicke, stellt sich mir die Frage, ob Register_Globals auf on ist.
Benutze mal bitte statt $_GET $HTTP_GET_VARS.
Das ist ja nun mal ein ganz schlechter "Tip".
php.net hat gesagt.:
Seit PHP 4.1.0 wird empfohlen, externe Variablen über die Superglobals, die weiter unten beschrieben werden, abzufragen. Davor war man entweder auf die register_globals -Einstelliung oder die Langformen der vordefinierten PHP-Arrays ($HTTP_*_VARS) angewiesen. Seit PHP 5.0.0 können Sie die Registrierung der langen von PHP vordefinierten Arrays mit der Konfigurationsoption register_long_arrays abschalten.
Mit Deinem Vorschlag würde man die ganze Geschichte also ggf. nur noch "verschlimmbessern".
Ausserdem funktionieren ja die anderen per GET übergebenen Variablen.
Das Problem wird also das sein, dass der Wert der Variable "auswahl" irgendwo (aus welchen Gründen auch immer) verloren geht.

@Photocharts
Ich würde mal die ID einfach manuell angeben.....
PHP:
 $sql = "SELECT * FROM `fotos` WHERE `id` = '160'";
Dann weiss man zumindest schonmal ob noch weitere Probleme existieren.

Ich lese ja mit..... evtl. solltest Du nicht zig Dinge auf einmal verändern, sondern erstmal das eine zuende bringen?! ;)

Gruss Dr Dau
 
Also ich würde mal empfehlen, folgendes in dein Script direkt nach <?php einzubinden:

PHP:
error_reporting(E_ALL);

Das bringt dich garantiert weiter.
 
t. Dr Dau: Gibt man nur eine ID an, funktioniert es.

t. saila: bei der Errorausgabe wird das angezeigt:
Notice: Undefined index: auswahl in /usr/export/www/hosting/photocharts/db/einzelfoto.php on line 7

Line 7 ist diese:
PHP:
$sql = "SELECT * FROM fotos WHERE id = '".$_GET['auswahl']."'";
 
Folgende Tipps:

a) Prüfe mal deinen HTML-Code - insbesondere deine Select-Tags.
b) Prüfe, ob Werte per Formular übergeben werden.
c) Was ist, wenn "$auswahl" 1 bekommt? Dann wäre $vorid 0
d) Gleiches für $nachid. 10 Id's sind in der DB. 10 wurde ausgewählt, $nachid wäre 11 und somit nicht vorhanden.
e) error_reporting(E_ALL); sagt dir die Fehler. Besagt, prüfe, ob Werte übergeben werden und vorhanden sind.
 
Es hilft alles nichts, du musst mal alle Skripte, welche da verwendet werden, zur Verfügung stellen(eventuelle Zugangsdaten bitte entfernen :-)).

Irgendwo wird $_GET['auswahl'] gelöscht, sowas passiert schon mal, wenn man bspw. Zuweisungs-und Vergleichsoperatoren verwechselt...dass die Variable da sein müsste, sieht man ja in der Adresszeile des Browsers.
 
Dass es mit einer manuell vergebenen ID funktioniert war mir eigentlich schon klar..... so weiss man nun aber zumindest mit sicherheit dass es keine weiteren Probleme gibt, wenn die ID übergeben werden würde. ;)
Dass errror_reporting(E_ALL) eine Notice auswirft, war mir eigentlich auch klar, denn.....
Photocharts hat gesagt.:
SELECT * FROM fotos WHERE id = ''
Die ID wurde also nicht übergeben.
Da die ID aber ja in der URL steht, muss sie durch irgendwas gelöscht worden sein..... aber durch was, sagt error_reporting(E_ALL) natürlich nicht. ;)

Ich denke auch dass das Problem mit einem der anderen Script zusammenhängt.
 
saila hat gesagt.:
Folgende Tipps:
c) Was ist, wenn "$auswahl" 1 bekommt? Dann wäre $vorid 0
d) Gleiches für $nachid. 10 Id's sind in der DB. 10 wurde ausgewählt, $nachid wäre 11 und somit nicht vorhanden.

$vor - und $nachid lege ich manuell fest, für jede session ;)

alos gut, macht euch auf Scripthaufen gefasst:

Index.php:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Photocharts - Manuela Dörr</title>
<link rel="stylesheet" href="../css3.css" type="text/css">
<?
include "includelinks.php";
?>
<SCRIPT language=javascript>
function klapp(div) {
if(document.getElementById(div).style.display=="block") {
    document.getElementById(div).style.display="none";
  } else {
    document.getElementById("punkt1").style.display="none";
    document.getElementById("punkt2").style.display="none";
    document.getElementById("punkt3").style.display="none";
    document.getElementById("punkt4").style.display="none";
    document.getElementById("punkt5").style.display="none";
    document.getElementById("punkt6").style.display="none";
    document.getElementById("punkt7").style.display="none";
    document.getElementById("punkt8").style.display="none";
    document.getElementById(div).style.display="block";
};
};
</SCRIPT><script src="../fotos/foto.js" language=javaScript>
</script>
</head>
<body alink="#000000" vlink="#000000" link="#000000"
 style="color: rgb(0, 0, 0); background-color: rgb(0, 0, 0);">
<table style="text-align: left; width: 100%;" border="0" cellspacing="1"
 cellpadding="2">
  <tbody>
    <tr>
      <td style="vertical-align: top;" width="161px">
      <table  width="161px" style="text-align: left;"
 border="0" cellspacing="0" cellpadding="0">
        <tbody>
          <tr>
            <td height="40" style="vertical-align: top;"
 background="../blaukasten/links1.jpg">
            </td>
          </tr>
          <tr>
            <td style="vertical-align: top;"
 background="../blaukasten/linkszeile.jpg">
 <table width="153px" border="0" cellspacing="10" cellpadding="5">
<tr>
 <td><div align="center"><font face="VERDANA,ARIAL,HELVETICA"><small><?
include "news.php";
?></font></small></div></td>
</tr>
</table>
            </td>
          </tr>
          <tr>
            <td height="44" style="vertical-align: top;"
 background="../blaukasten/linksende.jpg">
            </td>
          </tr>
          <tr>
            <td height="40" style="vertical-align: top;"
 background="../blaukasten/links3.jpg"><br>
            <br>
            </td>
          </tr>
          <tr>
            <td style="vertical-align: top;"
 background="../blaukasten/linkszeile.jpg">
 <table width="150px" border="0" cellspacing="10" cellpadding="5">
<tr>
 <td><div align="center"><small><small><font face="VERDANA"><? include ('../counter/clicks.php'); ?></font></div></small></small></td>
</tr>
</table>
            </td>
          </tr>
          <tr>
            <td height="176" style="vertical-align: top;"
 background="../blaukasten/linksunten.jpg">
            </td>
          </tr>
        </tbody>
      </table>
      </td>
      <td style="vertical-align: top;">
      <table style="text-align: left; width: 158px; height: 368px;"
 border="0" cellspacing="0" cellpadding="0">
        <tbody>
          <tr>
            <td height="45" style="vertical-align: top;"
 background="../blaukasten/mitte1.jpg">
            </td>
          </tr>
          <tr>
            <td style="vertical-align: top;"
 background="../blaukasten/mittezeile.jpg">
<div align="center"><? include "http://photocharts.po.ohost.de/db/zufallsbild.php"; ?>&nbsp;&nbsp;&nbsp;</div>
            </td>
          </tr>
          <tr>
            <td height="30" style="vertical-align: top;"
 background="../blaukasten/mitteende.jpg"><br>
            <br>
            </td>
          </tr>          <tr>
            <td height="45" style="vertical-align: top;"
 background="../blaukasten/mitte2.jpg">
            </td>
          </tr>
          <tr>
            <td style="vertical-align: top;"
 background="../blaukasten/mittezeile.jpg">
 <table border="0" cellspacing="10" cellpadding="5">
<tr>
 <td>
 <?php

 if(isset($_GET['section']) AND isset($navi[$_GET['section']])) {
  if(!file_exists($navi[$_GET['section']])) echo "Die Datei ist nicht vorhanden.";
     include $navi[$_GET['section']];
   }

   else {
       include $navi['start'];
   }
?></td>
</tr>
</table>
            </td>
          </tr>
          <tr>
            <td height="40" style="vertical-align: top;"
 background="../blaukasten/mitteende.jpg"><br>
            <br>
            </td>
          </tr>
        </tbody>
      </table>
      </td>
      <td style="vertical-align: top;" width="100%">
      <table style="text-align: left; width: 100%; height: 100%;"
 border="0" cellspacing="0" cellpadding="0">
        <tbody>
          <tr>
            <td width="110" height="116" style="vertical-align: top;"
 background="../blaukasten/rechts1.jpg"><br>
            </td>
            <td style="vertical-align: top;"
 background="../blaukasten/rechts3.jpg"><br>
 <a href="index2.php?section=start" name="Start"><img border="0" src="../blaukasten/navis.gif"></a>
 <a href="index2.php?section=foto" name="Fotografie"><img border="0" src="../blaukasten/navif.gif"></a>
 <a href="index2.php?section=kreatives" name="Kreatives"><img border="0" src="../blaukasten/navik.gif"></a>
            </td>
            <td width="126" style="vertical-align: top;"
 background="../blaukasten/rechts2.jpg"><br>
            </td>
          </tr>
          <tr>
            <td height="" style="vertical-align: top;"
 background="../blaukasten/rechtsmitte1.jpg"><br>
            </td>
            <td style="vertical-align: top;" bgcolor="#B0C2E6">
<font face="VERDANA,ARIAL,HELVETICA"><small><? include ('haupthaupt.php'); ?></small></font>
            </td>
            <td style="vertical-align: top;"
 background="../blaukasten/rechtsmitte2.jpg"><br>
            </td>
          </tr>
          <tr>
            <td height="110" style="vertical-align: top;"
 background="../blaukasten/rechtsunten1.jpg"><br>
            </td>
            <td style="vertical-align: top;"
 background="../blaukasten/rechtsunten2.jpg"><br>
            </td>
            <td style="vertical-align: top;"
 background="../blaukasten/rechtsunten3.jpg"><br>
            </td>
          </tr>
        </tbody>
      </table>
      </td>
    </tr>
  </tbody>
</table>
</body>
</html>


Bei includelinks.php sind alle Links in arrays gespeichert. Dürfte nicht weiter wichtig sein, wenn doch --> bescheid sagen.


../counter/clicks.php :
PHP:
<?
$count = "../counter/clicks.txt"; //der relative Pfad von der Seite, wo du es einsetzt, bis zur Datei clicks.txt
$ipdatei = "../counter/ip.txt"; //relativer Pfad von der Seite, wo du es einsetzt, bis zur ip.txt
$dauer = 60; //Minuten, die eine IP beim Counter gesperrt wird

/////////////////////////////////////////////////////
//                                                 //
//           	   mt Counter v1.0		           //
//                                                 //
//                  © 20.12.2005                   //
//                  Michael Knothe                 //
//               michatronicer@web.de              //
//                                                 //
//          Wenn du dieses Script benutzt          //
//           akzeptierst du folgendes:             //
//                                                 //
//      Dieses Script kann beliebig geändert       //
//          werden, solange das copyright          //
//                 intakt bleibt.                  //
//                                                 //
//     Ein Verkauf dieses Scripts oder einer       //
//    modifizierten Art davon ist nicht erlaubt    //
//                                                 //
//                www.michatronic.de               //
/////////////////////////////////////////////////////




//und hier gehts dann auch schon los
$countnew = $count;
$aktip = $_SERVER['REMOTE_ADDR']; //IP abfragen
		if (($aktip == "127.0.0.1") && ($_SERVER['HTTP_X_FORWARDED_FOR'] != ""))
    			{
    			$aktip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    			}
checkip($aktip); //Aufruf Funktion checkip

//hier kommt die Funktion zum IP-Check
function checkip($ip)
{
global $dauer,$ipdatei;
$exists = FALSE;
$timestamp = time();
$file = file($ipdatei);
$ipdatei = fopen($ipdatei,"w+");
foreach ($file as $line);
	{
	$exp_line = explode("|", $line);
        if ($exp_line[0] == $ip) //wenn die Zeile der Schleife die IP beinhaltet
        	{
        	$exists = TRUE; //hier wird der marker auf true gesetzt, da die IP schon vorkommt
        	if(($exp_line[1]+ 60*$dauer) < $timestamp) // IP ist nicht mehr gesperrt
        		{
        		fputs($ipdatei, "$exp_line[0]|$timestamp\n"); //neue Daten für diese IP werden geschrieben...
        		zaehlen(); //...und der Zähler für die Statistik wird aufgerufen
        		}
        	else //IP ist noch gesperrt
        		{
        		fputs($ipdatei, "$line");
        		}
        	}
        else //wenn die Zeile der Schleife die IP nicht beinhaltet...
        	{
        	if(($exp_line[1]+ 60*$dauer) > $timestamp) //und noch eine Sperre für diese Zeile existiert...
        		{
        		fputs($ipdatei, "$line"); //wird sie nochmal gleich reingeschrieben, ansonsten wird sie gelöscht!
        		}
        	}
        }
if ($exists == FALSE) //hier wird der oben gesetzte Marker abgefragt, wenn er nicht auf TRUE ist, ist die IP neu und wird eingefügt
        {
        fputs($ipdatei, "$ip|$timestamp\n"); //neue Zeile für neue IP wird geschrieben
        zaehlen(); //...und der Zähler für die Statistik wird aufgerufen
        }
fclose($ipdatei);
statis();
}

//Funktion zum Zählen der clicks
function zaehlen()
{
global $count;
$date = date("d.m.y.");
$tstamp  = mktime(0, 0, 0, date("m"), date("d")-1, date("y")); //der gestrige Tag wird erzeugt
$gestern = date("d.m.y.", $tstamp);
$time = date("H:i:s");
$counttemp = fopen($count,"r");
$inhalt = fgets($counttemp, 1000);
list($ctotalold,$dateold,$hits,$dategestern,$hitsgestern,$datemax,$hitsmax) = explode("|",$inhalt);
$ctotalold++;
$ctotal = $ctotalold;

if ($dateold == $date)
{
$hits++;
}
elseif ($dateold == $gestern)
	{
	$dategestern = $dateold;
	$hitsgestern = $hits;
	$hits = 1;
	}
else
{
$hits = 1;
$dategestern = $gestern;
$hitsgestern = 0;
}


if ($hits > $hitsmax)
{
$hitsmax = $hits;
$datemax = date("d.m.Y");
}
else {
$hitsmax = $hitsmax;
$datemax = $datemax;
}


$new_line = "$ctotal|$date|$hits|$dategestern|$hitsgestern|$datemax|$hitsmax";
fclose ($counttemp);
$count = fopen($count,"w+");
fputs ($count,$new_line);
fclose ($count);
}

//Clickstatfunktion zur Anzeige auf der Seite
function statis()
{
global $countnew,$dauer;
$countnew = fopen($countnew,"r");
$inhalt = fgets($countnew, 1000);
list($ctotalold,$dateold,$hits,$dategestern,$hitsgestern,$datemax,$hitsmax) = explode("|",$inhalt);

$datumsvorlage = date("d.m.Y");
echo date("d.m.Y")."&nbsp;<br>";
echo date("H:i:s")."&nbsp;Uhr<br>";
echo "Hits heute:&nbsp;<b>$hits</b><br>";
echo "Hits gestern:&nbsp;<b>$hitsgestern</b><br>";
echo "Hits total:&nbsp;<b>$ctotalold</b><br>";
echo "Most Hits:&nbsp;<b>$hitsmax</b><br>";
echo "Am:&nbsp;$datemax";

fclose ($countnew);
}
?>


http://photocharts.po.ohost.de/db/zufallsbild.php :
PHP:
<?php

include("db.inc.php");

//Zufallsgenerator starten
srand(microtime()*10000000);

//Wieviele Bilder sind in der Tabelle vorhanden?
$erg = mysql_query("SELECT COUNT(id) FROM fotos");
$row = mysql_fetch_row($erg);
$max = $row[0]-1;

//Zufälliges Bild wählen
$rand = mt_rand(0,$max);

//SQL Abfrage dafür
$abfrage = "SELECT addyk, idsession FROM fotos LIMIT $rand,1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_assoc($ergebnis);

//$row enthält jetzt die Werte für das zufällige Bild

//Bild ausgeben
if ($row['idsession'] == 3){
echo "<a href=\"http://www.m0l.biz/users/photocharts/startseite/index2.php?section=foto&navibilder=pferde&haupt=speck\"><img src=\"".$row['addyk']."\"></a>";
}
elseif ($row['idsession'] == 2){
echo "<a href=\"http://www.m0l.biz/users/photocharts/startseite/index2.php?section=foto&navibilder=pferde&haupt=grefrath2\"><img src=\"".$row['addyk']."\"></a>";
}
elseif ($row['idsession'] == 4){
echo "<a href=\"http://www.m0l.biz/users/photocharts/startseite/index2.php?section=foto&navibilder=pferde&haupt=tobias\"><img src=\"".$row['addyk']."\"></a>";
}
elseif ($row['idsession'] == 5){
echo "<a href=\"http://www.m0l.biz/users/photocharts/startseite/index2.php?section=foto&navibilder=pferde&haupt=nikkisteffi\"><img src=\"".$row['addyk']."\"></a>";
}
elseif ($row['idsession'] == 6){
echo "<a href=\"http://www.m0l.biz/users/photocharts/startseite/index2.php?section=foto&navibilder=pferde&haupt=equitana\"><img src=\"".$row['addyk']."\"></a>";
}
elseif ($row['idsession'] == 7){
echo "<a href=\"http://www.m0l.biz/users/photocharts/startseite/index2.php?section=foto&navibilder=pferde&haupt=speck1\"><img src=\"".$row['addyk']."\"></a>";
}
elseif ($row['idsession'] == 8){
echo "<a href=\"http://www.m0l.biz/users/photocharts/startseite/index2.php?section=foto&navibilder=pferde&haupt=speck2\"><img src=\"".$row['addyk']."\"></a>";
}
elseif ($row['idsession'] == 9){
echo "<a href=\"http://www.m0l.biz/users/photocharts/startseite/index2.php?section=foto&navibilder=pferde&haupt=sommerfest06\"><img src=\"".$row['addyk']."\"></a>";
}
else{
echo "<a href=\"http://www.m0l.biz/users/photocharts/startseite/index2.php?section=foto&navibilder=pferde&haupt=grefrath\"><img src=\"".$row['addyk']."\"></a>";
}
   mysql_close($db);
?>


haupthaupt.php :
PHP:
<?php
  if(isset($_GET['haupt']) AND isset($haupt[$_GET['haupt']])) {
       include $haupt[$_GET['haupt']];
   } else {
       include $haupt['start'];
   }
?>


Sooo, dann kommt bei Haupthaupt in dem fall ja die Seite hin, wo die thumbs geladen werden, um diese dann mit einzelfoto.php auszugeben:
PHP:
<?php
include("../db.inc.php");

   $res = mysql_db_query("$dbzwei", "SELECT id, addyk FROM fotos WHERE idsession = 6");
   $num = mysql_num_rows($res);
   echo "$num Fotos vorhanden<br><br>";


   for ($i=0; $i<$num; $i++)
   {
      $addyk = mysql_result($res, $i, "addyk");
      $id = mysql_result($res, $i, "id");
      $vor = 160;
      $nach = 230;

   echo "<a href=\"index2.php?section=foto&navibilder=pferde&haupt=einzelfoto&vor=$vor&nach=$nach&auswahl=".$id."\" align=\"center\"><img border=\"0\" src=\"".$addyk."\" height=\"50\"><a>
</a> ";
   }


   mysql_close($db);
?>
 
....und jetzt soll man deine Scripte durchlesen und dir die Macken aufzeigen?

Was für Fehler werden den Ausgegeben?
 
@saila... mitnichten

Es geht darum, dass eine Variable irgendwo in den Skripten verschwindet, und zwar $_GET['auswahl'] ...wo das ist, das herauszufinden ist Thema unserer heutigen Spielrunde:-)

Ich zumindest hab bisher nicht entdeckt, wo sie abgeblieben ist.:-(
 
Mir stossen so einige Dinge sauer auf.
Z.b. der unterschiedliche Programmiertstil..... schaut euch mal die einzelnen include() an.
Was mir noch auffällt, es werden mindestens 3 verschiedene Domains verwendet.
Dabei führen die Verweise der Bilder auch zu unterschiedlichen Domains (scheinen also nicht alle auf dem gleichem Server zu liegen).
Warum wird (wenn ich jetzt nichts übersehen habe) bei den Datenbankabfragen nur bei einer angegeben welche Datenbank explizit genommen werden soll?
Und warum nennt sich dazu die Variable $dbzwei?
Dass lässt mich vermuten dass zu verschiedenen Datenbanken connectet werden soll.
Evtl. tritt hier schon das Problem auf (z.b. weil die andere Datenbank keine externen Zugriffe erlaubt).
Änder mal den Code:
PHP:
<?php 
include("../db.inc.php"); 

   $res = mysql_db_query("$dbzwei", "SELECT id, addyk FROM fotos WHERE idsession = 6") or die(mysql_error()); 
   $num = mysql_num_rows($res) or die(mysql_error()); 
   echo "$num Fotos vorhanden<br><br>"; 


   for ($i=0; $i<$num; $i++) 
   { 
      $addyk = mysql_result($res, $i, "addyk") or die(mysql_error()); 
      $id = mysql_result($res, $i, "id"); 
      $vor = 160; 
      $nach = 230; 

   echo "<a href=\"index2.php?section=foto&navibilder=pferde&haupt=einzelfoto&vor=$vor&nach=$nach&auswahl=".$id."\" align=\"center\"><img border=\"0\" src=\"".$addyk."\" height=\"50\"><a> 
</a> "; 
   } 


   mysql_close($db); 
?>
 
Zurück