SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.12.2004, 22:49:28
Benutzerbild von quirrly
quirrly quirrly ist offline
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.
__________________
Ich fürchte wie sehen uns noch öfters, denn ich habe Null Ahnung von PHP.... http://www.aachen-arena.de/alemannia/smilies/depp.gif
Mit Zitat antworten
  #2  
Alt 27.12.2004, 10:43:38
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
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.
Mit Zitat antworten
  #3  
Alt 27.12.2004, 12:10:18
Benutzerbild von quirrly
quirrly quirrly ist offline
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.
__________________
Ich fürchte wie sehen uns noch öfters, denn ich habe Null Ahnung von PHP.... http://www.aachen-arena.de/alemannia/smilies/depp.gif
Mit Zitat antworten
  #4  
Alt 27.12.2004, 12:28:47
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
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.
Mit Zitat antworten
  #5  
Alt 27.12.2004, 12:47:08
Benutzerbild von quirrly
quirrly quirrly ist offline
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'>&nbsp;".$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'>&nbsp;".$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>";
          }    
        } 
__________________
Ich fürchte wie sehen uns noch öfters, denn ich habe Null Ahnung von PHP.... http://www.aachen-arena.de/alemannia/smilies/depp.gif
Mit Zitat antworten
  #6  
Alt 27.12.2004, 12:54:29
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Dann füge noch einen elseif zweig ein:
PHP-Code:
elseif(isset($_SESSION['Markierung'])) 
Mit Zitat antworten
  #7  
Alt 27.12.2004, 12:55:48
Benutzerbild von quirrly
quirrly quirrly ist offline
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 ?
__________________
Ich fürchte wie sehen uns noch öfters, denn ich habe Null Ahnung von PHP.... http://www.aachen-arena.de/alemannia/smilies/depp.gif
Mit Zitat antworten
  #8  
Alt 27.12.2004, 13:11:14
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
PHP-Code:
    if (isset($_REQUEST['Markierung'])) {
        
//  ...
    
} elseif(isset($_SESSION['Markierung'])) {
        
//  ...
    
} else {
        
//  ...
    

Mit Zitat antworten
  #9  
Alt 27.12.2004, 13:42:42
Benutzerbild von quirrly
quirrly quirrly ist offline
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'>&nbsp;".$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'>&nbsp;".$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'>&nbsp;".$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($gesamtsumme2'.''')." €</b></font></td>";
        echo 
"</tr>";
        echo 
"</table>";
        
        echo 
$_SESSION['Artikelwahl[]'];
        echo 
$_SESSION['Username']; 
__________________
Ich fürchte wie sehen uns noch öfters, denn ich habe Null Ahnung von PHP.... http://www.aachen-arena.de/alemannia/smilies/depp.gif
Mit Zitat antworten
  #10  
Alt 27.12.2004, 14:21:53
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
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]; 
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:54:02 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt