Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » php wird teilweise ignoriert

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.08.2004, 19:43 Uhr
~michael
Gast


HI,
ich habe angefangen ein Buch über php durch zuarbeiten. Nun wollte ich ein Gästebuck schreiben was soweit in den anfängen auch geht aber eingie Fehler hat die eigentlich nicht da sein sollten (find sie nicht)

In der Datei ist das Skript sind nur wenige Zeilen.

1.Wenn jemand nciht alle Felder ausfüllt soll eine Meldung ausgegeben werden Das ist die erste Anweisung im HTML teil, aber da kommt nie was.
2.Durch die Funktion Trim und replace_str soll die message so bearbeitet werden das keine newline Zeichen bzw. WhiteSpace mehr drin sind, das geht aber total schief. Brauch ich für die Funktionen noch was?
3.Warum will er in dem Textare immer in der zweiten Zeile in der mitte anfangen ???

Wäre schön wenn ihr mir helfen könnt.

PS: Wie kann man generell unter Linux ein php skript debugen? Geht das behaupt oder muß man dann immer mit echo's arbeiten? Ich entwickle derzeit unter Debian mit emacs

mfg Michael
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.08.2004, 19:44 Uhr
~michael
Gast


Die Datei wäre nat auch nicht schlecht . ups das geht hier nicht. dann so


PHP 4:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<?php
// Auswertung erst beim zweiten Aufruf des Skriptes
if($sent==1)
{
  // Zeichen für Newline unter Windows und Linux
  $t1=chr(10);
  $t2=chr(13);
  // Tilde wird als Trennzeichen benötigt -> rausfiltern
  $name=str_replace('~','',$name);
  $betreff=str_replace('~','',$betreff);
  $message=str_replace('~','',$message);
  // WS entfernen
  $name=trim($name);
  $betreff=trim($betreff);
  $message=trim($message);
  // Alle Felder ausgefüllt?
  if(!$name){$fehler="Bitte geben Sie einen Namen ein <br>";}
  if(!$betreff){$fehler.="Bitte geben Sie den Betreff an <br>";}
  if(!$message){$fehler.="Bitte geben Sie eine Nachricht ein <br>";}
}
if($name AND $betreff AND $message)
{
  $message=str_replace($t1,'<br>',$message);
  $message=str_replace($t2,'<br>',$message);
  // Ab der zweiten Nachricht ein Newline als Trennzeichen der NAchrichten
  if(file_exists('message.txt')) {$ausgabe="\n";}
  // Nachricht in Datei schreiben
  $comment=fopen('message.txt','a');
  $ausgabe.=$name."~".$betreff."~".$message;
  fputs($comment,$ausgabe);
  fclose($comment);
  // Für nächsten durchlauf Eingabefelder wieder leeren
  $name="";
  $betreff="";
  $message="";
}
?>

<html>
<head>
<title>Gästebuch</title><br>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Michael">
<link rel=stylesheet type="text/css" href="../CSS/head.css">
</head>
<body>
<div align="center">
  <h2>Gästebuch</h2>
  <?php echo $fehler; ?>
  <form action='<?php echo $PHP_SELF; ?>' method='post'>
  <inut type='hidden' name='sent' value=1>
  <p> Ihr Name: <br>
      <input type='text' name='name' size='30' value='<?php echo $name; ?>'><br>
      Betreff:<br>
      <input type='text' name='betreff' size='30' value='<?php echo $betreff; ?>'><br>
      Ihre Nachricht:<br>
      <textarea name='message' rows='10' cols='30' wrap='virtual'> shit
       <?php echo $message; ?>
      </textarea><br>
  </p>
  <input type='submit' value='abschicken'>
</div>
</body>
</html>





Bearbeitung von Pablo:

Es gibt PHP Tags. [code] -> [php] geändert.


Dieser Post wurde am 19.08.2004 um 20:13 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.08.2004, 20:18 Uhr
Pablo
Supertux
(Operator)


Du hast bestimmt register_globals auf off in der php.ini. Das ist besser so. Wenn du auf POST variablen zugreifen willst, dann


PHP 4:
<?php
    if(isset($_POST['sent']) and $_POST['sent']==1)
    {
        /* submit Knopf wurde geklickt */
       ...
    }
?>



Für GET (für Variablen, die man per URL übergibt) $_GET benutzen, für PHP_SELF usw am besten $_SERVER['PHP_SELF'] benutzen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.08.2004, 20:19 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


und du kannst statt

chr(10)

\n

benutzen, das gleiche gilt für

chr(13)

\r

und für AND, da ists schöner && zu nutzen



PHP 4:
Chr(...)



ist VB-Style
--
class God : public ChuckNorris { };

Dieser Post wurde am 19.08.2004 um 20:20 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: