• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

PHP - bestimmte Zeichen verbieten

GreenApple

Reinette de Champagne
Registriert
20.05.07
Beiträge
412
Hi,
eigentlich ganz einfach: Ein Feld soll ausgefüllt werden, darf aber nicht leer bleiben und darf nur Zahlen enthalten.

Code:
<?php
	$empfaenger ="E-Mailadresse";
	$betreff	= "Neue Bewertung auf ***.de";
	$mailtext	="
	Eine neue Bewertung f&uuml;r das aktuelle Bild ist eingetroffen:
	Punkte: $punkte";
	if(empty($punkte) || ereg ("0-9",$punkte))
	{
	header("Location: fehler.html");
	}
	else
	{
	mail("$empfaenger", "$betreff", "$mailtext", "From: $email");
	header("Location: danke.html");
	}
?>

Irgendwie funktionierts aber nicht. Es funktioniert, wenn das Feld leer ist, aber ich kann weiterhin Buchstaben eingeben und verschicken.

Danke schon mal
 
seh ich das richtig, dass du schon während der eingabe das überprüfen willst?
 
Nien,
nachdem man auf absenden gedrückt soll es überprüft werden. Falls dann Buchstaben in dem Feld sind oder es leer gelassen wurde, soll die Fehlerseite erscheinen.
 
Versuch mal
Code:
if(ereg ("[0-9]",$punkte))
{
	mail("$empfaenger", "$betreff", "$mailtext", "From: $email");
	header("Location: danke.html");
}
else
{
        header("Location: fehler.html");
}

Du hast PHP ja gesagt, dass wenn Nummern in $punkte stehen ein Fehler ausgegeben werden soll. Zudem war die RegEx falsch.

Noch ein wenig besser ist:
Code:
if (is_int($punkte)) // Prüft, ob $punkte numerisch ist
{
      if($punkte>=0 && $punkte <=9) // Prüft, ob die Punkte auch im richtigen Intervall liegen.
      {
      MAILCODE HIER
      }
      else { FEHLERCODE HIER }
}
else { FEHLERCODE HIER }
 
Zuletzt bearbeitet:
  • Like
Reaktionen: GreenApple
Versuch mal
Code:
if(ereg ("[0-9]",$punkte))
{
	mail("$empfaenger", "$betreff", "$mailtext", "From: $email");
	header("Location: danke.html");
}
else
{
        header("Location: fehler.html");
}

Du hast PHP ja gesagt, dass wenn Nummern in $punkte stehen ein Fehler ausgegeben werden soll. Zudem war die RegEx falsch.

Vielen Dank hat geklappt! :)

Schönen Abend noch
 
Hi,
ich brauche noch einmal eure Hilfe.
Ich möchte mit der Funktion fwrite einer Datei Text hinzufügen lassen, der Dateizeiger ist aber lässt sich ja aber nur ganz oben oder unten platzieren.

Jetzt habe ich von der Funktion fseek gelesen, habe aber nicht wirklich verstanden wie es wirklich gehen soll.

Wäre toll, wenn ihr mir Helfen könntet!