boykottke
Mitglied
Ja, ich glaube, diese Frage wird schon öfter gekommen sein, aber in der Suche hab ich jetzt nichts gefunden,w as mir wietergeholfen hätte.
Folgender Code macht Ärger:
Ein- und Austragen des Angebotes in das SESSION-Array:
Anzeigen der Array-Daten der SESSION:
So, und nun wird es lustig. Mein Server liest die Daten normal aus dem Array in der SESSION, schreibt sie in der vorgegebenen Struktur aus und zeigt sie an. Der Server, auf dem Das Script laufen soll gibt folgenden Fehler aus:
Warning: Invalid argument supplied for foreach() in /srv/www/xxx/marker.php on line 21
Das Array $_SESSION["marker"] ist also letztlich kein Array mehr. Daher funktioniert die WHILE-Schleife nicht mehr. Also, nun meine Frage: Was muss ich am Code, was am Server ändern, damit es funktioniert.
Leider ist es auch keine Alternative, das Ganze in einer Datenbank zu speichern, nur, um der Frage vorzubeugen.
Danke und LG,
Thomas
Folgender Code macht Ärger:
Ein- und Austragen des Angebotes in das SESSION-Array:
PHP:
if(!isset($_SESSION["marker"]) OR !is_array($_SESSION["marker"]))
{
$_SESSION['marker'] = array();
}
if($_GET["marker"]== "1" AND !in_array( $inserat_nr, $_SESSION["marker"]))
{
array_push($_SESSION["marker"], $inserat_nr);
}
if($_GET["marker"]== "2" AND in_array( $inserat_nr, $_SESSION["marker"]))
{
$key = array_search($inserat_nr, $_SESSION["marker"]);
unset($_SESSION["marker"][$key]);
}
echo ' <div class="sendform">
<div class="sendform_header">Zu Markern hinzufügen/entfernen</div>';
if( in_array( $inserat_nr, $_SESSION["marker"]))
{
echo '<form action="index.php?kategorie=4&inseratnr='.$inserat_nr.'&profile_site='.$profile_site.'&marker=2" method="POST" target="">
<p><input type="Submit" name="" value="Marker entfernen" id="login_buttons2"></p>
</form>';
}
else
{
echo '<form action="index.php?kategorie=4&inseratnr='.$inserat_nr.'&profile_site='.$profile_site.'&marker=1" method="POST" target="">
<p><input type="Submit" name="" value="Marker setzen" id="login_buttons2"></p>
</form>';
}
echo '</div>';
Anzeigen der Array-Daten der SESSION:
PHP:
if(!empty($_SESSION["marker"]) AND is_array($_SESSION["marker"]))
{
$select = 'SELECT A.*, B.Bezeichnung, D.main_bild FROM inserat AS A LEFT JOIN rassen AS B ON A.Rasse = B.Nummer LEFT JOIN inserateignung AS C ON A.Inseratnr= C.Inseratnr LEFT JOIN medbilder AS D ON A.Inseratnr = D.inseratnr WHERE ';
$i= '0';
foreach ($_SESSION["marker"] as $marker) {
if ($i>'0')
{
$select.= 'OR ';
}
$select.= 'A.Inseratnr="'.$marker.'" ';
$i++;
}
$select .= 'AND A.sichtbar = 1 AND A.Enddatum>="'.$actuell_day.'" GROUP BY A.Inseratnr ORDER BY A.Top DESC, A.Startdatum ASC';
echo '<div id="treffer_header">Ihre Marker:</div>';
$siudb->sqlcommand($select);
while($data = $siudb->sql_data())
{
$angebot_nr = $data["Inseratnr"];
$angebot_titel = $data["Titel"];
$angebot_preiskat = $data["Preiskat"];
$angebot_preis = $data["Preis"];
$angebot_rasse = $data["Bezeichnung"];
$angebot_rasseid = $data["Rasse"];
$angebot_ort = $data["PLZStandort"].' '.$data["Standort"];
$angebot_bundesland = $data["Bundesland"];
$angebot_top = $data["Top"];
$angebot_main_bild = $data["main_bild"];
$angebot_highlight = $data["Highlight"];
echo '<div ';
if($angebot_highlight == 1) { echo 'class="search_results_1_highlight" ';} else { echo 'class="search_results_1" ';}
if ($angebot_top== 1) { echo 'id="top'; if ($angebot_highlight== 1) {echo '_highlight';} echo '"'; }
echo '">';
echo '<table><tr><td valign="top">'; if (!empty($angebot_main_bild)) { echo '<img src="./media/main_pictures/MAIN'.$angebot_main_bild.'" width="120" height="90" border="0" alt="">'; } echo '</td><td valign="top">';
echo '<h1><a href="index.php?kategorie=4&inseratnr='.$angebot_nr.'">'.$angebot_titel.'</a></h1><p>';
echo '<b>Preis: € '.$angebot_preis.' '.$angebot_preiskat.'</b><br><br>';
echo '<b>Rasse:</b> '.$angebot_rasse;
echo ' - <b>Standort:</b> '.$angebot_ort.' / '.$angebot_bundesland;
echo '</p></td></tr></table>';
echo '</div>';
}
}
So, und nun wird es lustig. Mein Server liest die Daten normal aus dem Array in der SESSION, schreibt sie in der vorgegebenen Struktur aus und zeigt sie an. Der Server, auf dem Das Script laufen soll gibt folgenden Fehler aus:
Warning: Invalid argument supplied for foreach() in /srv/www/xxx/marker.php on line 21
Das Array $_SESSION["marker"] ist also letztlich kein Array mehr. Daher funktioniert die WHILE-Schleife nicht mehr. Also, nun meine Frage: Was muss ich am Code, was am Server ändern, damit es funktioniert.
Leider ist es auch keine Alternative, das Ganze in einer Datenbank zu speichern, nur, um der Frage vorzubeugen.
Danke und LG,
Thomas
Zuletzt bearbeitet: