Tutorial Erweiterung | SQL Inhalte über Webinterface ein/ausgeben

Also mit "strelen" kann ich feststellen wie lang die Zeichenkette ist, ich kann damit also festlegen wieviel Zeichen die Überschrift haben darf, versteh ich das richtig?

Und "trim" kann ich leerzeichen entfernen..
Aber wo hab ich den ein Leerzeichen wenn ich zB die Überschrift eingegeben habe?

eintragen.php
PHP:
<?php

print $_POST['ueberschrift'] ."<br>";

$ueberschrift = $_POST['ueberschrift'];

print "Variable -> ". $ueberschrift."<br>";

// Eingabe Überprüfung
if (empty($ueberschrift)) {
    echo 'Du hast keine Überschrift eingegeben'."<br>";
}

// Anzahl der Zeichen feststellen
print "Anzahl der Zeichen ". strlen($ueberschrift); // 6

?>

Edit....
Ach jetzt check ichs, es geht drum falls im Formular ein leerzeichen eingeben wird am Anfang oder Ende dies nicht ausgegeben wird..
Du hast recht, das sind lauter so sachen die ich gar nicht bedacht hab -.-

eintragen.php

PHP:
<?php

	echo $_POST['ueberschrift'] ."<br>";

$ueberschrift = $_POST['ueberschrift'];

	echo "Variable -> ". $ueberschrift."<br>";

// Eingabe Überprüfung
if (empty($ueberschrift)) {
    echo 'Du hast keine Überschrift eingegeben'."<br>";
}

// Anzahl der Zeichen feststellen
	echo "Anzahl der Zeichen ". strlen($ueberschrift)."<br>";

// Leerzeichen entfernen
	echo "Kein Leerzeichen davor >". trim($ueberschrift) ."<";

?>
 
Zuletzt bearbeitet:
Genau. Und das kannst du entsprechend in der if-Anwendung zusammenfassen:
PHP:
<?php

// zuerst Formatierst du die $_POST['ueberschrift']
$ueberschrift = stripslashes(trim($_POST['ueberschrift']));
if(strlen($ueberschrift)<5)
{
    $error .= "Ihre Überschrift ist zu kurz (mind. 5 Zeichen)";
}
print $error;
Somit hast du die Überschrift bereits geschafft zu überprüfen. Eine if-else Anwendung entspricht: WENN Wert entspricht Prüfwert DANN gebe aus.

Die Ausgabe $error wird aus dem Grund in einer Variable gespeichert, um es nach prüfen der kompletten Eingaben eine Gesamt-Fehler-Ausgabe zu erzeugen. Das wird durch den . vor = erreicht.
PHP:
// Test

$a .= "T";
$a .= "e";
$a .= "s";
$a .= "t";

print $a; // Gibt aus: Test

/* Würdest du die Punkte weglassen und ausgeben, würde immer die letzte Variable ausgegeben werden */
 
Ah ok, das mit dem ".=" ist klar,
Aber könntest du mir erklären was "stripsplashes" is? oder meintest "stripcslashes"?
Und wenn ich das Script von dir ausführe, und ich mehr als die 5 Zeichen eingebe, zB "123456" dann wird gar nichts ausgegeben....
Und hast du die empty function extra nicht eingebaut?
 
Zuletzt bearbeitet:
Bei http://www.php.net findest du alle Erklärungen, so auch für stripcslashes.

Und wenn ich das Script von dir ausführe, und ich mehr als die 5 Zeichen eingebe, zB "123456" dann wird gar nichts ausgegeben....

Das ist richtig, denn wenn ich mehr als 5 Zeichen eingebe soll ja kein Fehler vorhanden sein. Daher "speichern" wir ja die Variable $error bei Fehlern. Später erfolgt dann eine Abfrage der Variable $error, ... mit empty. Allerdings kannst du dies ja eigentlich schon selbst ;)
WENN empty $error DANN schreibe " alle ordnung "
empty kann man sich ja in dem o.a. Fall sparen, denn die Anzahl der Zeichen wäre bei keiner Eingabe 0 ... was widerum < 5 heißt.
 
Hm ja is mir klar das "stripslashes" der Backslash entfernt wird, aber wozu brauch ich das bei diesem Script?

PHP:
<?php

$ueberschrift = stripslashes(trim($_POST['ueberschrift']));

if(strlen($ueberschrift)<5)
{
$error .= "Ihre Überschrift ist zu kurz (mind. 5 Zeichen)";
print $error;
}

if (empty($error)) {
    echo 'Eintrag erfolgreich';
}

?>

Passt das so? Und wieso kann ichs nicht mit "else" schreiben?
 
Zuletzt bearbeitet:
PHP:
<?php

$ueberschrift = stripslashes(trim($_POST['ueberschrift']));

if(strlen($ueberschrift)<5)
{
$error .= "Ihre Überschrift ist zu kurz (mind. 5 Zeichen)";
print $error;
}

if (empty($error)) {
    echo 'Eintrag erfolgreich';
}

?>
Na nicht ganz, ...
Die if-Anweisung setzt die Variable error nur dann, wenn die Überschrift kürzer als 5 Zeichen ist.
PHP:
<?php

$ueberschrift = stripslashes(trim($_POST['ueberschrift']));

if(strlen($ueberschrift)<5)
{
$error .= "Ihre Überschrift ist zu kurz (mind. 5 Zeichen)";
}

if (!empty($error)) {
print $error;
}

?>
Bei der empty-funktion wird durch das setzen des ! das Ganze negativiert.
Sprich
empty($error) entspricht - "ist die Variable error leer ..."
!empty($error) entspricht - "ist die Variable error NICHT leer ..."
heißt im Script
Wenn die Überschrift kürzer als 5 Zeichen ist die Variable error ... Text.
Wenn die Variable error Nicht leer ist - schreibe Variable error.

Da mehrere Eingabefelder geprüft werden müssen, "sammelt" man die Variable error durch das ".=" und gibt sie später zusammenhängend aus.
 
Zuletzt bearbeitet:
Sry 4 Doppelpost

Ich hab mal die andren Eingabefelder mit eingebunden.
Ist das so richtig geschrieben?
eintrag.php

PHP:
<?php

$name = $_POST['name'];
$ueberschrift = stripslashes(trim($_POST['ueberschrift']));
$inhalt = stripslashes(trim($_POST['inhalt']));


if (empty($name)) {
$error .= 'Kein Name ausgewählt'."<br />";
}

if(strlen($ueberschrift)<5)
{
$error .= 'Ihre Überschrift ist zu kurz (mind. 5 Zeichen)'."<br />";
}

if(strlen($inhalt)<10) {
$error .= "Der Inhalt ist zu kurz (mind. 10 Zeichen)";
}

if (empty($error))  {
print "Eintrag erfolgreich";
}

if (!empty($error)) {
print $error;
}

?>

eingabe.php

PHP:
 <form action="eintrag.php" method="post">
  Name: <br />
  <form action="select.htm">
    <select name="name" size="3">
      <option>Max Mustermann</option>
      <option>Christian Huber</option>
      <option>Tom Waits</option>
     </select> <br/><br />

  Überschrift: <br />
  <input type="text" name="ueberschrift" size="30"/> <br />
  Inhalt: <br />
  <textarea name="inhalt" cols="50" rows="10"></textarea><br />
  <input type="submit" value="Abschicken"/>
  </form>
 
Zuletzt bearbeitet:
Zurück