php-script als cgi

php-script als cgi

am 04.10.2004 23:39:48 von Siegfried Maurus

Hallo Zusammen,

ich habe eine MySql-Seite die mir viele Produkte ausgibt. Die der User durch
anwählen auf ein Submit-Button in den Warenkorb legen kann. Nun mein
Problem. Da ich die Artikelnummer als Variable speichere muß ich ein
Seitenrefresch (Seite neu aufrufen) durchführen. Das bedeutet der User muß
wieder bis nach unten scrollen. Was nicht in meinen Sinne ist.

Deshalb wollte ich die Speicherung in ein CGI-Script legen. Um keinen neuen
Seitenauruf starten zu müssen.
Doch bei mir geht das nicht. Wenn ich im Form-Tag /cgi-bin/script.php
aufrufe meldet Apache nur einen Fehler.

Deshalb meine Fragen:

1. PHP ist als Modul installiert. Kann man dann Php-Scripte erstellen, die
als Cgi laufen.
2. Wenn ja wäre es nett wenn ich die Einstellungen der php-ini und ein Stück
Quelltext bekommen könnte.

Vielen Dank im Voraus.

Re: php-script als cgi

am 05.10.2004 10:04:13 von Martin Willisegger

Hallo

Siegfried Maurus schrieb:

> ich habe eine MySql-Seite die mir viele Produkte ausgibt. Die der
> User durch anwählen auf ein Submit-Button in den Warenkorb legen
> kann. Nun mein Problem. Da ich die Artikelnummer als Variable
> speichere muß ich ein Seitenrefresch (Seite neu aufrufen)
> durchführen. Das bedeutet der User muß wieder bis nach unten
> scrollen. Was nicht in meinen Sinne ist.

Dann lege einen HTML Textanker an und rufe die Seite mit diesem wieder auf -
dann scrollt es automatisch bis zur gewünschten Stelle.

Im HTML an der gewünschten Stelle einfügen:


Seite erneut aufrufen mit :
http://www.domain.tld/seite.php#hierher

> Deshalb wollte ich die Speicherung in ein CGI-Script legen. Um keinen
> neuen Seitenauruf starten zu müssen.

Wie stellst Du Dir das vor? Auch ein CGI lädt die Seite neu....

> Doch bei mir geht das nicht. Wenn ich im Form-Tag /cgi-bin/script.php
> aufrufe meldet Apache nur einen Fehler.

Du könntest versuchen das Script so zu modifizieren:

#!/usr/bin/php <- bzw. absoluter Pfad zum PHP Binary!
[Code]
?>

und die Endung von .php auf .cgi abzuändern. Allerdings wäre es hilfreich zu
wissen, wie der entsprechende Apache für CGI konfiguriert ist.

> 1. PHP ist als Modul installiert. Kann man dann Php-Scripte
> erstellen, die als Cgi laufen.

Ja.

> 2. Wenn ja wäre es nett wenn ich die Einstellungen der php-ini und
> ein Stück Quelltext bekommen könnte.

Ist eher eine Frage der Apache CGI konfiguration und die bekommst Du in
de.comm.software.webserver.

Viele Grüsse

Martin

Re: php-script als cgi

am 05.10.2004 13:09:16 von Thomas Schulz

Martin Willisegger wrote in de.comp.lang.php.misc:

> Dann lege einen HTML Textanker an und rufe die Seite mit diesem wieder
> auf - dann scrollt es automatisch bis zur gewünschten Stelle.
>
> Im HTML an der gewünschten Stelle einfügen:
>
>
> Seite erneut aufrufen mit :
> http://www.domain.tld/seite.php#hierher

Bleibt die Frage: Wie soll das "erneut aufrufen" genau aussehen?

ThS.

Re: php-script als cgi

am 05.10.2004 14:04:41 von Martin Willisegger

Hallo

Thomas Schulz schrieb:

> Martin Willisegger wrote in de.comp.lang.php.misc:
>> Im HTML an der gewünschten Stelle einfügen:
>>
>>
>> Seite erneut aufrufen mit :
>> http://www.domain.tld/seite.php#hierher
>
> Bleibt die Frage: Wie soll das "erneut aufrufen" genau aussehen?

Der OP schreibt von einem "Seitenrefresh" - wie er das macht verrät er uns
nicht. Grundsätzlich muss beim Aufrufen einer Seite mit solchem Anker
einfach das "#hierher" an die URL angehängt werden, wobei eine Seite
beliebig viele unterschiedliche Textanker enthalten kann. Mit PHP können die
ja für jeden Abschnitt dynamisch erzeugt werden und wenn dann im
entsprechenden Abschnitt noch ein Link in der Art "Hinzufügen" eingefügt
wird mit dem Verweis $_SERVER['PHP_SELF']."?artikel=567&add=1#anker567"
springt der Browser gleich wieder zum gewünschten Abschnitt.

Viele Grüsse

Martin

Re: php-script als cgi

am 05.10.2004 18:52:10 von Thomas Schulz

Martin Willisegger wrote in de.comp.lang.php.misc:

> Der OP schreibt von einem "Seitenrefresh" - wie er das macht verrät er
> uns nicht. Grundsätzlich muss beim Aufrufen einer Seite mit solchem
> Anker einfach das "#hierher" an die URL angehängt werden,

Soweit ich mich erinnere, geht das aber nicht im Zusammenhang mit
header().

Das Problem des OP's ist sein kaputtes Design. Am besten ist es, die
Liste dynamisch auszugeben und am Beginn des Scripts das Hinzufügen zum
Warenkorb zu erledigen. Dann brauchts kein wie-auch-immer-refresh.

ThS.

Re: php-script als cgi

am 05.10.2004 19:11:11 von Martin Willisegger

Hallo

Thomas Schulz schrieb:

> Soweit ich mich erinnere, geht das aber nicht im Zusammenhang mit
> header().

Warum sollte das nicht gehen?

header("Location:
http://www.domain.tld/artikel.php?add=1&artikel=567#anker567 ");
funktioniert jedenfalls problemlos.

> Das Problem des OP's ist sein kaputtes Design. Am besten ist es, die
> Liste dynamisch auszugeben und am Beginn des Scripts das Hinzufügen
> zum Warenkorb zu erledigen. Dann brauchts kein wie-auch-immer-refresh.

Aufgrund des Beschriebs könnte ich jetzt noch nicht entscheiden ob das
Design kaputt ist. Ausserdem kann ich mir durchaus einen Onlineshop
vorstellen, welcher einfach eine dynamisch aufgebaute Liste der Artikel
anzeigt und bei dem man hinter jedem Artikel einen Link "Add to Basket"
anklicken kann. Glaube sowas sogar schon mal gesehen zu haben.

Viele Grüsse

Martin

Re: php-script als cgi

am 05.10.2004 22:50:54 von Siegfried Maurus

Vielen Dank für eure schnellen Antworten.
So wie es aussieht habe ich mein Problem nicht richtig formuliert. Aber
Martin beschreibt es am besten.
Es geht darum das bei jedem Artikel ein Button "In Warenkorb" vorhanden ist.
Nach drücken des Button ruft sich die Seite selber auf. Und die
Artikelnummer wird als Session-Variable gespeichert.

Ich werde es mit der Anker-Technik versuchen.

Zu PhP als CGI. Habe nur keinen HTML-Header in das Script geschrieben. Mit
fuktioniert es.
Aber leider nicht so wie ich gedacht habe. Meine Gedanke war es, wie eine
Funktion aufzurufen. Das dann wieder zur Aufrufenden Seite zurückspringt.
Ohen jegliche Ausgabe.


"Siegfried Maurus" schrieb im Newsbeitrag
news:cjsgal$p0m$1@online.de...
> Hallo Zusammen,
>
> ich habe eine MySql-Seite die mir viele Produkte ausgibt. Die der User
> durch anwählen auf ein Submit-Button in den Warenkorb legen kann. Nun mein
> Problem. Da ich die Artikelnummer als Variable speichere muß ich ein
> Seitenrefresch (Seite neu aufrufen) durchführen. Das bedeutet der User muß
> wieder bis nach unten scrollen. Was nicht in meinen Sinne ist.
>
> Deshalb wollte ich die Speicherung in ein CGI-Script legen. Um keinen
> neuen Seitenauruf starten zu müssen.
> Doch bei mir geht das nicht. Wenn ich im Form-Tag /cgi-bin/script.php
> aufrufe meldet Apache nur einen Fehler.
>
> Deshalb meine Fragen:
>
> 1. PHP ist als Modul installiert. Kann man dann Php-Scripte erstellen, die
> als Cgi laufen.
> 2. Wenn ja wäre es nett wenn ich die Einstellungen der php-ini und ein
> Stück Quelltext bekommen könnte.
>
> Vielen Dank im Voraus.
>
>
>

Re: php-script als cgi

am 06.10.2004 09:47:38 von Frank Schenk

Siegfried Maurus wrote:

> Vielen Dank für eure schnellen Antworten.
> So wie es aussieht habe ich mein Problem nicht richtig formuliert. Aber
> Martin beschreibt es am besten.
....
[ToFu entsorgt]

Viel Erfolg und lies bitte http://learn.to/quote


Gruss, Frank

#anker in header("Location: ...") (was: php-script als cgi)

am 06.10.2004 11:35:19 von Thomas Schulz

Martin Willisegger wrote in de.comp.lang.php.misc:

>> Soweit ich mich erinnere, geht das aber nicht im Zusammenhang mit
>> header().
>
> Warum sollte das nicht gehen?
>
> header("Location:
> http://www.domain.tld/artikel.php?add=1&artikel=567#anker567 ");
> funktioniert jedenfalls problemlos.

Das etwas funktioniert, heißt noch lange nicht, dass es standardkonform
ist und jeder Browser sich so verhält.

Der #Anker ist eine browserseitige und von Content abhängige Sache und
nicht Teil des auf dem Server ankommenden Requests. Warum sollte dann der
Server, wenn er per Location spricht: "Die angeforderte Seite findest du
jetzt hier" plötzlich einen #Anker mitschicken?

HTTP kennt nur URI's - und #Anker ist nicht Teil der URI:

RFC 2396 - Uniform Resource Identifiers (URI): Generic Syntax
http://www.faqs.org/rfcs/rfc2396.html

4.1. Fragment Identifier
"... As such, it [#Anker] is not part of a URI, but is often used in
conjunction with a URI."

Wie man das geswünschte Verhalten standarkonform erreicht, würde mich
aber auch mal interessieren. Theoretisch könnte der Browser ja den #Anker
des ursprünglichen Requests auf das Ergebnis des Redirects anwenden.

>> Am besten ist es, die
>> Liste dynamisch auszugeben und am Beginn des Scripts das Hinzufügen
>> zum Warenkorb zu erledigen.

> Ausserdem kann ich mir durchaus einen Onlineshop
> vorstellen, welcher einfach eine dynamisch aufgebaute Liste der Artikel
> anzeigt und bei dem man hinter jedem Artikel einen Link "Add to Basket"
> anklicken kann.

Nichts anderes hatte ich gemeint. Am "Beginn des Scripts" ein
$_REQUEST['add_to_basket'] auswerten und dann die Liste wieder ausgeben.

F'up und X-Post nach d.c.l.p.netzprotokolle


ThS.