IF-ELSE Problem - Forum -

schuett

Grünschnabel
Hallo Zusammen!

Habe ein kleines Problem mit der Ausgabe der Betreff-Zeile.

Habe ein Formular, mit den Angaben [Betreff], [Text] und [Autor].

Beim Betreff-Feld soll die Ausgabe erscheinen "kein Betreff" falls nichts angegeben wurde. Wenn etwas angegeben wurde, soll es ausgegeben werden.

Leider wird auch bei Eingabe eines Betreffs "kein Betreff" ausgegeben.

PHP:
     function beitrag_hinzufuegen () {
              
			  global $text, $autor; $betreff;
				
			  
				$texte = file ("beitraege.txt");
				$neuer_text = $text;
				$text_ohne = str_replace ("\n","",$neuer_text);
				$letzter_textindex = count ($texte)-3;
				if (trim($texte[$letzter_textindex]) !=$text_ohne) {
				$datei = fopen ("beitraege.txt", "a");
				$betreff = ($betreff == "") ? "kein Betreff" : $betreff;
				/*if ($betreff=="") {
				fputs ($datei, "\n$betreff");
				} else {
				fputs ($datei, "\nKein Betreff");
				}*/
				fputs ($datei, "\n$betreff");
				fputs ($datei, "\n$text_ohne\n");
				fputs ($datei, "$autor");
				fclose ($datei);
                 }
              }
 
PHP:
if ($betreff == "") { 
      fputs ($datei, "\n$betreff"); 
} else { 
      fputs ($datei, "\nKein Betreff"); 
}

du hast die Bedingungen vertauscht.
so wärs richtig

PHP:
if ($betreff != "") { 
      fputs ($datei, "\n$betreff"); 
} else { 
      fputs ($datei, "\nKein Betreff"); 
}
 
PHP:
if(!empty($betreff)){ 
  fputs ($datei, "\n$betreff"); 
}else{ 
  fputs ($datei, "\nKein Betreff"); 
}

Glaube dat geht auch :)
 
Jo sollte auch gehen. Is halt bloß ne andere Methode zum Prüfen ;)
Zu mal beide Varianten nicht sehr sicher gegen Leereingaben sind ;)
 
Jo sollte auch gehen. Is halt bloß ne andere Methode zum Prüfen ;)
Zu mal beide Varianten nicht sehr sicher gegen Leereingaben sind ;)

Sorry, aber das ist falsch. Siehe dazu das Handbuch: [phpf]empty[/phpf]. Bei ein String nur aus Leerzeichen liefert [phpf]empty[/phpf] true.
 
Ok ich habs evtl schelcht formuliert ich meinte mir Leereingaben auch sowas "." "," also sonne 1 zeichen eingaben damit halt irgendwas drin steht ;)
Habs vielleicht schlecht ausgedrückt.
 
Ok ich habs evtl schelcht formuliert ich meinte mir Leereingaben auch sowas "." "," also sonne 1 zeichen eingaben damit halt irgendwas drin steht ;)
Habs vielleicht schlecht ausgedrückt.

Das kann man Problemlos Lösen:
Einfach zählen wie viel Zeichen der String enthält :)

PHP:
if(strlen($_POST['eingabefeld'] < '3')){

}
 
Danke, für die Hilfe. Der Code klappt schon besser durch die Änderung.

Aber so richtig klappt das noch nicht mit der Betreffzeile. Immer wenn ich einen Betreff eingebe wird "kein Betreff" angegeben.

Neuer Code, durch Umänderung:

PHP:
     function beitrag_hinzufuegen () {
              
			  global $text, $autor; $betreff;
				
			  
				$texte = file ("beitraege.txt");
				$neuer_text = $text;
				$text_ohne = str_replace ("\n","",$neuer_text);
				$letzter_textindex = count ($texte)-3;                                                                     
				if (trim($texte[$letzter_textindex]) !=$text_ohne) {
				$datei = fopen ("beitraege.txt", "a");
				//$betreff = ($betreff == "") ? "kein Betreff" : $betreff;
				if ($betreff != "") {  
					  fputs ($datei, "\n$betreff");  
				} else {  
					  fputs ($datei, "\nKein Betreff");  
				}  
								//fputs ($datei, "\n$betreff");
								fputs ($datei, "\n$text_ohne\n");
								fputs ($datei, "$autor");
								fclose ($datei);
								 }
							  }
 
PHP:
global $text, $autor; $betreff;
Da ist wohl ein Semikolon statt einem Komma.

Aber warum übergibst du die Variablen nicht einfach, statt sie zu globalisieren?
 
Zurück