Forum => einfacher script-komme nicht weiter :(

Hallo,
habe vor kurzem mit PHP angefangen.
Ich möchte dass, wenn kein Betreff bei der Eingabe eigegeben wurde, „kein Betreff“-hingeschrieben wird. Es wird aber einfach nur eine Leerzeile gebildet. Bitte um Hilfe.

Ciao.
Eugen.

Hier das Script-Stück:

<?php function beitrag_ausgeben ($beitrag) {
if (isset($beitrag ["betreff"])) { print "**".$beitrag ["betreff"]." "; } if ($beitrag ["betreff"]=="") { print "kein Betreff "; } print $beitrag ["text"]; print " Autor: "; print $beitrag ["autor"]; print " "; }**

Hallo,

Es muss elseif heißen und nicht nur If, weil der Webserver bei ‚if‘ von einer ganz neuen Abfrage ausgeht.

Es muss also Lauten
also:

elseif ($beitrag [„betreff“]=="")
{
print "kein Betreff
";
}

Ich hoffe ich konnte Dir helfen

Gruß,
Flavio

Verhält sich leider immer noch genauso.
Vielleicht liegt es am Rest des Scripts?
Hier ist das Script mit den Funktionen:

<?php function beitrag_ausgeben ($beitrag) {
if (isset($beitrag ["betreff"])) { print "**".$beitrag ["betreff"]." "; } elseif ($beitrag ["betreff"]=="") { print "kein Betreff "; } print $beitrag ["text"]; print " Autor: "; print $beitrag ["autor"]; print " "; } function beitrag\_hinzufuegen () { global $betreff, $text, $autor; $texte = file ("beitraege.txt"); $neuer\_text = str\_replace("\n", "", $text); $letzter\_textindex = count ($texte)-3; if (trim($texte[$letzter\_textindex]) !=$neuer\_text) { $datei = fopen ("beitraege.txt", "a"); fputs ($datei, "\n$betreff\n"); fputs ($datei, "$neuer\_text\n"); fputs ($datei, "$autor"); fclose ($datei); } } function formular\_anzeigen () { ?\> Betreff: Text: Autor: <?php }
?\> > [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]**

Hallo,
ich habe jetzt ganz einfach mal den ersten teil aus dem Skript weggenommen und zwar:

‚function beitrag_ausgeben ($beitrag)‘

Bei mir funktionierts jedenfalls. Warum es so ist kann ich Dir leider nicht sagen, da PHP nicht so mein Schwerpunkt ist.

Gruß
Flavio

Moin,

Mit isset wirds Probleme geben, weil der IE das anders als ein guter Browser behandelt.

Wenn die Geschichte annehmbar laufen soll dann machs mit 2 Seiten.
In Seite 1 steht dein Bewtreff (Eingabefeld) und ein Button zum absenden. Beide Elemante in einem Formular. Als zusätzliche Element noch ein .
Auf Seite 2 dann
if($newthread == „yes“)
{

if(empty($betreff))
{
//Z. B.
$betreff = „Tippfaulheit“;
}
else
{
//Dein Augabezeug oder Weiterbearbeitung
}

}

Angenommenen Methode ist POST.

Nur ein kleiner Denkanstoss :wink:)

Gruß widecrypt

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo gene,

isset() trifft in deinem fall immer zu da $betreff schon im funktionsaufruf gesetzt wurde.

in deinem fall musst du empty() benutzten damit kannst du prüfen ob eine variable einen wert enthält oder null ist.

wichtig ist das du vor dem empty($betreff) ein trim auf $betreff machst da sonst auch ein " " als wert zählt

siehe auch:

http://de3.php.net/manual/de/function.empty.php
http://de2.php.net/manual/de/function.isset.php

Gruß
Phillip

Wenn die Geschichte annehmbar laufen soll dann machs mit 2
Seiten.

Es soll aber auch in einer Seite laufen können))
Jedenfalls komme einfach nicht weiter, es wird jetzt einfach immer „kein Betreff“ reingeschrieben, da kannst du mit allen möglichen Funtionen abfragen, geht einfach nich…
Hier der „aktuelle“

<?php function beitrag_ausgeben ($beitrag) {
print $beitrag["betreff"]." "; print $beitrag ["text"]; print " Autor: "; print $beitrag ["autor"]; print " "; } function beitrag\_hinzufuegen () { global $betreff, $text, $autor; $texte = file ("beitraege.txt"); $neuer\_text = str\_replace("\n", "", $text); $letzter\_textindex = count ($texte)-3; if (trim($texte[$letzter\_textindex]) !=$neuer\_text) { $datei = fopen ("beitraege.txt", "a"); if (trim(empty($beitrag ["betreff"]))){ fputs ($datei,"\nkein Betreff\n"); } else { fputs ($datei,"\nkein Betreff\n"); fputs ($datei, "\n$betreff\n"); } fputs ($datei, "$neuer\_text\n"); fputs ($datei, "$autor"); fclose ($datei); } } function formular\_anzeigen () { ?\> Betreff: Text: Autor: <?php }
?\>

Ähm PHP ist eine Server seitige Scriptsprache, daher ist es vollkommen egal mit was für einem Browser du das isset Konstrukt aufrufst.

Des weitern sollte man nicht mehr mit register globals arbeiten, sondern mit POST/GET

Wenn dann so:

if(empty($\_POST['betreff']) {
 echo "Kein Betreff";
} else {
 echo strip\_tags($\_POST['betreff']);
}

Gruß
Philip