• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

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
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
seh ich das richtig, dass du schon während der eingabe das überprüfen willst?
 

GreenApple

Reinette de Champagne
Registriert
20.05.07
Beiträge
412
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.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
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

GreenApple

Reinette de Champagne
Registriert
20.05.07
Beiträge
412
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
 

GreenApple

Reinette de Champagne
Registriert
20.05.07
Beiträge
412
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!