• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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!