Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
wildfire
Threadersteller
Dabei seit: 28.11.2005
Ort: Frankfurt
Alter: 41
Geschlecht:
|
Verfasst Mi 17.06.2009 10:04
Titel PHP Formular soll danke.html öffnen |
|
|
Hallo liebe Forenmitglieder!
Ich habe schon so ziemlich alle Lösungen angeschaut, aber wenn ich die bei meinem Formular übernehme, dann funktioniert es nicht. Ich möchte ein Kontaktformular abschicken und damit eine neue danke.html öffnen. Damit möchte ich später bei Google Analytics die Resonanz messen können, wie viele Leute das Formular tatsächlich abgeschickt haben. Mein bisheriger Code lädt innerhalb der Formular-Datei den Text "Vielen Dank..." und funktioniert wie es soll. Aber wie ändere ich es so ab, dass es eine neue Datei aufruft?
Für eure Hilfe wäre ich sehr dankbar!
Anbei der Code:
Code: |
<html>
<head>
<title>Formular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="formular.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
$absender = "info@kunden.de";
$kundenname = "www.kunden.de";
$mail_to = "mail@kunde.de";
$send = $_POST['send'];
$from_firma = $_POST['firma'];
$from_name = $_POST['name'];
$from_telefon = $_POST['telefon'];
$from_mail = $_POST['email'];
$select = $_POST['select'];
$mail_subject = $_POST['name'];
$from_text = $_POST['nachricht'];
$info = "Diese Nachricht wurde über das Kontaktformular der Homepage <b>" . $kundenname . "</b> versendet.";
$mail_text = "Firma: " .
$from_firma . "<br><b>Name: " .
$from_name . "</b><br><br><b>Kontaktdaten: </b><br>Telefon: " .
$from_telefon ."<br>E-Mail: " .
$from_mail . "<br><br><b>Kontaktwunsch bzgl.:</b> " .
$select . "<p><hr size=1 noshade></p><b>Nachricht des Absenders:</b><br><br>" .
$from_text . "<p><hr size=1 noshade></p>" .
$info;
if(trim($from_name)=="") $err_text.="Bitte geben Sie einen Namen an. ";
if(trim($from_telefon)=="") $err_text.="Bitte geben Sie eine Telefonnummer ein. ";
if(trim($from_mail)=="")
$err_text.="Bitte geben Sie Ihre E-Mail-Adresse an. ";
else
if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$from_mail))
$err_text.="Bitte geben Sie eine gültige E-Mail-Adresse an. ";
if(trim($mail_text)=="") $err_text.="Bitte geben Sie einen Nachrichtentext ein. ";
if(($send=="2") && (isset($err_text))) {
echo "<p style='font-family:Arial, Helvetica, sans-serif; font-size:11px; color:#FF0000'><big><b>Fehler:</b></big> ";
echo "$err_text</p>";
}
if(($send!="2") || (isset($err_text)))
{
?>
<form action="formular.php" method="post">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="2" class="contentform"><p><strong>Firma</strong> <br>
<input name="firma" type="text" id="firma">
</p>
<p><strong>Name</strong> <br>
<input name="name" type="text" id="name2" value="<?php echo $from_name; ?>">
</p>
<p><strong>Telefon</strong><br>
<input name="telefon" type="text" id="telefon" value="<?php echo $from_telefon; ?>">
</p>
<p><strong>E-Mail</strong><br>
<input name="email" type="text" id="email" value="<?php echo $from_mail; ?>">
</p>
<p><strong>
<input class="radio" type="radio" name="select" value="Beratung" checked="checked">
Beratung</strong></p>
<p><strong>
<input class="radio" type="radio" name="select" value="Information">
Information</strong></p>
<p><strong>
<input class="radio" type="radio" name="select" value="Auftrag">
Auftrag</strong></p> </td>
<td colspan="-2" valign="top" class="contentform"> <p>
<strong>Nachricht</strong><br>
<textarea name="nachricht" id="nachricht" value="<?php echo $from_text; ?>"></textarea>
</p> </td>
</tr>
<tr>
<td class="buttons">
<input type="hidden" value="2" name="send">
<input name="Submit2" type="reset" class="button" value="Löschen">
<input name="Submit" type="submit" class="button" value="Senden">
</td>
</tr>
</table>
</form>
<?php
} else {
$header="From: $absender\n";
$header.="Reply-To: $from_mail\n";
$header.= "Bcc: $email_to_bcc\n";
$header.= "X-Mailer: PHP/" . phpversion(). "\n";
$header.= "Content-Type: text/html";
$mail_date=gmdate("D, d M Y H:i:s")." GMT";
$send=0;
if(@mail($mail_to,$mail_subject,$mail_text,$header))
{
echo "<br><br><br><h1 align='left' style='font-family:Arial, Helvetica, sans-serif; font-size:14px'>Ihr Formular wurde gesendet</h1><p align='left' style='font-family:Arial, Helvetica, sans-serif; font-size:11px'>Vielen Dank für Ihre Anfrage, wir werden uns umgehend darum kümmern!</p>";
}else{
echo "<p style='font-family:Arial, Helvetica, sans-serif; font-size:11px'><b>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</b></p>";
echo "<p style='font-family:Arial, Helvetica, sans-serif; font-size:11px'><a href=\"formular.php?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
}
}
?>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-4819038-3");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>
|
|
|
|
|
|
Psilo
Dabei seit: 20.02.2007
Ort: -
Alter: 35
Geschlecht:
|
Verfasst Mi 17.06.2009 10:22
Titel
|
|
|
anstelle dessen
Code: | echo "<p style='font-family:Arial, Helvetica, sans-serif; font-size:11px'><a href=\"formular.php?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
} |
leitest du einfach zur danke seite
z.b.
Code:
Code: | echo "<script type='text/javascript'>document.location='danke.html';</script>"; |
Zuletzt bearbeitet von Psilo am Mi 17.06.2009 10:22, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Smooth-Graphics
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 17.06.2009 10:34
Titel Re: PHP Formular soll danke.html öffnen |
|
|
Code: |
<form action="formular.php" method="post">
|
Hier legst du fest, welche Seite nach dem Abschicken des Forms geladen werden soll.
Da die formular.php wahrscheinlich für den Versand der Mail wichtig ist musst du einfach in der formular.php am Schluss einfügen:
Code: |
header("Location: http://www.url.de/danke.html");
|
|
|
|
|
|
wildfire
Threadersteller
Dabei seit: 28.11.2005
Ort: Frankfurt
Alter: 41
Geschlecht:
|
Verfasst Mi 17.06.2009 10:41
Titel
|
|
|
Danke, danke, danke, kann ich da nur sagen!!! Unfassbar, aber ich hatte echt schon fast alles ausprobiert, aber deine Lösung hatte ich noch nicht gesehen. ABER ES FUNKTIONIERT!! Endlich!
//edit 1:
wenn ich das Formular in einen iFrame einbinde, dann öffnet sich die Danke.html da drinne, gibt es auch die Möglichkeit, dass er sich als Popup oder im Eltern-fenster öffnet?
//edit 2:
Ich habe es grade durch Zufall selbst raus gefunden:
Code: | echo "<script type='text/javascript'>parent.document.location='danke.html';</script>"; |
[edit]
Bitte edit verwenden.
Zuletzt bearbeitet von Smooth-Graphics am Mi 17.06.2009 11:32, insgesamt 2-mal bearbeitet
|
|
|
|
|
michaelb12
Dabei seit: 16.02.2010
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 16.02.2010 21:55
Titel
|
|
|
Hallo,
hier habe ich das erstemal den Ansatz gefunden, nachdem ich gesucht habe.
Ich bastele an einem Anmeldeformular, bei dem wenn alles ausgefüllt wurde eine Bestätigungsseite vorgeblendet werden soll, wenn nicht alles ausgefüllt wurde, soll das Anmeldeformular mit den bereits ausgefüllten Feldern angezeigt werden.
Den Fehlerfall habe ich recht schnell hinbekommen, das Problem war der pos. Fall das alles geklappt hat.
Für den Fehlerfall musste im Formtag der Hinweis aufs aufrufende Formular "$_SERVER['PHP_SELF']" stehen, daher funktionierten sämtliche Versuche mit dem Header nicht.
Ich habe jetzt euren Vorschlag aufgegriffen, und mit Javascript und document.location gearbeitet. Es wird jedoch nur der Header des Originalformulars angezeigt, jedoch nicht die Bestätigungsseite.
Wo mache ich denn den Fehler.
Gruß
Michael
|
|
|
|
|
wildfire
Threadersteller
Dabei seit: 28.11.2005
Ort: Frankfurt
Alter: 41
Geschlecht:
|
Verfasst Mi 17.02.2010 09:40
Titel
|
|
|
setz doch mal deinen Code hier rein, dann kann ich's besser nachvollziehen!
|
|
|
|
|
michaelb12
Dabei seit: 16.02.2010
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 17.02.2010 12:00
Titel
|
|
|
Hallo Wildfire,
hier mal der Code
Code: |
<html>
<title>
Anmeldung zum Volkslauf
</title>
<head>
<h1><b>Anmeldung zum Volkslauf</b></h1>
</head>
<body >
<form action = "<?php echo $_SERVER['PHP_SELF']?>" method = "get">
<?php
$db_server ="127.0.0.1";
$db_user ="kdflkf";
$db_passwort ="dldldl";
$db_name ="name";
//mit der DB verbinden
$verbindung=mysql_connect($db_server,$db_user,$db_passwort);
if(!$verbindung)
die("Der Server kann nicht erreicht werden.");
mysql_select_db($db_name,$verbindung);
if(!mysql_select_db($db_name,$verbindung))
die("Die Datenbank kann nicht erreicht werden.");
$db_verbindung;
if(isset($_GET['anmelden']))
{
//check() setzt die Variable $valid, wenn $valid ==true werden die Daten in die DB eingetragen, wenn nicht, wird die Seite mit den in der URL stehenden Werten neu aufgerufen.
global $valid;
check();
if($valid =='true')
{
vereinsname();
eintragen();
}
else
return false;
//header('Location:erfolg.php');
echo "<script type='text/javascript'>document.location='erfolg.php'>;/script>";
}
echo'<table>';
//Abfrage ob bereits eine der Variablen bekannt ist, ansonsten wird in Zeile 150 weitergearbeitet
if(isset($_GET['name'])or isset($_GET['vorname']) or isset($_GET['gebjahr'])or isset($_GET['geschlecht']) or isset($_GET['verein']) or isset($_GET['strecke']))
{
echo '<tr>';
echo '<td>';
echo'Name';
echo'</td>';
echo'<td>';
echo' <input type="text" name = "name" size ="30" value ="'.$_GET['name'].'">';
echo '</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'<p> ';
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'Vorname';
echo'</td>';
echo'<td>';
echo '<input type = "text" name = "vorname" size ="30" value ="'.$_GET['vorname'].'">';
echo '</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'Geschlecht';
echo'</td>';
echo'<td>';
//hier wird der gesetzte Wert für das Geschlecht der von der URL zurückgeliefert wird zurückgegeben
if($_GET['geschlecht'] == "m")
{
echo'<input type ="radio" name ="geschlecht" value ="m" checked>männlich';
echo'<br>';
echo'<input type ="radio" name ="geschlecht" value ="w">weiblich';
}
else
{
echo'<input type ="radio" name ="geschlecht" value ="m">männlich';
echo'<br>';
echo'<input type ="radio" name ="geschlecht" value ="w" checked>weiblich';
}
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'Geburtsjahr';
echo'</td>';
echo'<td>';
echo'<input type ="text" name ="gebjahr" size ="5" value = "'.$_GET['gebjahr'].'">';
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'<p> ';
echo'</td>';
echo'</tr>';
echo '<tr>';
echo'<td>';
echo'Verein';
echo'</td>';
echo'<td>';
//hier wird der Wert für den Verein zurückgeliefert und zurückgegeben
if($_GET['verein_j_n']=="j")
{
echo'<input type ="radio" name ="verein_j_n" value ="j" checked>ja';
echo'<br>';
echo'<input type ="radio" name ="verein_j_n" value ="n">nein';
}
else
{
echo'<input type ="radio" name ="verein_j_n" value ="j" >ja';
echo'<br>';
echo'<input type ="radio" name ="verein_j_n" value ="n"checked>nein';
}
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'Vereinsname/Ort';
echo'</td>';
echo'<td>';
echo'<input type ="text" name ="verein" size ="30" value ="'.$_GET['verein'].'">';
echo'</td>';
echo'<tr>';
echo'<tr>';
echo'<td>';
echo 'Streckenauswahl<br><br><br>';
echo '</td>';
echo '<td >';
//hier wird der Wert der Strecken auswahl zurückgeliefert und zurückgegeben
if($_GET['strecke']=="1500")
{
echo '<input type ="radio" name ="strecke" value ="1500" checked>1500 m Schülerlauf';
echo'<br>';
echo '<input type ="radio" name ="strecke" value= "5">5 km Jedermannlauf';
echo'<br>';
echo '<input type ="radio" name ="strecke" value= "10">10km Hauptauf';
}
elseif($_GET['strecke']=="5")
{
echo '<input type ="radio" name ="strecke" value ="1500">1500 m Schülerlauf';
echo'<br>';
echo '<input type ="radio" name ="strecke" value= "5" checked>5 km Jedermannlauf';
echo'<br>';
echo '<input type ="radio" name ="strecke" value= "10">10km Hauptauf';
}
else
{
echo '<input type ="radio" name ="strecke" value ="1500">1500 m Schülerlauf';
echo'<br>';
echo '<input type ="radio" name ="strecke" value= "5">5 km Jedermannlauf';
echo'<br>';
echo '<input type ="radio" name ="strecke" value= "10" checked>10km Hauptauf';
}
echo'</td>';
echo '</tr>';
}
else
{
//ab hier wird weitergearbeitet, wenn keine Variablen übergeben werden
echo '<tr>';
echo '<td>';
echo'Name';
echo'</td>';
echo'<td>';
echo' <input type="text" name = "name" size ="30">';
echo '</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'<p> ';
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'Vorname';
echo'</td>';
echo'<td>';
echo '<input type = "text" name = "vorname" size ="30">';
echo '</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'Geschlecht';
echo'</td>';
echo'<td>';
echo'<input type ="radio" name ="geschlecht" value ="m">männlich';
echo'<br>';
echo'<input type ="radio" name ="geschlecht" value ="w">weiblich';
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'Geburtsjahr';
echo'</td>';
echo'<td>';
echo'<input type ="text" name ="gebjahr" size ="5">';
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'<p> ';
echo'</td>';
echo'</tr>';
echo '<tr>';
echo'<td>';
echo'Verein';
echo'</td>';
echo'<td>';
echo'<input type ="radio" name ="verein_j_n" value ="j">ja';
echo'<br>';
echo'<input type ="radio" name ="verein_j_n" value ="n">nein';
echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';
echo'Vereinsname/Ort';
echo'</td>';
echo'<td>';
echo'<input type ="text" name ="verein" size ="30">';
echo'</td>';
echo'<tr>';
echo'<tr>';
echo'<td>';
echo 'Streckenauswahl<br><br><br>';
echo '</td>';
echo '<td >';
echo '<input type ="radio" name ="strecke" value ="1500">1500 m Schülerlauf';
echo'<br>';
echo '<input type ="radio" name ="strecke" value= "5">5 km Jedermannlauf';
echo'<br>';
echo '<input type ="radio" name ="strecke" value= "10">10km Hauptauf';
echo'</td>';
echo '</tr>';
}
echo'</table>';
echo'<input type="submit" value="Anmelden" name="anmelden">';
function check() //überprüft, ob alle Daten eingegeben wurden und setzt die Variable $valid, die in der IF-Schleife in Zeile 268 überprüft wird
{
global $valid;
if(empty($_GET['name']) or empty($_GET['vorname'])or empty($_GET['vorname'])or empty($_GET['verein'])or empty($_GET['geschlecht'])or empty($_GET['strecke'])or empty($_GET['gebjahr'])or !isset($_GET['strecke']) or !isset($_GET['geschlecht']) or !isset($_GET['verein_j_n']))
{
echo'<br>';
echo "Sie haben nicht alle Daten eingegeben!";
$valid="false";
}
else
$valid='true';
}
function vereinsname() //Macht aus dem Ortsnamen ggf. ein "(oV)Ortsname" wenn kein Verein ausgwählt wurde
{
global $verein_name;
if($_GET['verein_j_n'] =='j')
{
$verein_name=$_GET['verein'];
}
else
{
$verein_name="(oV) ".$_GET['verein'];
}
}
function eintragen() //trägt die Daten in die DB ein
{
global $verein_name;
$query=sprintf("insert into anmeldung set name='%s', vorname='%s', gebjahr='%s', verein='%s',geschlecht='%s',strecke='%s'",
$_GET['name'],$_GET['vorname'],$_GET['gebjahr'],$verein_name ,$_GET['geschlecht'],$_GET['strecke']);
$ergebnis=mysql_query($query);
}
?>
</form>
</body>
</html>
|
Vieles kann man bestimmt einfacher machen, aber ich bin noch Anfänger.
Gruß
Michael
|
|
|
|
|
michaelb12
Dabei seit: 16.02.2010
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 18.02.2010 13:00
Titel
|
|
|
Hallo zusammen,
habe meinen Fehler schon selbst gefunden.
Es musste richtig heissen
Code: | echo "<script type='text/javascript'>document.location='erfolg.php'</script>"; |
Jetzt klappt es
Gruß
Michael
|
|
|
|
|
|
|
|
Ähnliche Themen |
Flash Layer - soll URL mit HTML Formular öffnen?
Formular - mit Action browser Fenster öffnen
Kunde kann PDF Formular nicht öffnen
html-Formular -> xml
formular in html
html formular
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|