Problem das ich nicht verstehe

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
cb-funker
Mitglied
Beiträge: 5
Registriert: 11.01.2005 19:48

Problem das ich nicht verstehe

Beitrag von cb-funker »

Moin Moin

ich habe ja ein bestell script geschrieben, ok
in einem anderen ordner habe ich ein phpbb forum installiert,
ok bevor ich das forum installiert habe, lief alles ok,
jetze steht noch ne zeile bei der bestell mail drin:
phpbb2mysql_data: a:2:{s:11:\"autologinid\";s:32:\"16c258518a970da370be53b454c1afe1\";s:6:\"userid\";i:2;}
phpbb2mysql_sid: a112c540bafd619514183366769364a0

dabei arbeitet der bestell script nicht mit der mysql

woran kann das liegen ???
wie kann ich sowas abstellen ??

mfg
dennis[/quote]
lenni
Mitglied
Beiträge: 202
Registriert: 25.10.2004 16:25

Beitrag von lenni »

Schaut mir wie ein cookie aus...
cb-funker
Mitglied
Beiträge: 5
Registriert: 11.01.2005 19:48

Beitrag von cb-funker »

und wie kann man es verhindern das es nicht mitgesendet wird ??
lenni
Mitglied
Beiträge: 202
Registriert: 25.10.2004 16:25

Beitrag von lenni »

Ist es ein von Dir programmiertes "Bestellsystem"?

Falls ja: Ohne den Quellcode zu sehen kann man Dir m.E. wohl kaum helfen.
cb-funker
Mitglied
Beiträge: 5
Registriert: 11.01.2005 19:48

Beitrag von cb-funker »

Code: Alles auswählen

<?php

$Empfaenger = "bestellung@hardtek.de";

if($_REQUEST['post'])
{
   if(empty($_REQUEST['vorname']) || empty($_REQUEST['e-mail']) || empty($_REQUEST['ort']))
   {
      echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
   }
   else
   {
      $Mailnachricht = "Sie haben folgenden Nachricht erhalten: \n\n";
      while(list($Formularfeld, $Wert)=each($_REQUEST))
      {
         if($Formularfeld!="Send")
         {
            $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
         }
      }
      $Mailnachricht .= "\nDatum/Zeit: ";
      $Mailnachricht .= date("d.m.Y H:i:s");
      $Mailbetreff = "Kontakt: ";
      $Mailbetreff .= $_REQUEST['Betreff'];
      mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST['email']);
      echo"Vielen Dank für Ihre Bestellung! wir senden schnellst möglich Ihre zugangsdaten!!";
   }
}
else
{
   echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"bestellen.html\">Seite</a>.";
}

?>
lenni
Mitglied
Beiträge: 202
Registriert: 25.10.2004 16:25

Beitrag von lenni »

Lies die Formularfelder statt in der while Schleife doch direkt aus ...

$_REQUEST['feld1'] ... $_REQUEST['feldn']

Oder ist die Anzahl dynamisch?
cb-funker
Mitglied
Beiträge: 5
Registriert: 11.01.2005 19:48

Beitrag von cb-funker »

Ja die ist Dynamisch
Benutzeravatar
QCO
Mitglied
Beiträge: 708
Registriert: 15.03.2003 12:30
Wohnort: Leipzig

Beitrag von QCO »

Das Problem ist, dass du die Variable $_REQUEST verwendest; die enthält POST, GET und COOKIE-Daten, die der Browser an dein Skript sendet.
Da das phpbb ein Cookie setzt, dass offenbar rein formal auch für dein Bestellskript gültig ist (siehe Cookiepath), sendet der Browser des Users also auch den Cookie mit.
Du kannst also:
  1. $_POST statt $_REQUEST verwenden, weil du doch bestimmt ein Formular hast, dass mittels Post abgeschickt wird
  2. bei deinem phpbb den Cookiepath so ändern, dass er nur noch den Pfad des Forums matched
  3. beim Durchleiten von $_REQUEST überprüfen, ob ungewollte Daten mit dabei sind (z.B. könnte auch ein Nutzer mutwillig andere Daten mitsenden)
Schnelle direkte Hilfe? Modeinbau? Umfassender, persönlicher Support? Ein individuelles Design/Template?
Ich bin käuflich und löse zu kleinen Preisen Deine Probleme. Anfragen bitte per PN oder Mail.
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

Hallo

Zwar habe ich keine Lösung aber zwei generelle Sachen:

a) Der Titel des Topics ist absolut schlecht gewählt. Normalerweise würde ich dieses Topic deswegen schließen. Da aber schon sie viele Antworten vorhanden sind meine Bitte @cb-funker: Ändere den Titel so ab, daß er Sinnvoll ist. Denn nur dann kann dieser Thread über die Suchfunktion sinnvoll gefunden werden und anderen Benutzern helfen.

b) Es ist absolut katastrofal, was Du machst. Du sendes die Daten die per GET kommen direkt per Email, wenn ich das richtig sehe. Dir ist aber schon klar, daß ich auch Viren und co per GET an Dein Script schicken kann? Stelle Dir mal vor, ich schicke Java per GET an Dein Script, welches ein Popup öffnet. Wenn Du jetzt die Email mit Outlook ließt, öffnet sich da dann das Popup. Oder ich füge üger GET weitere Header hinzu. Dann bekommt plötzlich jemand ganz anderes die Email auch noch... Wenn z.B. in email jetzt test@test.de TO:tada@da.de schreibe, hat deine Email einen weiteren Empfänger. Und über BCC könnte die Email sogar dort ankommen (so gut kenne ich die mail() FUnktion aber nicht).
Behandle ALLE Variablen die von Extern sind mit htmlspecialchars() oder ähnlich und prüfe dann nochmal zusätzlich wichtige Variablen. Z.b. ob "email" wirklich eine Email ist. Sie muss also z.B. ein @ haben. (Fertige Funktionen findest Du auch in den phpBB-Dateien).

Grüße
Dennis
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Da Dennis hier schon mit der Kritik um sich schmeisst und dies nicht zu unrecht....

Sollte man aus:

Code: Alles auswählen

if($_REQUEST['post'])
ein

Code: Alles auswählen

if( isset($_REQUEST['post']) )
machen
Antworten

Zurück zu „Coding & Technik“