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 (59)

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 (55)

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 (59)

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 (59)

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?

(168 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.775.667
Besucher heute: 742
Besucher gestern: 13.107
Max. Besucher/Tag: 14.744
Gerade online: 18
Max. online: 314
Seiten gesamt: 41.639.137
Aufrufe diese Seite: 2.147

Tag-Cloud

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