CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
26.12.2004, 22:49:28
|
|
Anfänger
|
|
Registriert seit: Dec 2004
Beiträge: 46
|
|
Warenkorbfunktion -> Artikel speichern
Hallo,
Komme so langsam immer weiter mit meiner Warenkorb-Funktion von meinem Onlineshop. Es klappt aber immer noch nicht, ausgesuchte Artikel während einer Session vorübergehend zu speichern.
Habe unter index.php folgende Variabeln deklariert:
PHP-Code:
<?php
session_start();
if(isset($_SESSION['Artikelwahl[]'])) {
}
else {
unset($_SESSION['Artikelwahl[]']);
$_SESSION['$Artikelwahlnummer'] = 0;
}
?>
Die ausgesuchten Artikel soll es mir in dem Array "Artikelwahl" speichern (darin soll nacher die Artikelnummer von jedem Artikel aus der Datenbank gespeichert werden). Da index.php die Startseite ist, soll es hier erstmal das Array zurücksetzen, und den Array-Index auf 0 setzen. Das ist dann auf dieser Seite schon alles.
Von index.php kommt man dann zum onlineshop.php Script. Dort werden die Artikel mittels Checkboxen markiert, und die Formulardaten dann weiter zu warenkorb.php gesendet. Dabei bestehen die Checkboxen-Namen ebenfalls aus einem Array namens Markierung[].
Die Übertragung funktioniert, es werden mir dann im Warenkorb auch wirklich nur die ausgesuchten Artikel mit allen Daten dargestellt, so weit so gut.
PHP-Code:
if (isset($_REQUEST['Markierung'])) {
reset($_REQUEST['Markierung']);
foreach ($_REQUEST['Markierung'] as $k => $v) {
$result = mysql_query("SELECT * FROM $tabelle WHERE $spalte1 = $v");
while($zeile = mysql_fetch_array($result)) {
$Artikelwahlnummer++;
$_SESSION['Artikelwahl[$Artikelwahlnummer]'] = $zeile[$spalte1];
$gesamtsumme = $gesamtsumme + $zeile[$spalte11];
echo $Artikelwahl[$Artikelwahlnummer];
echo "<tr bgcolor='#DCDCEF'>";
echo "<td>".$zeile[$spalte1]."</td>";
echo "<td>".$zeile[$spalte2]."</td>";
echo "<td>".$zeile[$spalte3]." ".$zeile[$spalte4]." ".$zeile[$spalte5]." ".$zeile[$spalte6]."</td>";
echo "<td>".$zeile[$spalte11]." €</td>";
echo "</tr>";
}
}
}
else {
echo "<tr bgcolor='#DCDCEF'>";
echo "<td>Sie haben keinerlei Artikel ausgewählt !</td>";
echo "<td>0,00 €</td>";
echo "</tr>";
}
Was jetzt aber nicht funktioniert ist, wenn ich von warenkorb.php über irgendeinen Link auf irgendein anderes Dokument der Webseite klicke ist, das bei der Rückkehr auf die Warenkorb-Seite keine Artikel mehr vorzufinden sind, dann druckt es mir die ELSE-Ausgabe aus der innersten WHILE-Schleife auf den Screen.
|
27.12.2004, 10:43:38
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Du überprüfst auf das $_REQUEST-Array. Da die Daten aber in der Session gespeichert werden, solltest du auf das $_SESSION-Array prüfen.
|
27.12.2004, 12:10:18
|
|
Anfänger
|
|
Registriert seit: Dec 2004
Beiträge: 46
|
|
Zitat:
Original geschrieben von xabbuh
Du überprüfst auf das $_REQUEST-Array. Da die Daten aber in der Session gespeichert werden, solltest du auf das $_SESSION-Array prüfen.
|
Ja, aber ich muss erstmal auf das REQUEST_Array überprüfen, weil die Schleife ja erstmal feststellen soll, ob überhaupt Artikel markiert wurde, und wenn ja, dann schreibt es mir die Artikel zeilenweise auf den Bildschirm, und mit jedem Durchlauf erfasst es mir dann in dem SESSION_Array dann die ausgesuchten Artikelnummern.
Erst ab diesem Moment wird das SESSION_Array überhaupt erst mit Daten gefüllt.
|
27.12.2004, 12:28:47
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Nur dann kann er dir natürlich auch nur anzeigen, dass keine Artikel gefunden wurden, da du weder per GET noch per POST eine Variable Markierung lieferst.
|
27.12.2004, 12:47:08
|
|
Anfänger
|
|
Registriert seit: Dec 2004
Beiträge: 46
|
|
Zitat:
Original geschrieben von xabbuh
Nur dann kann er dir natürlich auch nur anzeigen, dass keine Artikel gefunden wurden, da du weder per GET noch per POST eine Variable Markierung lieferst.
|
Ja gut, dann muss ich die ELSE-Funktion erweitern, weil stimmt, wenn ich von einer anderen Seite wie von online.php komme, dann sind keine Markierungen gesetzt.
Denn dann führt das Script ja das aus, was unter ELSE steht. Dort prüfe ich dann das $_SESSION Array. Hab gehofft, aber der Warenkorb bleibt trotzdem leer so:
PHP-Code:
if (isset($_REQUEST['Markierung'])) {
reset($_REQUEST['Markierung']);
foreach ($_REQUEST['Markierung'] as $k => $v) {
$result = mysql_query("SELECT * FROM $tabelle WHERE $spalte1 = $v");
while($zeile = mysql_fetch_array($result)) {
$Artikelwahlnummer++;
$_SESSION['Artikelwahl[$Artikelwahlnummer]'] = $zeile[$spalte1];
$gesamtsumme = $gesamtsumme + $zeile[$spalte11];
echo "<tr bgcolor='#DCDCEF'>";
echo "<td align='center'><font face='verdana,arial' size=1 color='#000000'>".$zeile[$spalte1]."</font></td>";
echo "<td align='center'><font face='verdana,arial' size=1 color='#000000'>".$zeile[$spalte2]."</font></td>";
echo "<td align='left'><font face='verdana,arial' size=1 color='#000000'> ".$zeile[$spalte3]." ".$zeile[$spalte4]." ".$zeile[$spalte5]." ".$zeile[$spalte6]."</font></td>";
echo "<td align='right' bgcolor='#F7E8D5'><font face='verdana,arial' size=2 color='#FF0000'><b>".$zeile[$spalte11]." €</b></font></td>";
echo "</tr>";
}
}
}
else {
if (isset($_SESSION['Artikelwahl[]'])) {
reset($_SESSION['Artikelwahl[]']);
foreach ($_SESSION['Artikelwahl[]'] as $v) {
$result = mysql_query("SELECT * FROM $tabelle WHERE $spalte1 = $v");
while($zeile = mysql_fetch_array($result)) {
$gesamtsumme = $gesamtsumme + $zeile[$spalte11];
echo "<tr bgcolor='#DCDCEF'>";
echo "<td align='center'><font face='verdana,arial' size=1 color='#000000'>".$zeile[$spalte1]."</font></td>";
echo "<td align='center'><font face='verdana,arial' size=1 color='#000000'>".$zeile[$spalte2]."</font></td>";
echo "<td align='left'><font face='verdana,arial' size=1 color='#000000'> ".$zeile[$spalte3]." ".$zeile[$spalte4]." ".$zeile[$spalte5]." ".$zeile[$spalte6]."</font></td>";
echo "<td align='right' bgcolor='#F7E8D5'><font face='verdana,arial' size=2 color='#FF0000'><b>".$zeile[$spalte11]." €</b></font></td>";
echo "</tr>";
}
}
}
else {
echo "<tr bgcolor='#DCDCEF'><td height='35' colspan=3 align='center'><font face='verdana,arial' size=1>Sie haben keinerlei Artikel ausgewählt !</font></td>";
echo "<td align='right' bgcolor='#F7E8D5'><font face='verdana,arial' size=2 color='#FF0000'><b>0,00 €</b></font></td></tr>";
}
}
|
27.12.2004, 12:54:29
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Dann füge noch einen elseif zweig ein:
PHP-Code:
elseif(isset($_SESSION['Markierung']))
|
27.12.2004, 12:55:48
|
|
Anfänger
|
|
Registriert seit: Dec 2004
Beiträge: 46
|
|
Zitat:
Original geschrieben von xabbuh
Dann füge noch einen elseif zweig ein:
PHP-Code:
elseif(isset($_SESSION['Markierung']))
|
Wenn ich jetzt noch wüsste wo du meinst ?
|
27.12.2004, 13:11:14
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
PHP-Code:
if (isset($_REQUEST['Markierung'])) {
// ...
} elseif(isset($_SESSION['Markierung'])) {
// ...
} else {
// ...
}
|
27.12.2004, 13:42:42
|
|
Anfänger
|
|
Registriert seit: Dec 2004
Beiträge: 46
|
|
Zitat:
Original geschrieben von xabbuh
PHP-Code:
if (isset($_REQUEST['Markierung'])) {
// ...
} elseif(isset($_SESSION['Markierung'])) {
// ...
} else {
// ...
}
|
Hmm, bin mir grade nicht mehr sicher, ob ELSEIF wirklich notwendig ist. Habe nämlich festgestellt, dass es in die $_SESSION['Artikelwahl'] überhaupt nichts reinschreibt, warum auch immer. Denn ich habe auf der index.php einfach mal die
PHP-Code:
$_SESSION['Username'] = "Test";
erstellt, und wenn ich das auf der Seite warenkorb.php mit (php]echo $_SESSION['Username'];[/php] auf den Bildschirm bringen will, dann erscheint das auch, egal wie sehr ich mich auf der Webseite bewege, aber mit
PHP-Code:
echo $_SESSION['Artikelwahl[]']
erscheint nichts, auch nicht wenn ich konkret das erste Array auswähle
PHP-Code:
echo $_SESSION['Artikelwahl[1]']
??
PHP-Code:
if (isset($_REQUEST['Markierung'])) {
reset($_REQUEST['Markierung']);
foreach ($_REQUEST['Markierung'] as $k => $v) {
$result = mysql_query("SELECT * FROM $tabelle WHERE $spalte1 = $v");
while($zeile = mysql_fetch_array($result)) {
$Artikelwahlnummer++;
$_SESSION['Artikelwahl[$Artikelwahlnummer]'] = $zeile[$spalte1];
$gesamtsumme = $gesamtsumme + $zeile[$spalte11];
echo "<tr bgcolor='#DCDCEF'>";
echo "<td align='center'><font face='verdana,arial' size=1 color='#000000'>".$zeile[$spalte1]."</font></td>";
echo "<td align='center'><font face='verdana,arial' size=1 color='#000000'>".$zeile[$spalte2]."</font></td>";
echo "<td align='left'><font face='verdana,arial' size=1 color='#000000'> ".$zeile[$spalte3]." ".$zeile[$spalte4]." ".$zeile[$spalte5]." ".$zeile[$spalte6]."</font></td>";
echo "<td align='right' bgcolor='#F7E8D5'><font face='verdana,arial' size=2 color='#FF0000'><b>".$zeile[$spalte11]." €</b></font></td>";
echo "</tr>";
}
}
}
elseif (isset($_SESSION['Markierung'])) {
reset($_SESSION['Markierung']);
foreach ($_SESSION['Markierung'] as $v) {
$result = mysql_query("SELECT * FROM $tabelle WHERE $spalte1 = $v");
while($zeile = mysql_fetch_array($result)) {
$gesamtsumme = $gesamtsumme + $zeile[$spalte11];
echo "<tr bgcolor='#DCDCEF'>";
echo "<td align='center'><font face='verdana,arial' size=1 color='#000000'>".$zeile[$spalte1]."</font></td>";
echo "<td align='center'><font face='verdana,arial' size=1 color='#000000'>".$zeile[$spalte2]."</font></td>";
echo "<td align='left'><font face='verdana,arial' size=1 color='#000000'> ".$zeile[$spalte3]." ".$zeile[$spalte4]." ".$zeile[$spalte5]." ".$zeile[$spalte6]."</font></td>";
echo "<td align='right' bgcolor='#F7E8D5'><font face='verdana,arial' size=2 color='#FF0000'><b>".$zeile[$spalte11]." €</b></font></td>";
echo "</tr>";
}
}
}
else {
if (isset($_SESSION['Artikelwahl[]'])) {
reset($_SESSION['Artikelwahl[]']);
foreach ($_SESSION['Artikelwahl[]'] as $v) {
$result = mysql_query("SELECT * FROM $tabelle WHERE $spalte1 = $v");
while($zeile = mysql_fetch_array($result)) {
$gesamtsumme = $gesamtsumme + $zeile[$spalte11];
echo "<tr bgcolor='#DCDCEF'>";
echo "<td align='center'><font face='verdana,arial' size=1 color='#000000'>".$zeile[$spalte1]."</font></td>";
echo "<td align='center'><font face='verdana,arial' size=1 color='#000000'>".$zeile[$spalte2]."</font></td>";
echo "<td align='left'><font face='verdana,arial' size=1 color='#000000'> ".$zeile[$spalte3]." ".$zeile[$spalte4]." ".$zeile[$spalte5]." ".$zeile[$spalte6]."</font></td>";
echo "<td align='right' bgcolor='#F7E8D5'><font face='verdana,arial' size=2 color='#FF0000'><b>".$zeile[$spalte11]." €</b></font></td>";
echo "</tr>";
}
}
}
else {
echo "<tr bgcolor='#DCDCEF'><td height='35' colspan=3 align='center'><font face='verdana,arial' size=1>Sie haben keinerlei Artikel ausgewählt !</font></td>";
echo "<td align='right' bgcolor='#F7E8D5'><font face='verdana,arial' size=2 color='#FF0000'><b>0,00 €</b></font></td></tr>";
}
}
echo "</tr>";
echo "<tr bgcolor='#DDDDDD'>";
echo "<td colspan=3 align='right' height=12><font face='verdana,arial' size=2 color='#000000'><b>Zwischensumme:</b></font></td>";
echo "<td align='right' height=12><font face='verdana,arial' size=2 color='#FF0000'><b>".$zwischensumme = number_format($gesamtsumme, 2, '.', '')." €</b></font></td>";
echo "</tr>";
echo "</table>";
echo $_SESSION['Artikelwahl[]'];
echo $_SESSION['Username'];
|
27.12.2004, 14:21:53
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Zitat:
Original geschrieben von quirrly
PHP-Code:
echo $_SESSION['Artikelwahl[]']
|
PHP-Code:
echo $_SESSION['Artikelwahl'][0];
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:59:29 Uhr.
|