Erst mal ein fettes Danke!
Habe lange nach einem Shop gesucht und auch einige getestet und mich fr diesen Shop entschieden.
Die V2.02 ist um einiges besser als die Vorgngerversion.
Alle Probleme sind Weg! *hpf*
Eine Frage htte ich aber doch noch ;-)*beschmtzubodenguck*
Wie kann man die AGB's zum anklicken machen, so das diese besttigt werden mssen.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Erstmal mu natrlich eine Checkbox in pay.php her.
<input type=checkbox name=agb value=ja>
Am Anfang von payed.php BEVOR header.inc.php aufgerufen wird, kommt etwas wie:
if ($agb!="ja")
header("Location:pay.php?sess=$sess&error=13");
Damit wird zurck zu pay.php gesprungen. Dort kannst Du dann (anhand von $error) eine Fehlermeldung ausgeben.
Zwei Empfehlungen dazu noch:
- hnliches Vorgehen fr die Widerrufsbelehrung.
- berprfung auch in main.php nochmal, bevor mailer.inc.php und header* included wird.
Das sind aber nur Empfehlungen, damit mit Sicherheit nix schiefgeht.
Gru,
Andreas.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hatte die Checkbox wunderbar am Funktionieren. Leider nach Umzug auf neuen Webspace funktioniert diese berhaupt nicht mehr. Habe die alte Datenbank wieder eingebunden und alles klappt nur der Teil mit der checkbox beim bezahlen nicht, egal ob markiert oder nicht ich bekomme immer den ERROR 13 und dazu die Mitteilung das der Warenkorb leer ist.
Ich wei mir keinen Rat mehr. Bitte Helft!!
- shopadresse http://www.lalelu-kinderladen.de/shop_1,
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Zwei Ideen dazu:
- Da wo die Checkbox geprft wird, gibt's da noch eine SessionID?
- PHP-Version gewechselt und nun gibt es $HTTP_POST_VARS nicht mehr? Vielleicht auch register_globals=off und deshalb wird die Checkbox als nicht-aktiv ausgewertet?
Schreib doch mal vor die Auswertung (testhalber) ein
print_r($_POST);
Dann siehst Du, was berhaupt alles 'ankommt'.
Gru,
Andreas.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Da ich ein PHP-Laie bin, weiss ich nicht, wo ich dies plazieren soll... , was ich nicht verstehe ist das alles geht, nur bei pay.php der vorgang wie abbricht egal ob die orginale genommen wird oder die abegenderte... an dieser stelle bricht alles ab und es kommt kein Verkaufsvorgang zustande....
Ich bin am Ende und weiss mir keinen Rat mehr :-(
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Also eins habe ich jetzt definitiv herausgefunden (dank deiner Hilfe ;) ), die registers_global sind off!!
kann man da was tun, das der Shop auch so funktioniert? Oder was kann ich da nur den Anbieter wechseln.? Danke fr die Anworten
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Die Verarbeitung des Fehlers gehrt nicht in den switch ...case-Teil, der wird nur beim Daten ndern verwendet, wie aus if($mode=="edith") zu ersehen ist.
Die AGB-Checkbox wird ja aber unabhngig davon gebraucht.
Ein if($error==13) echo $error13; wre also in der Nhe der Checkbox sinnig.
Gru,
Andreas.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Achso, bin leider (kans ja auch nicht verstecken :-) ein PHP Laie, wenn ich diese Bezeichnung schon tragen darf :-)
Ich habe mir die pay.php schon einige Stunden betrachtet und Experimentiert.
Das einzige, aber auch das allereinige was mir gelungen ist, ist nach dem nicht akzeptieren der AGB's die spanische Anmeldeaufforderung kommt.
Jetzt fragt mich aber bitte nicht wie ich es geschafft habe *grins*
Also ber einen kleinen Tip fr die pay.php wrde ich mich bestimmt nicht rgern, es wrde mich mal einen Schritt weiter voran bringen ;-)
fiede, der momentan nir if's und echo's sieht
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich kram das Thema mal wieder raus, weil ich mit den Register_Globals = off derzeit auch ein Problem habe.
Die pay.php funktionierte ohne Probleme, bis ich folgende Änderungen vorgenommen hatte:
Wenn ich den Button markiere, geht alles wie gehabt weiter, so wie es geplant ist. Wenn ich das jedoch nicht mache, dann komme ich auf dem lokalen Webserver zurück zur pay.php ohne Formulardaten, oder auf dem Providerwebserver kommen dann haufenweise Fehler dieser Art:
1x: Warning: fopen(./): failed to open stream: Permission denied in [root]\shop\lib.inc.php on line 29
mehrmals: Warning: fgets(): supplied argument is not a valid stream resource in [root]\shop\lib.inc.php on line 32
1x: Warning: fclose(): supplied argument is not a valid stream resource in [root]\shop\lib.inc.php on line 37
Wie kann ich verhindern, dass die Formulardaten bei dem Redirect auf die pay.php gelöscht werden?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Einmal wird versucht eine Formulardatei einzulesen, die wohl angegeben ist, aber nicht geöffnet werden darf.
Entweder die Dateiangabe ist leer, was ich aus "Warning: fopen(./)" schließe oder es hängt an Dateirechten.
fgets() und fclose() sind dann Folgefehler. fopen() gibt einen Fehler und keine Resource zurück. Diese Resource hätten fgets() und fclose() aber gebraucht.
Die beste Lösung wird da wohl sein, vor dem fopen() etwas einzufügen wie
if(file_exists())
{
...fopen() (lib.inc.php line 29)
... weiter wie gehabt.
}
Bin mir nicht ganz sicher, ob das die Lösung ist. In meiner payed.php, wo die besagte Formulardatei geöffnet wird, steht das fopen() in Zeile 17 und das file_exists() ist bereits drin.
In meiner lib.inc.php, aus Deiner Fehlermeldung hervorgeht, gibt es ein fopen() in Zeile 33.
$file = fopen ("./$row[3]", "r");
Falls das also Deine Stelle sein sollte folgende Lösung:
if($row[3]=="" || !file_exists(basename($row[3]))
{
$auto_convert=0;
}
else
{ // die Originalzeilen
$file = fopen ("./$row[3]", "r");
$i=0;
while ($i<32)
{
$line = fgets ($file, 200);
$i++;
}
$line = fgets ($file, 200);
$auto_convert=substr($line,17,1);
fclose($file);
}
Falls Du nur mit einer Währung arbeitest, laß das alles weg und nur
$auto_convert=0;
übrig.
Diese Problematik steht letztlich im Zusammenhang mit der fehlenden Session.
Die Session fehlt und deshalb auch der Name der Konfigurationsdatei. Und einiges andere mehr.
Warum fehlt nun also die Session?
Aus register_globals = off folgt vermutlich auch, daß $sess keinen Wert hat.
Hast Du's mit
header("Location:pay.php?sess=".$_POST["sess"]."&fehler=1");
versucht?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Erst mal ein fettes Danke!
Habe lange nach einem Shop gesucht und auch einige getestet und mich fr diesen Shop entschieden.
Die V2.02 ist um einiges besser als die Vorgngerversion.
Alle Probleme sind Weg! *hpf*
Eine Frage htte ich aber doch noch ;-)*beschmtzubodenguck*
Wie kann man die AGB's zum anklicken machen, so das diese besttigt werden mssen.
Hm, ja, da ist etwas knifflig.
Erstmal mu natrlich eine Checkbox in pay.php her.
<input type=checkbox name=agb value=ja>
Am Anfang von payed.php BEVOR header.inc.php aufgerufen wird, kommt etwas wie:
if ($agb!="ja")
header("Location:pay.php?sess=$sess&error=13");
Damit wird zurck zu pay.php gesprungen. Dort kannst Du dann (anhand von $error) eine Fehlermeldung ausgeben.
Zwei Empfehlungen dazu noch:
- hnliches Vorgehen fr die Widerrufsbelehrung.
- berprfung auch in main.php nochmal, bevor mailer.inc.php und header* included wird.
Das sind aber nur Empfehlungen, damit mit Sicherheit nix schiefgeht.
Gru,
Andreas.
Hatte die Checkbox wunderbar am Funktionieren. Leider nach Umzug auf neuen Webspace funktioniert diese berhaupt nicht mehr. Habe die alte Datenbank wieder eingebunden und alles klappt nur der Teil mit der checkbox beim bezahlen nicht, egal ob markiert oder nicht ich bekomme immer den ERROR 13 und dazu die Mitteilung das der Warenkorb leer ist.
Ich wei mir keinen Rat mehr. Bitte Helft!!
- shopadresse http://www.lalelu-kinderladen.de/shop_1,
Zwei Ideen dazu:
- Da wo die Checkbox geprft wird, gibt's da noch eine SessionID?
- PHP-Version gewechselt und nun gibt es $HTTP_POST_VARS nicht mehr? Vielleicht auch register_globals=off und deshalb wird die Checkbox als nicht-aktiv ausgewertet?
Schreib doch mal vor die Auswertung (testhalber) ein
print_r($_POST);
Dann siehst Du, was berhaupt alles 'ankommt'.
Gru,
Andreas.
Da ich ein PHP-Laie bin, weiss ich nicht, wo ich dies plazieren soll... , was ich nicht verstehe ist das alles geht, nur bei pay.php der vorgang wie abbricht egal ob die orginale genommen wird oder die abegenderte... an dieser stelle bricht alles ab und es kommt kein Verkaufsvorgang zustande....
Ich bin am Ende und weiss mir keinen Rat mehr :-(
Also eins habe ich jetzt definitiv herausgefunden (dank deiner Hilfe ;) ), die registers_global sind off!!
kann man da was tun, das der Shop auch so funktioniert? Oder was kann ich da nur den Anbieter wechseln.? Danke fr die Anworten
Dann ist wenigstens schon mal klar, warum's nicht fuktioniert.
Du mut jetzt eigentlich nur die berprfung der Checkbox, die derzeit etwa so aussieht:
if ($agb != "ja")
ersetzen durch
if ($_POST["agb"] != "ja")
Zur Thematik register_globals gibt's hier im Forum aber schon etwas zu lesen. Teilweise funktionierts auch schon.
Fr den Bilder-Upload in /admin/header.inc.php wirst Du etwas einfgen mssen wie:
if(is_array($_FILES) && count($_FILES)>0)
{ extract($_FILES);
if (is_array($npicfile))
{
$tnpicfile_name = $npicfile['name']; $tnpicfile_type = $npicfile['type'];
$tnpicfile = $npicfile['tmp_name']; $tnpicfile_size = $npicfile['size'];
$npicfile_name = $tnpicfile_name; $npicfile_type = $tnpicfile_type;
$npicfile = $tnpicfile; $npicfile_size = $tnpicfile_size;
}
}
Oder
extract($HTTP_POST_FILES);
Am PHP-Manual (http://www.php.net/de/manual) wirst Du auf Dauer allerdings nicht vorbeikommen ;-)
Gru,
Andreas.
Danke! :) fr die schnelle Antwort; das hilft mir jetzt ersteimal - werde nochmal das Forum durchforsten...wegen die register-globals ;)
Danke!
Die Checkbox funktioniert, nur die Fehlermeldung wird nicht angezeigt *wiedermalverlegenguck*
In pay.php verarbeitest Du den Fehler auch irgendwie?
Da die Abfrage nicht dabei ist, wird der Fehler 13 auch standardmig nicht behandet ... ;-)
Die Verarbeitung des Fehlers gehrt nicht in den switch ...case-Teil, der wird nur beim Daten ndern verwendet, wie aus if($mode=="edith") zu ersehen ist.
Die AGB-Checkbox wird ja aber unabhngig davon gebraucht.
Ein if($error==13) echo $error13; wre also in der Nhe der Checkbox sinnig.
Gru,
Andreas.
Achso, bin leider (kans ja auch nicht verstecken :-) ein PHP Laie, wenn ich diese Bezeichnung schon tragen darf :-)
Ich habe mir die pay.php schon einige Stunden betrachtet und Experimentiert.
Das einzige, aber auch das allereinige was mir gelungen ist, ist nach dem nicht akzeptieren der AGB's die spanische Anmeldeaufforderung kommt.
Jetzt fragt mich aber bitte nicht wie ich es geschafft habe *grins*
Also ber einen kleinen Tip fr die pay.php wrde ich mich bestimmt nicht rgern, es wrde mich mal einen Schritt weiter voran bringen ;-)
fiede, der momentan nir if's und echo's sieht
Ich hab's *hpf*
href=\"agb.php\" target=\"bsites\"> $pay_22b.</a>\n";
echo " $error13 \n";
den Zeilenumbruch habe ganz unbrokratisch in den Errortext eingebaut.
Keine Ahnung ob es Fachmnnisch ist, es funktioniert aber
Ich kram das Thema mal wieder raus, weil ich mit den Register_Globals = off derzeit auch ein Problem habe.
Die pay.php funktionierte ohne Probleme, bis ich folgende Änderungen vorgenommen hatte:
payed.php:
<?
if ($_POST['agb'] != "ja") {
header("Location:pay.php?sess=$sess&fehler=1");
}
$caller="payed";
require("header.inc.php");
pay.php:
echo "<table align=center width=500>\n";
echo "<tr><td colspan=2>$pay_22a <a href=\"agb.php\" target=\"bsites\">$pay_22b</a>\n";
echo " $pay_22c <a href=lfb.php target=\"bsites\">$pay_22d.</a></td></tr>\n";
echo "<tr><td><input type=\"checkbox\" name=\"agb\" value=\"ja\"> AGB gelesen und akzeptiert.</td></tr>";
if ($fehler == 1) {
echo "<tr><td><font color=\"red\"> Die AGB müssen bestätigt werden!</font></td></tr>";
}
echo "<tr><td><br><input type=submit value='$pay_24'></form></td>\n";
Wenn ich den Button markiere, geht alles wie gehabt weiter, so wie es geplant ist. Wenn ich das jedoch nicht mache, dann komme ich auf dem lokalen Webserver zurück zur pay.php ohne Formulardaten, oder auf dem Providerwebserver kommen dann haufenweise Fehler dieser Art:
1x: Warning: fopen(./): failed to open stream: Permission denied in [root]\shop\lib.inc.php on line 29
mehrmals: Warning: fgets(): supplied argument is not a valid stream resource in [root]\shop\lib.inc.php on line 32
1x: Warning: fclose(): supplied argument is not a valid stream resource in [root]\shop\lib.inc.php on line 37
Wie kann ich verhindern, dass die Formulardaten bei dem Redirect auf die pay.php gelöscht werden?
Hallo,
also zwei verschiedene Probleme, oder?
Einmal wird versucht eine Formulardatei einzulesen, die wohl angegeben ist, aber nicht geöffnet werden darf.
Entweder die Dateiangabe ist leer, was ich aus "Warning: fopen(./)" schließe oder es hängt an Dateirechten.
fgets() und fclose() sind dann Folgefehler. fopen() gibt einen Fehler und keine Resource zurück. Diese Resource hätten fgets() und fclose() aber gebraucht.
Die beste Lösung wird da wohl sein, vor dem fopen() etwas einzufügen wie
if(file_exists())
{
...fopen() (lib.inc.php line 29)
... weiter wie gehabt.
}
Bin mir nicht ganz sicher, ob das die Lösung ist. In meiner payed.php, wo die besagte Formulardatei geöffnet wird, steht das fopen() in Zeile 17 und das file_exists() ist bereits drin.
In meiner lib.inc.php, aus Deiner Fehlermeldung hervorgeht, gibt es ein fopen() in Zeile 33.
$file = fopen ("./$row[3]", "r");
Falls das also Deine Stelle sein sollte folgende Lösung:
if($row[3]=="" || !file_exists(basename($row[3]))
{
$auto_convert=0;
}
else
{ // die Originalzeilen
$file = fopen ("./$row[3]", "r");
$i=0;
while ($i<32)
{
$line = fgets ($file, 200);
$i++;
}
$line = fgets ($file, 200);
$auto_convert=substr($line,17,1);
fclose($file);
}
Falls Du nur mit einer Währung arbeitest, laß das alles weg und nur
$auto_convert=0;
übrig.
Diese Problematik steht letztlich im Zusammenhang mit der fehlenden Session.
Die Session fehlt und deshalb auch der Name der Konfigurationsdatei. Und einiges andere mehr.
Warum fehlt nun also die Session?
Aus register_globals = off folgt vermutlich auch, daß $sess keinen Wert hat.
Hast Du's mit
header("Location:pay.php?sess=".$_POST["sess"]."&fehler=1");
versucht?