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 ::

Das Zend Framework

Das Zend Framework 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 10.06.2007, 17:18:22
jksch jksch ist offline
Anfänger
 
Registriert seit: Apr 2007
Beiträge: 20
Fehler im Skript - bestellen(Warenkorb)

Hallo Zusammen!

Ich weiss nicht genau was für ein Fehler hier vorliegt. Auf localhost geht es und auf dem Webserver wieder mal nicht.

Weiß nicht wie ich hier die Variablen $_POST und $_REQUEST in das Skript initialisiere.

Es kann sein dass es daran liegt.

Bitte um Hilfe.

FEHLERCODE:

Warning: fopen(bestellung.xml): failed to open stream: Permission denied in /www/htdocs/w0055a6e/PHP02/bestellung.php on line 27

Warning: fputs(): supplied argument is not a valid stream resource in /www/htdocs/w0055a6e/PHP02/bestellung.php on line 30

Warning: fputs(): supplied argument is not a valid stream resource in /www/htdocs/w0055a6e/PHP02/bestellung.php on line 34

Warning: fputs(): supplied argument is not a valid stream resource in /www/htdocs/w0055a6e/PHP02/bestellung.php on line 39

Warning: fclose(): supplied argument is not a valid stream resource in /www/htdocs/w0055a6e/PHP02/bestellung.php on line 42
Die Datei 'bestellung.xml' wurde gespeichert!


Was ich tun möchte.


Ein Skript "bestellung.php" und ein Skript "bestellung.xml", auf der warenkorb Seite ich ein Link gesetzt zu "bestellung.php". bestellung.php soll die bestellung.xml auslesen und ausgeben. Danach soll der Warenkorb gelöscht werden.

Das Skript:

warenkorb.php
PHP-Code:
<?php 

include ("Warenkorb.inc");

// Starte Session, falls nicht schon passiert
session_start();
// Hole Warenkorb-Objekt aus der Session
$korb $_SESSION['korb'];
// Falls es der erste Aufruf ist, muss zuerst ein neuer Warenkorb angelegt werden
    
if(!is_object($korb)){
        
$korb = new Warenkorb();
        
$_SESSION['korb'] = $korb;
    }

// Artikel hinzufügen
if(isset($artikel)) $korb->hinzufuegen($artikel);
// Artikel entfernen
if(isset($entf)) $korb->entfernen($entf);
// Gesamten Warenkorb löschen
if(isset($loeschen)) $korb->leeren();
?>

<html>
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
    <h1>Warenkorb</h1>
    <a href="warenkorb.php?loeschen=1">Warenkorb löschen</a>
    <p>
    <a href="javascript:history.back()">Zurück</a>
    <p>
    Sie haben bisher folgende Artikel ausgewählt:<p>
    <?php
        
if(!empty($korb)){
            
// zeige alle bisher ausgewählten Artikel an 
            
foreach ($korb->inhalt as $artikel=>$anzahl){
                print 
"Artikelnummer: $artikel";
                print 
                    
"<a href='warenkorb.php?entf=$artikel'>";
                print 
"\rArtikel entfernen</a><br>";
                print 
"Anzahl: $anzahl<br>";
                
                if(
$artikel == 1001)
                    print 
"Der Herr der Ringe<p>";
                if(
$artikel == 2002)
                    print 
"Der kleine Hobbit<p>";
                if(
$artikel == 3003)
                    print 
"Grimms Märchen<p>";
                if(
$artikel == 4004)
                    print 
"Elric von Melnibonee<p>";
            }
                    
        }
            else{
                print 
"Bisher nicht ausgewählt";
            }
    
?>
    
    
    
        <br><br>
    <ol>2.
    Schreiben Sie ein neues Skript "bestellung.php", das über einen Link auf der Warenkorbseite aufgerufen werden soll.<br><br>
    Das Skript soll die Bestelldaten in einer Datei "bestellung.xml" im folgenden XML-Format abspeichern:<br><br>
    <blockquote class="blockq">
    *bestellung*<br>
    *artikel nummer="1001" anzahl="3" /*<br>
    *artikel nummer="3003" anzahl="1" /*<br>
    */bestellung*
    </blockquote>
    <br>
    Außerdem soll der Warenkorb nach einer Bestellung geleert werden.
    </li>
    </ol><br><br><br>
    
    <h1 class="h2"><a href="bestellung.php">Zur Bestellung</a></h1>

</body>
</html>
bestellung.xml
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<bestellung>
	<artikel nummer="1001" anzahl="3"/>
	<artikel nummer="3003" anzahl="1"/>
</bestellung>
bestellung.php
PHP-Code:
<?php include ("Warenkorb.inc");

// Starte Session, falls nicht schon passiert
session_start();

// Hole Warenkorb-Objekt aus der Session
$korb $_SESSION['korb'];

// Falls es der erste Aufruf ist, muss zuerst ein neuer Warenkorb angelegt werden
    
if(!is_object($korb)){
        
$korb = new Bestellung();
        
$_SESSION['korb'] = $korb;
    }    
    
?>
    <html>
    <head>
       <title>Bestellung</title>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>     


<?php    

// Handle erstellen    
$datei fopen("bestellung.xml""w");        

// Startzeile schreiben    
fputs($datei"<bestellung>\n");            

// Artikel aus Array in xml-Datei schreiben    
foreach ($korb->inhalt as $artikel=>$anzahl) {        
    
fputs($datei"  <artikel nummer='".$artikel."' anzahl='".$anzahl."'/>\n");    
}
            

// Endzeile schreiben    
fputs($datei"</bestellung>");        

// Datei schließen    
fclose($datei);        

// Meldung ausgeben    
print "<b>Die Datei 'bestellung.xml' wurde gespeichert!</b><br><br>";
print 
"<a href='index.php'><b>Ausloggen</b></a>";
        

// Warenkorb nach Bestellung leeren    
$korb = array();

?>

</body>
</html>
Warenkorb.inc
Code:
<?php    

	class Warenkorb    {        
		var $inhalt = array();        
		
		function hinzufuegen($artikel) {           
			$this->inhalt[$artikel]++;        
		}        

		function entfernen($artikel) {            
			unset($this->inhalt[$artikel]);        
		}        
		
		function leeren() {            
			unset($this->inhalt);        
		}    
	}
?>
Mit Zitat antworten
  #2  
Alt 10.06.2007, 17:33:37
tomilo
Guest
 
Beiträge: n/a
AW: Fehler im Skript - bestellen(Warenkorb)

Es sieht so aus, als ob die Zugriffsrechte nicht stimmen würden. Setze die für bestellung.xml auf 777. Dann sollte es vom Prinzip her funktionieren.

Ich würde an deiner Stelle aber auf eine (MySQL-)Datenbank umsteigen. Der Zugriff läuft schneller und man hat auch die Möglichkeit nur einzelne Daten einzulesen.
Mit Zitat antworten
  #3  
Alt 10.06.2007, 17:40:21
jksch jksch ist offline
Anfänger
 
Registriert seit: Apr 2007
Beiträge: 20
AW: Fehler im Skript - bestellen(Warenkorb)

WOW. Danke. Das war der Fehler. Das vergesse ich irgendwie immer mit dem CHMOD.
Mit Zitat antworten
  #4  
Alt 10.06.2007, 18:35:56
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: Fehler im Skript - bestellen(Warenkorb)

Zitat:
Zitat von tomilo Beitrag anzeigen
Es sieht so aus, als ob die Zugriffsrechte nicht stimmen würden. Setze die für bestellung.xml auf 777. Dann sollte es vom Prinzip her funktionieren.
1. nicht 777 sondern 0777
2. warum überhaupt 0777? Warum schlägst Du vor, aus bestellung.xml eine "Linux-EXE" zu machen? Nicht-ausführbare Dateien setzt man "maximal" auf 0666.
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit dem Skript zur Ausgabe des aktuellen Tages (immer noch Fragen) selbstlerner PHP Grundlagen 8 10.04.2006 03:54:28
Problem mit dem Skript zur AUsgabe des aktuellen Tages selbstlerner PHP Grundlagen 6 05.04.2006 16:32:07
Habe eine Frage zu einem Skript Boomer PHP Grundlagen 5 09.11.2003 22:36:14
Fehler im Script? |Coding PHP für Fortgeschrittene und Experten 17 10.09.2002 09:42:03
Fehler bei kleinem Anfänger Gästebuch Skript cali PHP für Fortgeschrittene und Experten 7 09.05.2002 17:33:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:02:26 Uhr.


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


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