SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.09.2006, 17:56:21
goldenpudel goldenpudel ist offline
Anfänger
 
Registriert seit: Sep 2006
Beiträge: 4
Datumsgültigkeit eingrenzen und Erhalt von Einträgen

Hallo!

Ich habe mich ohne PHP-Kenntnisse an der Umsetzung eines PHP-Kontaktformulars versucht, das per E-Mail versendet und zuvor geprüft werden soll. Was mir aus mangelnder PHP-Kenntnis nicht gelungen ist, fasse ich kurz zusammen - vielleicht gibt es jemanden hier, den diese PHP-Programmierung nicht überfordert...

1) Es soll ein Fehlerhinweis zurückgegeben werden ('Nur Einträge zwischen dem 01.07.2005 und 30.06.2008 sind gültig'), wenn in ein Formular-Textfeld ein Datum vor dem 01.07.2005 und nach dem 30.06.2008 eingegeben wird, und natürlich wenn das Datum nicht dem Format tt.mm.jjjj entspricht.

2) Wenn Angaben gemacht wurden und vor dem Versenden aufgrund fehlender Einträge entsprechende Hinweise zurückgegeben werden (z.B. 'Bitte Ihren Vornamen angeben'), werden automatisch alle bestehenden Einträge gelöscht und man kann u.U. wegen nur eines fehlenden Eintrags alles nochmal neu eingeben. Besser wäre, wenn die bereits eingegebenen Einträge bestehen bleiben würden, um den Frust mit dem Formular gering zu halten. Der unten angewendete Code war jedoch immer sichtbar im Formularfeld.
PHP-Code:
// Im Formular
<input type="text" name="first_name_input" size="20" value="<? echo $first_name_input; ?>">
Würde mich freuen, wenn mir jemand weiterhelfen könnte - insbesondere mit der Datumseingrenzung unter Punkt 1).

Besten Dank,
goldenpudel
Mit Zitat antworten
  #2  
Alt 26.09.2006, 19:31:51
Opendix Opendix ist offline
Senior Member
 
Registriert seit: Oct 2004
Ort: Werdenberg / Schweiz
Alter: 36
Beiträge: 1.476
AW: Datumsgültigkeit eingrenzen und Erhalt von Einträgen

Datum würde ich wie folgt prüfen:
(vielleicht gibts auch einfachere wege aber das fällt mir gerade ein :P)

1. Format der Eingabe überprüfen:
--> Dazu verwendest du am besten einen Regex... www.php.net/preg_match

2. Zerlegen des Strings in die 3 Werte: Tag, Monat, Jahr
--> www.php.net/explode

3. Datum überprüfen ob überhaupt möglich
--> www.php.net/checkdate

4. Prüfen ob zwischen den einem und dem anderen!
--> mit mktime() aus dem 3 Daten (also dem eingegeben, start udn enddatum) Timestamps berechnen. und dann mit ner if prüfen ob der eingegebene grösser als der start und kleiner als der Endwert ist.

Damit müsstest du das Datum prüfen können :)

Zu dem Formular, rufst du das Formular imemr wieder selbst auf? oder wie machst du das?
Also ich würde das so machen:
PHP-Code:
echo "<form action='"$_SERVER['PHP_SELF'] ."' method='POST'>";
echo 
"<input type='text' name='kA' value='"$_POST['kA'] ."'>";
echo 
"</form>"
bevor du das hier ausgibst prüfst du einfach ob alles korrekt ist, wenn dann gibst du bestätigung aus ansonsten wieder das Formular. Alle eingegebenen Werte werdendann gelich übernommen...
__________________
Opendix lehnt jegliche Haftung für evtl. vorhandene Fehler in der Grammatik sowie der Satzstellung ab! Bitte wenden Sie sich an die Tastatur!

Betatester gesucht:
Skiclub Gams / CEVI Grabs
Mit Zitat antworten
  #3  
Alt 27.09.2006, 09:22:28
goldenpudel goldenpudel ist offline
Anfänger
 
Registriert seit: Sep 2006
Beiträge: 4
AW: Datumsgültigkeit eingrenzen und Erhalt von Einträgen

Danke für deine Hilfe! Das probiere ich alles mal aus. Da ich jedoch wenig PHP-Kenntnisse habe könnte es sein, dass ich recht bald wieder hier bin, um bei der Umsetzung deines eleganten Vorschlags mit den Timestamps um Hilfe zu bitten ;-)
Mit Zitat antworten
  #4  
Alt 27.09.2006, 17:21:20
goldenpudel goldenpudel ist offline
Anfänger
 
Registriert seit: Sep 2006
Beiträge: 4
AW: Datumsgültigkeit eingrenzen und Erhalt von Einträgen

Mein Punkt 2 (s. oben)
Besser wäre es für diesen Zweck wenn nicht erst eine Bestätigungsseite sondern das Formular selbst wieder aufgerufen wird,
aber

- bereits eingegebene Angaben bleiben erhalten und
- fehlerhafte Eingaben werden mit Hinweis irgendwo auf der Seite angezeigt

Geändert von goldenpudel (27.09.2006 um 17:24:41 Uhr)
Mit Zitat antworten
  #5  
Alt 27.09.2006, 19:22:26
goldenpudel goldenpudel ist offline
Anfänger
 
Registriert seit: Sep 2006
Beiträge: 4
AW: Datumsgültigkeit eingrenzen und Erhalt von Einträgen

Die oben benannten Regex-Beispiele für die Anpassung des Datumsformats, wow. Vielleicht kann jemand nachvollziehen, wie diese Schreibweise für Leute ohne größere PHP-Erfahrung aussieht.

Bei der Datumsgültigkeit gibt es in der ZWischenzeit neue Anforderungen:
Das Datum ist gültig ab dem 01.07.2005 und bis einschl. gestern.

Ich möchte euch nochmals zu diesem und auch zu meinem letzten Post um Hilfe bitten.

Hier seht ihr meinen kläglichen Versuch:

PHP-Code:
$anfangmktime(000172005);  // Anfang 1. Juli 2005
$tstamp  mktime(000date("m"), date("d")-1date("Y"));
$gesterndate($tstamp); // Gestern



if(isset($_POST["submit_button"])){
    
$error_msg='';
if(
$_POST["Eingabedatum"]) // ist kleiner als $anfang oder größer als $gestern, dann folgende Meldung

{
$error_msg.="Nur ein Datum ab dem 01.07.2005 und vor dem heutigen Tag ist gültig.<br>";
}

...

Mit Zitat antworten
  #6  
Alt 28.09.2006, 13:05:39
Bluewing Bluewing ist offline
Anfänger
 
Registriert seit: Sep 2006
Alter: 35
Beiträge: 6
AW: Datumsgültigkeit eingrenzen und Erhalt von Einträgen

Ich mache das so:

print '<form name = "myform" action = "deinformular.php" method="post">';

Damit öffnet er wieder die selbe seite bzw das Formular am Ende der seite dann mit Java:

<tr>
<td colspan="2">
</td>
<td width="2" class="fieldSeparator">
<input type="submit" value="Save" id="sub_button">
<td width="1" class="fieldSeparator">
<input type="button" onclick="javascript:document.location.href='default.php';" value="Cancel">
</td>
</tr>
</table>
</form>

Und damit er die sachen behält hab ich das:

function gethtmlinput($name,$maxlen,$size)
{
global $isverified;
global $entryinvalid;

if ($isverified && $entryinvalid[$name])
$classattr = ' class="error" ';
else
$classattr = '';

$ret = '<input maxlength="'.$maxlen.'" size="'.$size.'"'.$classattr;
$ret .= 'name="'.$name.'" value ="'.$_REQUEST[$name].'" type="text" ></input>';

return $ret;
}

und das dazu passende eingabefeld:

/*NAME*/
echo ('<FONT face=Arial>Name: </FONT>',gethtmlinput('form_name,5,5).'&nbsp;(1-65535)');


Und das sollte eigentlich klappen, bei mir klappts ja auch ^^
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:25:16 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt