Aussensaiter Forum

Diskussionen mit neuen Beiträgen

Hier darf jeder frei heraus seine Meinung sagen, solange niemand beleidigt wird. Auf Postings von Vollidioten sinnvollerweise gar nicht erst antworten.
Extrem unerwünscht sind reine Werbe-Beiträge. Danke.

Derzeit nix Neues in der AS-Börse - vielleicht magst Du das ändern?

Demnächst: CORDUROY bei Musik am Fluss, Blauer Steg, Frankfurt Rödelheim am Samstag, den 25. Mai 2024, gegen 18:00 Uhr.

(-) Header verbergen



Übersicht

PHP wer kann das ?

Greetinx,

mein Serveranbieter hat jetzt auf PHP V5.5 umgestellt. Jetzt läuft mein PHP Script für Formularauswertung nicht mehr. Wenn ich mein bisheriges Script lange genug anschaue verstehe ich es sogar - nur ändern ??

Hier ist das jetzige Script (kann das jemand auf PHP 5.5 umstellen ?? ):

  $recipient = "email@domaine.de";
  $fmtResponse= implode("", file("Bestellresponse.htt"));
  $fmtMail= implode("", file("Bestellmail.htt"));
  foreach($_POST as $key=> $val) {
    $fmtResponse= str_replace("", $val, $fmtResponse);
    $fmtMail= str_replace("", $val, $fmtMail);
  }
  if ($_POST["access"] == "irregeheim") {
    mail($recipient, $_POST["subject"], $fmtMail);
  }
  echo $fmtResponse;
?>

Habe auch schon sehr viel mit der HOTLINE von 1&1 telefoniert. Die haben keine Lösung. Ich brauche jetzt auch ev. Stunden um eine Lösung zu finden - habe aber dazu keine Zeit - UND - solange läuft das Bestellformular nicht.

Also - wer kann helfen - please !!!

GruZZ *


Re: PHP wer kann das ?

moin Tom,

es gibt keine Fehlermeldung - weil die variablen zB "value" leer sind wird einfach keine Mail zugestellt.

Ich habe gestern die halbe Nacht dafür gebraucht das rauszufinden. Erst hab ich auch PHP Fehler - email-zustell fehler etc. vermutet.

Wenn ich in dem Script die access Abfrage entferne - kommt eine Email mit leeren Daten. So bin ich erst draufgekommen.

Habe inzwischen im Google gesucht&gesucht - nix passendes gefunden - bis jetzt.

Es fehlt im Prinzip nur eine Anweisung wie ich auf das $_Post Array zugreifen kann.

GruZZ *


Re: PHP wer kann das ?

Hi Lone*

sorry, war den ganzen Tag mit Arbeit zugeschüttet, komme erst jetzt dazu…

Also, das $_POST steht Dir definitiv auch nach einem php upgrade zur verfügung.

hast du mal n var_dump($_POST); gemacht und gesehen, ob Deine erwateten values da auch ankommen? Weitere Verdacht könnte das file(...); sein -- evtl hat sich da beim php Upgrade was verändert, weil das braucht glaube ich fopenallow und evtl ist das bei neueren php Versionen erstmal nicht aktiviert, wegen security und so.

gruss
Tom


Re: PHP wer kann das ?

Hi Tom,

inzwischen - wie von geisterhand geht es wieder - auch ohne mein zutun ...

Ich denke - da haben einige (weitere Betroffene) angerufen (1&1) - und die haben was eingebaut. Sie haben zwar vehement bestritten was geändert zu haben - aber ich glaube denen nicht.

Ausserdem habe ich durch lesen von gefühlt 2000 PHP Seiten u. Scripten das nun bißchen besser gelernt...

Was ich nicht genau versteh - und auch nirgend genau gefunden habe - wie werden die Formulardaten genau an das PHP Sript übergeben. Man kann nur lesen, daß sie es tun.

Unter dem Stichwort Register_globals kann man lesen, daß einfaches auslesen ab PHP 5.3 nicht mehr geht.

Bei 1&1 aber schon jetzt wieder - trotzdem habe ich nix gefunden wie man das anpassen könnte. Mein Script ist noch aus der 4.x Zeit und sollte nach der Theorie auch nicht mehr so laufen. Egal - jetzt habe ich Zeit gewonnen um weiter zu Suchen (nach einer kleinen Pause).

Bist Du da fit ? Im Prinzip bräuchte man ja nur eine Methodik um das globale Array vom Server nach $_POST zu übertragen - dann könnte das Script auch länger so bleiben - allerdings wie gesagt - es blieb mir verborgen wie das gemacht wird.

Im Prinzip kann das ja auch nur über die URL Zeile laufen (wie $_GET) - wo sonst können Daten weitergereicht werden ?!

GruZZ *


Re: PHP wer kann das ?

hi lone*,

ja, einigermaßen fit, weil genau den spaß hatte ich hier im forum, als ich das php5 tauglich machte.

also, ich weiss ja nicht, wie du das machst, bevor das script da an die daten kommt. aber angenommen, du hast ein formular im html und gibts dort als action die php datei an und als method POST, dann steht dir ohne register globals die eingabe aus dem formular in dem $_POST array zur verfügung. also feldname "sender_name" wird dann zu $_POST['sender_name']. bei register globals auf on könntest du direkt $sender_name benutzen.

erster schritt wäre also, wenn dein script irgendwo mit $sender_name arbeit, ganz oben

$sender_name = $_POST['sender_name'];

zu setzen, damit es weiter unten im script nicht knallt.

wenn dein formular als action GET benutzt, gilt im Prinzip das gleiche, nur halt mit $_GET.

es gibt auch noch $_REQUEST, da wären dann get und post variablen drin und ggf noch ein paar mehr.

auf diese art hatte ich die meisten der scripte hier unter der haube im ersten schritt unabhängig von register_globals bekommen.

kniffeliger wird es, wenn du funktionen benutzt, die einfach $sender_name benutzen. da register_globals die dinger eben 'global' bereitstellt (und zwar alles, was per get,post oder url parameter an das script übergeben wird - was auch der grund ist, warum es mittlerweile fast überall deaktiviert wird), kann die funktion das direkt benutzen.

ohne musst du der funktion erst sagen, dass es da eine $sender_name variable gibt, entweder als parameter im aufruf,

function machwas($sender_name){....}

oder in der funktion als global $sender_name

function machwas(){

  global $sender_name;

}

Naja, wenns nun läuft… in dem abschnitt den du heute früh angegeben hast, sehe ich nix, was nach register_global schreien würde. :/

wie sieht denn so eine htt datei aus, die du drin benutzt?

gruss

Tom


Re: PHP wer kann das ?

Moin Tom, Danke - habe ich auch verstanden - nachdem was Du schreibst hätte das Script eigentlich immer laufen müssen.

Es wird ja ausschliesslich über $_POST zugegriffen.

Meine Frage: wo/wie werden die $_POST Inhalte übergeben? Es sind ja keine "Parameter" wie in einer Prozuedur/Funktion (Speicher) - oder ein anderes Medium (File, Datenbank) ?

Deine Frage: diese *.htt ist eine Art Template (simple WordpadDatei) für die Darstellung der Formularfelder in der EMail. Ich kann das damit hauptsächlich formatieren - das mache ich flexibel in einem Editor. Finde ich schon gut - gäbe es was noch besseres ? Die Tabs sind hier (Bsp) auf den Schrifttyp des Email Programms abgestimmt.

Hier ein Bsp: (die beinhalten die $_POST Daten - eh klar ...)

Auftrag: wurde gesendet:
Kunden Daten:
Kundenr.   
Name       
Vorname         
Strasse           
Nr.                    
PLZ                    
Ort                    
Land               

GruZZ *


*.htt

Auftrag: *AnfrageArt* wurde gesendet:
Kunden Daten:
Kundenr.    *Kundennr*
Name        *Name*
Vorname          *Vorname*

etc.

wobei die Sterne **  hakl auf und hakl zu sind - weis nicht wie man das hier darstellt - wird immer weggelöscht ...


Re: PHP wer kann das ?

Hi Lone*

Du hast eine Seite A, auf der ist ein Formular.

Das ist per form action="" entweder mit sich selbst oder einer anderen seite B verbunden. durch die angabe der method="" wird gesteuert, wie die formulardaten als parameter an diese seite übergeben werden. nach absenden des formulars liegen diese dann als einträge in dem $_POST oder $_GET oder $_REQUEST vor, die von der empfangenden seite ausgelesen werden können. ich denke intern wird das irgendwie über die Session des Browsers gemacht.

wenn du als method "GET" angibst, siehst du nach absenden des formulars die felder und werte der felder als querystring, also b.php?feldname=feldwert&anderesfeldname=andererwert usw.

"POST" macht das gleiche, nur eben quasi direkt, also ohne, dass es in der url sichtbar und manipulierbar ist.

was mich in deinem script wundert ist der loop über das komplette $_POST array, und dann das ersetzen von vorkommen von "" (also nix) mit irgendwas aus der htt. oder hat hier das aussensaiterformular die tags rausgeschmissen, die eigentlich in dem script stünden? so wie es momentan da zu sehen ist, kann das eigentlich nicht funktionieren...  da müsste irgendein platzhalter in der htt stehen, der dann aber auch in dem str_replace auftaucht - sonst kommen eben keine ersetzungen vor und dann würde genau das passieren was du beschreibst - steht halt nix drin von dem, was ins formular eingegeben wurde

gruss

tom


Re: *.htt

: Auftrag: *AnfrageArt* wurde gesendet:
: Kunden Daten:
: Kundenr.    *Kundennr*
: Name        *Name*
: Vorname          *Vorname*
: etc.
: wobei die Sterne **  hakl auf und hakl zu sind - weis nicht wie man das hier darstellt - wird immer weggelöscht ...

ah, ok, dann hat sich meine frage aus der vorigen antort erledigt :)

gruss

tom


Re: PHP wer kann das ?

...ich denke intern wird das irgendwie über die Session des Browsers gemacht...

Zu diesem Thema finde ich nix in Google. Ist schon merkwürdig, daß solche elementaren Informationen so schwer zu finden sind...

Überhaupt seit ich letztes Jahr (Du erinnerst unsere Komunikation) mit diesem Hakl Zeugs + CSS angefangen habe - habe ich sehr viele Stunden mit suchen verbraucht. Bin zwar froh es gemacht zu haben - inzwischen fühle ih mich langsam daheim - und grade CSS hilft mit ausserordentlich. Möchte ich nie mehr missen !

Ein Bsp. ich sah immer so Art Banderollen auf fremden Seiten - das habe ich auch wochenlang gesucht (natürlich nicht tagfüllend...) und inzwischen zufällig gefunden: 3D Ribbons - wenn man den Begriff hat gehts voran - nur diese Begriffe immer zu finden - oder Karussel Slider etc...

Naja - Hauptsache das Script geht.

etzt wollte ich noch die Absender Mail (quasi der Auftraggeber) aus dem Form auslesen und in die Mail (Add_Header) eintragen - dann könnte man direkt retournieren - geht nicht, weil 1&1 das immer überschreibt mit 1&1CGIMailer oderso.

Tssss

GruZZ *