Development - Kann PHP was JS schon seit ewigen Zeiten kann?

Development: Kann PHP was JS schon seit ewigen Zeiten kann?

RoXXoR

RoXXoR

20.01.2005 15:03

n.a.

  • 4 Postings, noch 46 bis zum nächsten Level (50)

Postings: 4

Kann PHP was JS schon seit ewigen Zeiten kann?

Donnerstag, 20. Januar 2005 15:48

  • 0.0/6 Votes: 0
0.0/6 Votes: 0
RoXXoR

Hallo ihr Experten,
hätte da mal eine Frage, komme darauf weil ich grad an anderer Stelle behauptet hab es geht nicht; aber bin nur 99,999999% sicher. Angenommen in einem Kontaktformular soll der User u.a. seine Mail-Adresse angeben, das Formular ruft ein externes PHP-Script auf und die Kontrolle stellt fest das die Mail-Adresse ungültig ist, der User bekommt dann eine Mitteilung, dass er bitte eine gültige Mail-Adresse eintragen soll. Soweit alles klar, jetzt steht unten noch ein Link mit dem der User zurück zum Kontaktformular gelangen kann. Das Problem ist, wenn ich es per PHP löse:

<A href="<?php echo getenv("HTTP_REFERER"); ?>">Zurück</A>

ist das Formular wieder komplett leer, alle Angaben des Users sind verschwunden. Klickt der User stattdessen auf den Zurück-Button des Browsers (in diesem Fall IE) ist das Formular noch ausgefüllt und er muss nur die Mail-Adresse korregieren. Ist es möglich, dies auch mit einem PHP-Link zu erreichen(ohne JavaScript - mit "<A href="#" Onclick="window.history.back();">Zurück</A>" kann es ja jeder) und wenn ja wie? Ich sag es geht nicht, aber wer weiss evtl. irr ich ja auch total.

rob (58)

rob

12.08.2002 00:42

Vinn

  • 323 Postings, noch 27 bis zum nächsten Level (350)

Postings: 323

Re: Kann PHP was JS schon seit ewigen Zeiten kann?

Donnerstag, 20. Januar 2005 21:32

Hi, also wenn das PHP-Script extern (z.B. auf einem anderen Server liegt), könnte man zwar per GET die Varablen zurück-übergeben, dann bräuchte man auf der Gegenseite aber auch wieder z.B. PHP um die Variablen auszuwerten, wenn da nur HTML ist, dann sind die Daten weg.

Wenn es nur um die Kontrolle der EMail-Adresse geht, kann man ja auch mit Javascriot überprüfen und erst zur externen PHP-Seite gehen, wenn alles i.O.

Emailkontrolle mit Javascript z.B. hier

"Kann PHP was JS schon seit ewigen Zeiten kann?" - wusste gar nicht dass JS Formulardaten von einem externen Script aus zurück-übergeben kann.

manu (53)

manu

03.09.2002 23:07

Aachen

  • 876 Postings, noch 24 bis zum nächsten Level (900)

Postings: 876

Re: Klar...

Freitag, 21. Januar 2005 08:13

Schau Dir mal das Beispiel hier an - hier fehlt allerdings noch die Überprüfung auf korrekte Mail-Syntax...

<?
$sName = "Bitte Namen eingeben.";
$sMail = "Bitte Mail eingeben.";
$sSuccessMsg = "Vielen Dank für Deine Daten.";

if($_POST["contact"] == 1)
{
if(empty($_POST["sContactMail"]) || $_POST["sContactMail"] == $sMail) // hier fehlt eine Mail-Überprüfung
{
$sErrorMsg = $sMail;
}
else
{
$sMail = $_POST["sContactMail"]; //Hier werden die Daten in den Value geschrieben
$sMailOk = 1;
}
if(empty($_POST["sContactName"]) || $_POST["sContactName"] == $sName)
{
$sErrorMsg = $sName;
}
else
{
$sName = $_POST["sContactName"]; //Hier werden die Daten in den Value geschrieben
$sNameOk = 1;
}
}

if($sNameOk && $sMailOk)
{
echo $sSuccessMsg;
}
else
{
if(isset($sErrorMsg))
echo $sErrorMsg;
?>
<form action="<?=$PHP_SELF?>" method="post">
<table cellspacing="5" cellpadding="0" border="0" align="center">
<tr>
<td>Name:
</td>
<td>
<input type="text" name="sContactName" value="<?=$sName?>">
</td>
</tr>
<tr>
<td>Mail:
</td>
<td>
<input type="text" name="sContactMail" value="<?=$sMail?>">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="hidden" name="contact" value="1">
<input type="submit" name="Abschicken" value="Los!">
</td>
</tr>
</table>
</form>
<?
}
?>

Signatur:\"I have not failed. I\'ve just found 10,000 ways that won\'t work.\" - Thomas Alva Edison (1847-1931)

rob (58)

rob

12.08.2002 00:42

Vinn

  • 323 Postings, noch 27 bis zum nächsten Level (350)

Postings: 323

Re: Klar (@ manu - 21.01.)

Freitag, 21. Januar 2005 11:43

ja, dann braucht man aber auch auf der Gegenseite auch PHP um die zurückgegebenen Variablen auszuwerten - und wenn man da nur HTML hat?

ich hatte da jetzt so verstanden, daß auf der einen Seite nur ein HTML-Formular ist und auf einem anderen Server das PHP-Script.

und wenn man im Formular schon PHP hat, kann man natürlich die Überprüfung direkt dort machen, und geht dann erst zum externen PHP-Script .

RoXXoR

RoXXoR

20.01.2005 15:03

n.a.

  • 4 Postings, noch 46 bis zum nächsten Level (50)

Postings: 4

Fallbeispiel:

Freitag, 21. Januar 2005 13:39

Also z.B. hier eine Datei formular.htm :

<HTML>
<HEAD>
<TITLE>E-Mail-Adressübergabe</TITLE>
</HEAD>
<BODY>
<form name="Name" action="send.php" method="post">
<TABLE>
<TR>
<TD align=right><P class="block">E-Mailadresse</P><INPUT size=18 name=mail></TD>
</TR>
<TR>
<TR>
<TD align=Center>
<button name="Abschicken" type="submit">
<p class="butt">E-Mail-Adresse versenden</p>
</button>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>

Und hier eine Datei send.php :

<?php
$Ziel = "Zieladresse@irgentwo.de";
$Betreff = "Neue E-Mail-Adresse";
$nomail = "Sie müssen eine gültige e-Mail Adresse angeben!";
$send = "Ihre e-Mail Adresse wurde erfolgreich verschickt!";
$tld_array = array("AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BM", "BN", "BO", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "EI", "ER", "ES", "ET", "EU", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IL", "IN", "IO", "IQ", "IR", "IS", "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NI", "NG", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PY", "QA", "RE", "RO", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "ST", "SV", "SY", "SZ", "TC", "TD", "TF", "TH", "TJ", "TG", "TK", "TM", "TN", "TO", "TP", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UK", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "YU", "ZA", "ZM", "ZW", "COM", "EDU", "GOV", "MIL", "ORG", "INT", "NET", "ARPA", "FIRM", "STORE", "WEB", "ARTS", "REC", "INFO", "NOM", "BIZ", "COOP", "MUSEUM", "NAME", "PRO", "AERO");
$tld_string = join("|",$tld_array);
?>
<HTML>
<HEAD>
<TITLE>Mailer</TITLE>
</HEAD>
<BODY >
<TABLE>
<TR>
<TD ALIGN=center><BR>
<?
if (eregi("^[0-9a-z]+[_.0-9a-z-]*@([0-9a-z]+[0-9a-z-]*.){1,7}(".$tld_string."){1}$", $mail))
{
mail("$Ziel","$Betreff","$mail ","FROM: $mail ");
echo "$send";
}
else
{
echo "$nomail";
}
?>
<a href="#" Onclick="window.history.back();">Zurück zum E-Mail-Formular</A>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

Beide Dateien liegen in ein und demselben Ordner auf dem Server. Wegen einem Feld würd ich ja auch keine Welle machen, aber hab z.b. letzte Woche für einen Kunden ein Formular mit beinahe 100 Feldern programmiert und da ist es echt zu viel hantier erst jeden Wert abzuspeichern um ihn danach wieder zurückzuschreiben.

RoXXoR

RoXXoR

20.01.2005 15:03

n.a.

  • 4 Postings, noch 46 bis zum nächsten Level (50)

Postings: 4

Re: Kann PHP was JS schon seit ewigen Zeiten kann? (@ rob - 20.01.)

Freitag, 21. Januar 2005 13:42

Hi Rob,

klar könnt ich auch erst per JS abfragen ob die Mail-Adresse gültig ist, aber ich versuch ja grad JS loszuwerden und nicht noch mehr zu benutzen

rob (58)

rob

12.08.2002 00:42

Vinn

  • 323 Postings, noch 27 bis zum nächsten Level (350)

Postings: 323

Re: Kann PHP was JS schon seit ewigen Zeiten kann? (@ RoXXoR - 21.01.)

Freitag, 21. Januar 2005 14:08

dann hab ich das wohl falsch verstanden, hab gedacht es wären unterschiedliche Server

wenn alles auf dem selben Server liegt, kann du es so machen wie manu es beschrieben hat. Dann reicht ja ein Script, dass entweder das Formular anzeigt (mit Values, wenn vorhanden) oder eine Mail sendet, wenn alles i.O. ist und eine entsprechende Meldung ausgibt.

Bookmark setzen!:Zu Google Bookmark hinzufügen.Zu bloglines hinzufügen.Zu Newsgator hinzufügen.Zu FURL hinzufügen.Zu DIGG hinzufügen.Zu Webnews hinzufügen.Zu Netscape hinzufügen.Zu Yahoo MyWeb hinzufügen.Zu spurl.net hinzufügen.Zu diigo hinzufügen.Zu Newsvine hinzufügen.Zu del.icio.us hinzufügen.Zu SIMPIFY hinzufügen.Zu Mister Wong hinzufügen.Zu Linkarena hinzufügen.Zu isio.de hinzufügen.Zu Oneview hinzufügen.Zu yigg.de hinzufügen.Zu reddit hinzufügen.Zu StumbleUpon hinzufügen.Zu Slashdot hinzufügen.Zu Blinklist hinzufügen.Zu Technorati hinzufügen.Zu Blogmarks hinzufügen.Zu Blinkbits hinzufügen.Zu ma.gnolia hinzufügen.Zu smarking.com hinzufügen.Zu Netvouz hinzufügen.Zu co.mments hinzufügen.Zu Connotea hinzufügen.Zu de.lirio.us hinzufügen.

Specials

Bytefresser Specials: Anno 1404

Umfrage

Welches ist Dein Lieblings-Anno?

(157 Stimmen)

1. Ganz klar: Anno 1800!
2. Anno 2205
3. Anno 2070
4. Anno 1404
5. Anno 1701
6. Anno 1503
7. Anno 1602
8. Anno Online

Benutzer-Counter

Besucher gesamt: 1.301.809
Besucher heute: 34
Besucher gestern: 156
Max. Besucher/Tag: 1.578
Gerade online: 7
Max. online: 167
Seiten gesamt: 31.043.226
Aufrufe diese Seite: 1.925

Tag-Cloud

  level     script     signatur     server     schau     donnerstag     aachen     variablen     formular     gegenseite     angenommen     javascript     datei     webdesign     postings     januar     bytefresser     emailkontrolle     zurück     freitag     formulardaten     beispiel     development     programmierung     roxxor     fallbeispiel     php-seite     kontrolle     php-script     mail-adresse