PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Eingabe in einem Textfeld kontrollieren (http://www.selfphp.de/forum/showthread.php?t=9718)

ConnyP 09.02.2005 17:18:00

Eingabe in einem Textfeld kontrollieren
 
Ich bin blutiger PHP-Anfänger und bin gerade dabei mich dort etwas einzulesen und mein erstes Projekt zu realisieren. Allerdings bin ich noch nicht sehr weit gekommen. Hoffe, mir kann hier jemand weiterhelfen. Ich möchte folgendes realisieren:

Auf meiner Homepage soll ein Formular erscheinen, in das der User seine Firma und eine beliebige Identnummer eingibt. Die Identnummer MUSS aus 6 Ziffern bestehen (es dürfen also nicht 5 oder 7 sein, sondern genau 6). Außerdem MUSS die 2. und 3. Stelle eine 0 (Null) sein (z. B. 100234). Wenn diese Bedingungen erfüllt sind soll der User auf eine Seite mit internen Informationen weitergeleitet werden (z. B. intern.html). Außerdem sollen die im Formular eingetragenen Werte (Firma und Identnummer) in einer Textdatei mit Datum und Uhrzeit abgespeichert werden, damit man nachvollziehen kann, wer wann im internen Bereich gewesen ist.

Der derzeitige Stand:
Ich habe eine Seite anmeldung.html erstellt. Hier befindet sich das Eingabeformular mit den Textfeldern "Firma" und "ID".

<form name="loginformular" method="post" action="login.php">
<table border="0" cellspacing="0" cellpadding="5">
<tr>
<td width="44"><b>Firma:</b></td>
<td width="161"> <input type="text" name="firma" size="20"> </td>
</tr>
<tr>
<td width="44"><b>ID:</b></td>
<td width="161"> <input type="text" name="id" size="20" maxlength="6"> </td>
</tr>
<tr>
<td width="44">&nbsp;</td>
<td width="161"> <br> <input type="submit" name="submit" value="OK"> </td>
</tr>
</table>
</form>

Desweiteren habe ich eine Seite login.php erstellt. Der Code der Seite sieht bisher folgendermaßen aus:

<?
$datei = fopen("memberlog.txt","a");
$timestamp = date();
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);
fwrite($datei, "$datum | $uhrzeit | $firma | $idn");
fclose($datei);
?>

Alles funktioniert insoweit, als dass man im Eingabeformular seine Firma und die Identnummer eingeben kann und wenn man auf OK klickt werden die eingegebenen Daten in die Datei memberlog.txt gespeichert.

Nur wie bekomme ich die Prüfung des Feldes "ID" so hin, dass bei erfolgreicher Prüfung auf die Seite intern.html weitergeleitet wird und bei nicht erfolgreicher Prüfung auf die Seite fehler.html?

Ich nehme an, dass das irgendwie mit einer IF-Bedingung funktioniert. Logisch wäre es ja. Ich stell mir das so vor:

Wenn im Feld "ID" eine Zahl mit genau 6 Ziffern steht, bei der die 1. und 2. Stelle eine 0 (Null) sind, dann gehe zu intern.html sonst gehe zu fehler.html.

Wäre toll, wenn mir jemand den Code dazu posten könnte, da ich wie gesagt, erst seit heute versuche, mit PHP umzugehen.

Vielen Dank im voraus.

xabbuh 09.02.2005 17:24:11

AW: Eingabe in einem Textfeld kontrollieren
 
Die Länge einer Zeichenkette ermittelst du mit der Funktion strlen(). Auf bestimmte Position kannst du unter Verwendung der Funktion substr() zugreifen.

ConnyP 09.02.2005 17:37:56

AW: Eingabe in einem Textfeld kontrollieren
 
Leider kann ich damit nicht allzuviel anfangen. Wie gesagt, ich beschäftige mich erst seit heute mit PHP. Könntest Du mir vielleicht posten wie der Code aussehen muss?

xabbuh 09.02.2005 18:01:40

AW: Eingabe in einem Textfeld kontrollieren
 
Dann beschäftige dich doch erst einmal näher mit den Grundlagen von PHP und schau dir dann die beiden oben geposteten Links nochmal durch.

ConnyP 09.02.2005 18:48:45

AW: Eingabe in einem Textfeld kontrollieren
 
Ich bin ja gerade dabei mich damit zu beschäftigen. Am besten lernt man allerdings durch ausprobieren. Geht mir zumindest so. Die beiden Links hab ich mir angesehen. Nur steig ich da nicht so richtig durch. Deswegen auch meine Frage nach dem Code für diese Funktion. Wäre toll, wenn Du mir den mal posten könntest. Dann kann ich damit weiter ausprobieren und irgendwann steig ich dann auch dahinter.

xabbuh 09.02.2005 19:54:33

AW: Eingabe in einem Textfeld kontrollieren
 
Dann mal zwei Beispiele:
Wir haben die Variable $var mit dem Inhalt 100234

Um zu überprüfen, welchen Wert die zweite Stelle hat, nehmen wir die Funktion substr():
PHP-Code:

<?php
    $var2 
substr($var11);
    echo 
$var2;

    
//  Ausgabe: 0

    //  Alternativ funktioniert auch
    
$var2 $var[1];
    echo 
$var2;


    
$var2 substr($var31);
    echo 
$var2;

    
//  Ausgabe: 2
?>

Ist die Funktionsweise von substr() so klarer geworden? Wichtig ist eigentlich nur zu beachten, dass mit dem Zählen der Position bei 0 und nicht bei 1 angefangen.

Um die Länge zu benutzen, nehmen wir die Funktion strlen():
PHP-Code:

<?php
    $laenge 
strlen($var);
    echo 
$laenge;

    
//  Ausgabe: 6
?>

Das ganze verknüpfen wir jetzt logisch und schon sieht unsere Abfrage so aus:
PHP-Code:

<?php
    
if(strlen($var) == && substr($var11) == && substr($var21) == 0) {
        
//  Bedingung ist erfüllt
    
}
?>

Wenn du Probleme hast, das PHP Manual zu verstehen, lies dir mal das hier durch: http://tut.php-q.net/manlesen.html


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:52:39 Uhr.

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