Bestellungen über e-mail


Status
Nicht offen für weitere Antworten.
0

08/15

HI,

ich schreibe zur Zeit an einem Shop bin fast fertig, es gibt bloß folgendes Problem:
Wenn der Kunde seine Daten eingegeben hat und auf "OK" klickt ruft der Shop ein formular.php auf (was mir freundlicherweise geschrieben wurde)anstatt die e-mail zusenden. ich füge beide seiten (Kasse .HTML und Formular PHP)
anbei. Ich hoffe Ihr könnt mir helfen.....
THX

DIE FORMULAR.PHP SEITE
Code:
<?php
include("class.FastTemplate.php");

function verifyemail($email)
{
  if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $email, $check))
    return TRUE;
  else
    return FALSE;
}

//Klassenmethoden aufrufen
$aTPL = new FastTemplate(".");

$aTPL->define(array('base' => 'error.tpl.html',
		    'item' => 'error-items.tpl.html'));

################################################################################
//Empf&auml;ngeradresse
$to = "[email protected]";

//Betreffzeile
$subject = "Bestellung";

//Redirect Pfad zur danke.html
$redirect = "danke.htm"; //Hier muss die Seite rein, zu der nach versenden weitergeleitet wird
################################################################################

//Werte entlausen
if(count($_REQUEST))
  foreach($_REQUEST AS $key => $var)
  {
    $var = strip_tags($var);     //HTML-JavaScrip-Code entfernen
    $var = trim($var);           //Leere Zeichen entfernen vorne und hinten
    $_REQUEST_ENTL[$key] = $var; //Wieder zur&uuml;ckf&uuml;hren
  }

//F&uuml;r die Werte, die eingegeben werden m&uuml;ssen, pr&uuml;fen ob vorhanden
if(!$_REQUEST_ENTL[Name])
  $error[] = "Geben Sie einen Wert in das Feld \"Name\" ein.";
if(!$_REQUEST_ENTL[Vorname])
  $error[] = "Geben Sie einen Wert in das Feld \"Vorname\" ein.";
if(!$_REQUEST_ENTL[Strasse])
  $error[] = "Geben Sie einen Wert in das Feld \"Strasse\" ein.";
if(!$_REQUEST_ENTL[PLZ])
  $error[] = "Geben Sie einen Wert in das Feld \"PLZ\" ein.";
if(!$_REQUEST_ENTL[Ort])
  $error[] = "Geben Sie einen Wert in das Feld \"Ort\" ein.";
if(!$_REQUEST_ENTL[Land])
  $error[] = "Geben Sie einen Wert in das Feld \"Land\" ein.";
if(!$_REQUEST_ENTL[EMail])
  $error[] = "Geben Sie einen Wert in das Feld \"E-Mail\" ein.";
if($_POST["AGB"] != "ON")
  $error[] = "Damit Ihre Bestellung get&auml;tigt werden kann, m&uuml;ssen Sie unsere<br>Allgemeinen Gesch&auml;ftsbedingungen akzeptieren!";

//Absender-Emailadresse pr&uuml;fen
if($_REQUEST_ENTL[EMail])
  if(verifyemail($_REQUEST_ENTL[EMail]) != TRUE)
    $error[] = "Ihre E-Mailadresse <b>$_REQUEST_ENTL[EMail]</b> ist ung&uuml;ltig.";

//Falls keine Fehler vorhanden, dann Email senden
if(!count($error))
{
  foreach($_REQUEST_ENTL AS $key => $var)
  {
    $key = ereg_replace("_", " ", $key);
    if(!ereg("senden",  $key) and ($var != ""))
      $daten .= $key.": ".$var."\n";
  }

  //Emailheader definieren
  $header  = "From: $_REQUEST_ENTL[Vorname] $_REQUEST_ENTL[Name] <$_REQUEST_ENTL[EMail]>\n";
  $header .= "Return-Path: $return\n";
  $header .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";

  //Email senden
  mail($to, $subject, $daten, $header);

  //redirect
  header("Location: $redirect");
}
else
{
  foreach($error AS $err)
  {
    $aTPL->assign(array('ERROR' =>$err));
    $aTPL->parse('ITEMS', '.item');
  }

  $aTPL->parse('BASE', 'base');
  $aTPL->FastPrint('BASE');
}
?>

UND DIE KASSE.HTML SEITE

<html>
<head>
<!-- SHP3-021215, v3.23 (c) 2002, Erstellt 20.10.04 16:16:52 mit Online-Shop von: www.zwahlen-informatik.ch -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- Lib: intern v3.23 -->
<meta http-equiv="expires" content="600">
<title>Kasse</title>
<link rel=stylesheet type="text/css" href="font.css">
</head>
<script language="JavaScript">
<!--
var gTotal=0.0;
var gTotal2=0.0;
var aVersand=0.0;
var aVersand1=8.90; var aVersand2=0.00; var aVersBetr=0.00;
var aZuschlag=0.0;
function rund(b,c)
{
  if (c==0) return Math.round(b*100)/100;
  return Math.round(b*20)/20;
}
function getBetr(b)
{
	k = (Math.round(100 * (b + 0.00001)) / 100 + 0.001) + '';
	k = k.substring(0, k.indexOf('.') + 3);
        return k;
}
function getBetr2(b)
{
        if (0==0.0) return '';
	return getBetr(b/0);
}
function putsArt(s)
{
if (s=='') return false;
a=s.split('|');
aMenge=a[0];
aNr=a[1];
aTitel=a[2];
aPreis=a[3];
aPreis2=a[4];
aTotal=getBetr(parseFloat(aMenge)*parseFloat(aPreis));
aTotal2=getBetr(parseFloat(aMenge)*parseFloat(aPreis2));
if (isNaN(aTotal2)) aTotal2='';
gTotal=gTotal+(parseFloat(aMenge)*parseFloat(aPreis));
document.writeln('<tr>');
document.writeln('   <td width="13%" valign="top">'+aMenge+'</td>');
document.writeln('	<td width="13%" valign="top">'+aNr+'</td>');
document.writeln('	<td width="44%" valign="top">'+aTitel+'</td>');
document.writeln('	<td width="15%" align="right" valign="top">'+aPreis+'</td>');
document.writeln('	<td width="15%" align="right" valign="top">'+aTotal+'</td>');
document.writeln('</tr>');

}
function versand()
{
aVersand1=parseFloat(aVersand1);
aVersand2=parseFloat(aVersand2);
aVersBetr=parseFloat(aVersBetr);
if (aVersBetr>0.0&&gTotal>aVersBetr)
    aVersand=aVersand2;
else
    aVersand=aVersand1;
if (isNaN(aVersand) || aVersand<=0.0) return false;
gTotal=gTotal+aVersand;
document.writeln('<tr>');
document.writeln('	<td width="13%" valign="top">&nbsp;</td>');
document.writeln('	<td width="13%" valign="top">&nbsp;</td>');
document.writeln('	<td width="44%" valign="top"><br>Versandspesen</td>');
document.writeln('	<td width="15%" align="right" valign="top">&nbsp;</td>');
document.writeln('	<td width="15%" align="right" valign="top"><br>'+getBetr(aVersand)+'</td>');
document.writeln('</tr>');

}
function zuschlag()
{
aZuschlag=0.00;
if (isNaN(aZuschlag) || aZuschlag<=0.0) return false;
gTotal=gTotal+aZuschlag;
document.writeln('<tr>');
document.writeln('	<td width="13%" valign="top">&nbsp;</td>');
document.writeln('	<td width="13%" valign="top">&nbsp;</td>');
document.writeln('	<td width="44%" valign="top"><br></td>');
document.writeln('	<td width="15%" align="right" valign="top">&nbsp;</td>');
document.writeln('	<td width="15%" align="right" valign="top"><br>'+getBetr(aZuschlag)+'</td>');
document.writeln('</tr>');

}
function chkForm(f)
{
var e,ft='Eingabe fehlt: ';
var felder='|Name|Vorname|Strasse|PLZ|Ort|Land|EMail|AGB|';
var param=parent.window.location.search;
if (param !='') f.Param.value=unescape(param.substr(1));
for (i=0;i<f.length;i++)
{
    e=f.elements[i];
    if (felder.indexOf('|'+e.name+'|')>=0&&(e.value==""||e.type=='checkbox'&&!e.checked))
    {
       alert(ft+e.name);
       e.focus();
       return false;
    }
}
    return true;
}
// --></script>
<body bgcolor="#FFFFFF">

<h1>Ihre Bestellung</h1>

<table border="0" width="100%" bgcolor="#C0C0C0" cellspacing="0">
<tr>
	<td width="13%" valign="top"><b>Anzahl</td>
	<td width="13%" valign="top"><b>Nr</td>
	<td width="44%" valign="top"><b>Artikel</td>
	<td width="15%" align="right" valign="top"><b>Preis Euro</td>
	<td width="15%" align="right" valign="top"><b>Total</td>
</tr>
<script language="JavaScript">
<!--
	sArt=parent.getKorb();
	if (sArt.length<1)
	{
		alert('Kein Artikel im Warenkorb!');
		self.location.replace('start.htm');
	}
	gTotal=0.0;
	for (sArti=0; sArti<sArt.length; sArti++)
	{
		putsArt(sArt[sArti]);
	}
        if (gTotal<26.00) {alert("Mindestbestellung:   26.00 Euro\nIhre Bestellung:      "+getBetr(gTotal)+" Euro");self.location.replace("start.htm");}
// --> </script>

<script language="JavaScript"><!--
versand();// --> </script>
<script language="JavaScript"><!--
zuschlag();// --> </script>
<tr>
<td width="13%" valign="top">&nbsp;
</td>
	<td width="13%" valign="top">&nbsp;</td>
	<td width="44%" valign="top">&nbsp;</td>
	<td width="15%" align="right" valign="top">&nbsp;</td>
	<td width="15%" align="right" valign="top">
      <hr>
      <b>Euro <script language="JavaScript"><!--
document.write(getBetr(gTotal));// --> </script>
</b></td>
</tr>

</table>
<hr>
<table border="0" cellspacing="1" width="100%">
  <tr>
    <td width="100%"><b>Konditionen:</b>
      <p>Alle Preise inkl. MwSt.<br>
    </td>
  </tr>
</table>
<hr>
<form name="Formular" action="formular.php" method="GET"  onSubmit="return chkForm(this)">
  <table border="0" width="76%" height="49">
    <tr>
      <td width="27%" height="30" valign="top"><b>Lieferung:</b><br>
        <select size="1" name="Lieferung">
        <option value="UPS">UPS</option>

        </select>
      </td>
      <td width="27%" height="30" valign="top"><b>Zahlung:</b><br>
        <select size="1" name="Zahlung">
        <option value="per Nachnahme">per Nachnahme</option>

        </select>
      </td>
      <td width="21%" height="30" valign="top">

      </td>
    </tr>
  </table>
  <h3>&nbsp;Auftraggeber</h3>
  <table border="0" width="98%" cellspacing="0">
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top">&nbsp;</td>
      <td width="73%">&nbsp;</td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top">Kunden Nr.</td>
      <td width="73%"><input type="text" name="KundenNr" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top">Anrede:</td>
      <td width="73%"><input type="text" name="Anrede" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top">Firma:</td>
      <td width="73%"><input type="text" name="Firma" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top"><b>Name:</b></td>
      <td width="73%"><input type="text" name="Name" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top"><b>Vorname:</b></td>
      <td width="73%"><input type="text" name="Vorname" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top">Zusatz:</td>
      <td width="73%"><input type="text" name="Zusatz" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top"><b>Strasse:</b></td>
      <td width="73%"><input type="text" name="Strasse" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top"><b>PLZ:</b></td>
      <td width="73%"><input type="text" name="PLZ" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top"><b>Ort:</b></td>
      <td width="73%"><input type="text" name="Ort" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top"><b>Land:</b></td>
      <td width="73%"><input type="text" name="Land" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top">Telefon P:</td>
      <td width="73%"><input type="text" name="TelefonP" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top">Telefon G:</td>
      <td width="73%"><input type="text" name="TelefonG" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top">Fax:</td>
      <td width="73%"><input type="text" name="Fax" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top"><b>E-Mail:</b></td>
      <td width="73%"><input type="text" name="EMail" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top">URL:</td>
      <td width="73%"><input type="text" name="URL" size="30" value=""></td>
    </tr>
    <tr>
      <td width="5%">&nbsp;</td>
      <td width="22%" valign="top">&nbsp;</td>
      <td width="73%">&nbsp;</td>
    </tr>
  </table>
  <p><b>Bemerkung:</b><br>
  <textarea rows="5" name="Bemerkung" cols="61"></textarea><br>
  <input type="checkbox" name="AGB" value="ON"> Ich akzeptiere die Allgemeinen Gesch&auml;ftsbedingungen (AGB)</p>
  <p><input type="submit" value="Abschicken" name="B1"><input type="reset"
  value="Zur&uuml;cksetzen" name="B2"></p>
  <input type="hidden" name="to" value="[email protected]"> <input type="hidden" name="subject" value="Bestellung"> <input type="hidden" name="Waehrung" value="Euro"> <input type="hidden" name="Versand" value=""> <input type="hidden" name="Zuschlagtext" value=""> <input type="hidden" name="Zuschlag" value=""> <input type="hidden" name="Total" value=""> <input type="hidden" name="Param" value=""> <input type="hidden" name="Shop" value="Online Shop pro v 3.23, SHP3-021215, Brommelcamp"> <input type="hidden" name="ZFields" value=""> <input type="hidden" name="Inhaber" value="Brommelcamp Printware & Service;;;Karl-Marx Strasse 171;De;12043;Berlin;http://www.brommelcamp.de">
<script language="JavaScript">
<!--
	if (sArt.length>0)
	{
		for (sArti=0; sArti<sArt.length; sArti++)
		{
			document.writeln('<input type="hidden" name="Artikel[]" value="'+sArt[sArti]+'">');
		}
	}
if (aVersand>0.0) document.Formular.Versand.value=getBetr(aVersand);
document.Formular.Zuschlag.value=getBetr(aZuschlag);
document.Formular.Total.value=getBetr(gTotal);
// --> </script>
</form>
</body>
</html>
 

Gumbo

Erfahrenes Mitglied
Aber das formular.php-Skript muss aufgerufen werden, damit eine E-Mail versandt wird.

Wo genau liegt das Problem?
 
0

08/15

das problem liegt darin:
der kunde gibt seine daten an drückt "OK" dann wird auf einmal der quellcode von formular.php angezeigt(!) und der shopinhaber bekommt keine e-mail.....
 
0

08/15

AHA!
kann ich einfach php installieren Ist ein win98 rechner falls das wichtig ist
 

Dennis Wronka

Soulcollector
Mit "einfach PHP installieren" ist es da nicht getan.
Du musst dem Webserver auch zu verstehen geben, dass er jetzt PHP kann. Also genauer gesagt, dass er die .php-Files durch den PHP-Interpreter jagen soll.

Du nutzt als Web-Server Apache nehme ich an? Dann ist dort die httpd.conf Dein Freund.
Informationen ueber was zu machen ist sind in der in PHP enthaltenen Installations-Anleitung zu finden.
PHP selbst bekommst Du auf www.php.net
 
0

08/15

Also mein web-server ist strato.de
ich dachte ich müsste php auf meinen rechner installieren
 

Dennis Wronka

Soulcollector
strato.de ist kein Webserver, sondern ein Webhoster. Die haben dort Server auf denen ein Webserver laeuft, wahrscheinlich Apache.
Da PHP eine serverseitige Scriptsprache ist wird das auf dem Client absolut nicht benoetigt, aber der Server muss PHP unterstuetzen.

Ist in Deinem Webhosting-Paket PHP enthalten?
 

Gumbo

Erfahrenes Mitglied
Wenn du das Skript lokal testen möchtest, benötigst du sowohl einen Webserver als auch einen PHP-Interpreter. Dass dein Konto bei Strato dies besitzt, davon bin ich überzeugt.
 
0

08/15

Also ich teste es Online:
http://www.print-technology.de/Shop/

könnt ihr ja mal aus spaß testen (es kommt natürlich keine Ware!Ihr könnt zur eigenen sicherheit auch "hjkgfkhgf" beim namen eingeben)

und mir bitte sagen wo der fehler ist...

Um was zu bestellen könnt Ihr bei "xerox" und "toner" rein ......
 
Zuletzt bearbeitet von einem Moderator:

Dr Dau

ich wisch hier durch
Hallo!

Nur so als Anmerkung:
Du willst mit der Seite Geld verdienen?
Dafür ist ein JavaScript basiertes "Shopsystem" aber alles andere als geeignet.
Ferner solltest Du auch auf ein JS basiertes Menü verzichten.
Kurz gesagt, wer JS deaktivert hat (sollte heute eigentlich jeder haben), wird ganz sicher nicht dein Kunde, geschweige denn dass er sich "nur mal umsehen" könnte.

Ausserdem hat die Seite Darstellungsfehler unter den verschiedenen Browsern.

Verstehe mich nicht falsch, dass soll keine Kritik sein sondern ein nett gemeinter Hinweis.
Letzten endes musst Du selber wissen wie Du den Shop realisiersern willst und musst ggf. mit den daraus hervortretenden Konsequenzen klar kommen.

Gruss Dr Dau
 
0

08/15

Welche anderen Möglichkeiten gäbe es den so ein shop zu kreieren?

Ich kenne mich mit HTML und Javascript halt einigermaßen aus und dachte ich könnte für meine firma ein shop schreiben.
Hätte auch nicht gedacht das viele User Javascript nicht aktivieren.....

Aber bevor ich mit nem neuen shop von vorne anfange würde ich gerne den Fehler wissen......

Warum wird man nicht weitergeleitet
 

Gumbo

Erfahrenes Mitglied
Mit HTML und JavaScript allein wirst du nicht weit kommen. Denn beispielsweise müssen die Einkäufe der Benutzer irgendwo gespeichert werden, und dass geht nur mit einer serverseitigen Lösung.
 

Dennis Wronka

Soulcollector
Ich wuerde Dir raten so viel wie moeglich auf JavaScript zu verzichten, und vor allem keine wichtigen Funktionen in JavaScript zu realisieren, damit jeder den Shop nutzen kann.
Wer sein JavaScript deaktiviert hat wird es sicher nicht extra aktivieren um bei Dir einkaufen zu koennen, ausser Du bietest vielleicht was absolut besonderes.

Das beste waere wohl den Shop erstmal ohne JavaScript zu schreiben und dann zusaetzliche Funktionen bei Moeglichkeit zu nutzen. Dazu kannst Du ueberpruefen ob JavaScript aktiviert ist und dann diese kleinen Zusatzfunktionen anbieten.
Unter Zusatzfunktionen koennte z.B. ein JS-Menue oder eine Bannerrotation fallen. Aber auch andere Sachen, die mir jetzt spontan nicht einfallen.

Ueberpruefung von Cookies und JavaScript mit PHP
 
0

08/15

Ja ich werde mir wohlm einen neuen shop ohne javascript zulegen.

Aber ich wüsste dennoch gerne den Fehler auf der seite...... Hat irgendjemand eine idee?
 

Dr Dau

ich wisch hier durch
Deaktiviert..... nicht aktiviert.
Man sollte JS deaktiveirt haben, genauso wie z.b. AktiveX.
Beide bringen gewissen Sicherheitsrisiken mit sich, z.b.: Viren, Trojaner und Würmer.
Der Besucher weiss ja nicht wie vertrauenswürdig die Seite ist und sollte daher zumindest die Gelegentheit bekommen sich davon zu überzeugen.
Natürlich musst Du nicht gänzlich auf JS verzichten, jedoch solltest Du es auf ein minimum reduzieren, so dass die Seite auch bei deaktiviertem JS noch benutzbar ist.
Mit CSS bekommt man schon viele Effekte hin, siehe z.b. die Hovereffekte der Buttons hier auf tutorials.de.
Auch musst Du unbedingd darauf achten dass die Seite mit den verschiedenen Browsern kompatibel ist.
Die Anzahl derer die den IE nutzen sind zwar noch die Mehrheit aber die Statistiken zeigen dass immer mehr auf alternative Browser und/oder gar gleich auf alternative Systeme wechseln.

Ein Shop solltest Du mit PHP und MySQL realisieren, dazu können dir Gumbo und reptiler sicherlich nützliche Tips/Links nennen.
Eine MySQL basierte Datenbank ist auch (zumindest so wie ich es in der Theorie sehe) einfacher zu pflegen/updaten.
Strato bietet sogar Shopsysteme an.

Der Fehler liegt ganz sicher im JS, in sofern macht es wohl eher weniger Sinn diesen noch zu beheben.... meisst stösst man dann ja auch auf das nächste Problem.

Dass von deinem PHP-Script der Quelltext angezeigt wird (also nicht ausgeführd wird), liegt ganz sicher nicht an Strato bzw. fehlender unterstützung.
Dort ist PHP schon selbst beim kleinen Packet inkl. (mit ausnahme der Web-Visitenkarte).
 
Status
Nicht offen für weitere Antworten.

Forum-Statistiken

Themen
272.355
Beiträge
1.558.606
Mitglieder
187.827
Neuestes Mitglied
kanagawez