• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Ich finde den Fehler einfach nicht....

Status
Für weitere Antworten geschlossen.
Werbung:
ja und zwar hinter der if-abfrage!
und ich denk ma nit das das da oben sein muss!
das muss doch hinter if() sein!
 
ja jetzt habe ich folgendes gemacht:

PHP:
// Ausgabe auf den Bildschirm: 
if
{
($name != '' && $eintrag != '') 
  echo '<a href="'.$email.'">'.$name. '</a><br>schrieb am:</u> '.$datum.' <p>Kontakt: <a href="'.$kontakt.'"> </a> <p><u>folgende Party:<br /></u>'.$eintrag.'<br /><br /> <hr />'; 
}


Nun lautet die Fehlermeldung:

Parse error: syntax error, unexpected '{', expecting '(' in /www/usersites/s-x/webi/pub/news.php on line 93

Ja aber warum geht es auf Apache, und hier nicht..??
 
Werbung:
was hällst du davon das so zu machen?

PHP:
// Ausgabe auf den Bildschirm: 
if($name != '' && $eintrag != '') {
  echo '<a href="'.$email.'">'.$name. '</a><br>schrieb am:</u> '.$datum.' <p>Kontakt: <a href="'.$kontakt.'"> </a> <p><u>folgende Party:<br /></u>'.$eintrag.'<br /><br /> <hr />'; 
}
 
oh, mein Fehler, sorry.

Neue Fehlermeldung:

Parse error: syntax error, unexpected $end in /www/usersites/s-x/webi/pub/news.php on line 107


hey ich gibs jetzt dann bald auf.... der spuckt ja nur Fehlermeldungen aus....
 
dann poste doch mal den quelltext der gesamten datei - vielleicht kann man dir dann besser helfen
 
Werbung:
hab ich zwar schon mal gemacht, aber bitte:

Hier is er:

PHP:
<html>
<head>
<title>PARTY-SEITE</title>
</head>
<body>
<body bgcolor="yellow">
<?php 
   // Der Name der Gästebuch-Datei lautet: 
  $datenbankdatei = 'gaestebuch2.txt'; 
  $mailempfaenger = '[email protected]'; 

  // Überprüfung, ob die Datei vorhanden ist. 
  // wenn nicht vorhanden, dann versuche diese zu erstellen 
  // wenn das Erstellen nicht erfolgreich war (mangelnde Rechte), dann Skript abbrechen 
  if(!file_exists($datenbankdatei)) 
    if(!@touch($datenbankdatei)) 
      die("Fehler: Die Datenbank ist nicht erreichbar."); 



  if(isset($_POST['button'])) 
  { 
   // wenn das Formular abgeschickt wurde, dann führe das hier aus (Daten in die Datei eintragen) 

   // ÜBerprüfe, ob Name und Text angegeben wurde - sonst kein Eintrag 
   if($_POST['name'] == "" || $_POST['eintrag'] == "") 
   { 
   echo' <script>alert(" Bitte alle Felder vollständig ausfüllen, Danke ...!!! ")</script>';
   echo' Klicke <a href="http://localhost/news.php">hier</a> um zurück auf das Eingabeformular zu kommen....<p>';
   echo' Klicke <a href="http://www.sieglbua.de">hier</a>, um auf die Startseite zu kommen....';
   } 
   else 
   { 
     // als erstes werden die Daten zu einem langen string zusammengefasst. Damit die einzelnen Variablen später wieder getrennt werden können setzen wir ein Trennzeichen. In diesem Fall habe ich mich für || entschieden. 
     // das \n am Ende sorgt dafür, dass ein Zeilenumbruch in der Textdatei gemacht wird. Das ist für das Auslesen wichtig! 
      $eintrag = date('d.m.Y - H:i:s').' || '.$_SERVER["REMOTE_ADDR"].' || '.$_POST['name'].' || '.$_POST['email'].' || '.$_POST['eintrag']."\n"; 

      // Nun wird die Datei geöffnet. Der Modus 'a' gibt an, dass die Datei zum Schreiben geöffnet wurde und die Daten hinten dran gehängt werden 
      // Wenn die Datei nicht geöffnet werden kann: Abbruch 
      if(!$file = @fopen($datenbankdatei,"a")) 
        die("Fehler: Die Datenbank ist nicht erreichbar."); 

      // Datei für andere sperren 
      flock($file,LOCK_EX) or die(); 

      // mit fwrite werden nun die Daten, welche wir vorher zu einer Variable zusammengefasst haben hineingeschrieben 
      // Wenn die Datei nicht beschrieben werden kann: Abbruch 
      if(!@fwrite($file, $eintrag)) 
        die("Fehler: Die Datenbank ist nicht erreichbar."); 

      // Sperre der Datei wieder aufheben 
      flock($file,LOCK_UN) or die(); 

      // Datei schliessen 
      fclose($file); 

      // Ausgabe für den user: 
      echo '<center><h2>Vielen Dank für deinen Eintrag</h2>Deine Party wurde erfolgreich aufgenommen.<br /><p><a href="'.$_SERVER["PHP_SELF"].'"><<<...Zurück zur Party-Seite...>>></a>'; 


      // eMail wird verschickt: 
      @mail($mailempfaenger, "Gästebucheintrag", "Folgender Eintrag wurde hinterlassen:\n\nName: ".$_POST['name']."\nAbsender: ".$_POST['email']."\nText: ".$_POST['eintrag']."\n\nIP: ".$_SERVER["REMOTE_ADDR"]."\n".date('d.m.Y - H:i:s'), "From: ".$_POST['email']."\r\nX-Mailer: PHP/" . phpversion()); 
   } 
  } 
  else 
  { 
    // wenn das Formular nicht ausgefüllt wurde, es also nur einfach angezeigt werden soll, dann führe diesen Teil aus: 

    // Anzeige der Einträge aus dem Gästebuch: 
    echo '<font color="red"><center><u><b><font size="7">Meine Party-Seite:</font></font><p><br><br>'; 

    // Öffnen der Datei im Lese-Modus: 
    $file = fopen($datenbankdatei, 'r'); 

    // Solange wiederholen, bis die Datei vollständig ausgelesen wurde 
    while (!feof($file)) 
    { 
  // Zeile auslesen
  $zeile = fgets($file, 4096);

  // Zeile für Zeile auslesen:  
  $daten   = explode(" || ", $zeile);
  $zeile   = fgets($file, 5000);
  $datum   = $daten[0];
  $ip      = $daten[1];
  $name    = $daten[2];
  $email   = $daten[3];
  $eintrag = $daten[4];
  //...

// Ausgabe auf den Bildschirm: 
if($name != '' && $eintrag != '') { 
  echo '<a href="'.$email.'">'.$name. '</a><br>schrieb am:</u> '.$datum.' <p>Kontakt: <a href="'.$kontakt.'"> </a> <p><u>folgende Party:<br /></u>'.$eintrag.'<br /><br /> <hr />'; 
} 


      // Formular für weitere Einträge: 
    echo '<h2><u>Hier kannst du deine Party eintragen:</u></h2><br> 
<form method="post" action="'.$_SERVER["PHP_SELF"].'">
?>  
Dein Name:   <input type="text" name="name"><br />
Deine Home:  <input type="text" name="email" value="http://www."><br /><p> 
Deine Party: <p><textarea name="eintrag" rows="5" cols="50"></textarea><p> 
<input type="submit" name="button" value="Und ab geht´s...."><input type="reset" name="button" value="Alles löschen...."> 
</form> 
</body>
</html>
 
Hier fehlt am Ende die schließende ' und das Semikolon
PHP:
// Formular für weitere Einträge:
    echo '<h2><u>Hier kannst du deine Party eintragen:</u></h2><br><form method="post" action="'.$_SERVER["PHP_SELF"].'">';
Und wenn du dann deine { und } durchgehst, wirst du feststellen, dass zwei Klammern fehlen: die while-Scheife wird nicht geschlossen, ebenso wie die else-anweisung.
Ich hab da eben mal n bissl getestet

PHP:
    while (!feof($file))
    {
  // Zeile auslesen
  $zeile = fgets($file, 4096);

  // Zeile für Zeile auslesen:
  $daten   = explode(" || ", $zeile);
  $zeile   = fgets($file, 5000);
  $datum   = $daten[0];
  $ip      = $daten[1];
  $name    = $daten[2];
  $email   = $daten[3];
  $eintrag = $daten[4];
  //...
  }
// Ausgabe auf den Bildschirm:
if($name != '' && $eintrag != ''){
  echo '<a href="'.$email.'">'.$name. '</a><br>schrieb am:</u> '.$datum.' <p>Kontakt: <a href="'.$kontakt.'"> </a> <p><u>folgende Party:<br /></u>'.$eintrag.'<br /><br /> <hr />';
}
}
So ist die Fehlermeldung weg, aber die Ausgabe der eingetragenen Partys haut nicht ganz hin.
Aber vielleicht hilft dir das ja als ansatz weiter.

(und sorry, hab nicht gesehen,dass du den qt schonmal gepostet hast)
 
Boa danke...

aber irgendwie will er es einfach nicht akzeptieren...

Parse error: syntax error, unexpected $end in /www/usersites/s-x/webi/pub/news.php on line 107
 
Werbung:
dürfte eher so eine } klammer sein - warum sollte noch eine öffnende hin?

und den fehler (unexpected end) hab ich auch, wenn der fehler mit dem semikolon nicht behoben ist.

Poste doch nochmal den korrigierten Quelltext - vielleicht hast ja eine änderung übersehen.-
 
Werbung:
hm hört dich doof an, aber ich machs immer mit den fingern oO

also sowas hier :
PHP:
if { // Ein Finger hoch, wegen öffnender Klamme
if { // Noch einer hoch, ''
...
} // Ein Finger weg, wegen schließender
else { // Ein Finger hoch, wegen öffnender Klamme
...
if { // Ein Finger hoch, wegen öffnender Klamme
..
} // // Ein Finger weg, wegen schließender
else { // Ein Finger hoch, wegen öffnender Klamme

} // Ein Finger weg, wegen schließender
} // Ein Finger weg, wegen schließender
else { // Ein Finger hoch, wegen öffnender Klamme

} // Ein Finger weg, wegen schließender
} // Ein Finger weg, wegen schließender
( Beispiel )

em dene sinds dann entweder 0 Finger oder es is en fehler drin, dass nur mal so am rande ...
 
Noch einfacher ist es den Code vernümftig einzurücken. :mrgreen:
PHP:
if { 
  if { 
    ...
  } 
  else {
    ...
    if {
      ...
    }
    else {
      ...
    }
  }
  else {
    ...
  }
}

Wenn die letzte Klammer am Anfang der Zeile ist sollte alles OK sein. :wink:

Gruß
Hobbyuser
 
hobbyuser schrieb:
Noch einfacher ist es den Code vernümftig einzurücken.

genau. nur ich machs nochmal 'en bissel anders:

PHP:
<?php

if $bedingung
{
//anweisung1
}

elseif
   {
   //anweisung2
   }

elseif
      {
      //anweisung3
      }

else
         {
         //anweisung4
         }

?>

dann sehe ich, dass immer ein klammernpaar auf der gleichen höhe ist. wenn nicht, existiert es nicht, oder wurde eben falsch eingerückt.

hier der externe link:
--> http://nopaste.php-q.net/225624

Nils aka XraYSoLo
 
Zuletzt bearbeitet:
Werbung:
ich benutz eigtl nur den BSD Stil:
Code:
if()
{
    if()
    {
        //cmds
    }
}
switch()
{
    case:
        //cmds
        break;
    default:
        //cmds
        break;
}

Sorry aber was du hier ablieferst ist wie du selbst merkst leider ungenügend ;)
Ohne Einrückungen hast du verloren.

ps:
Linus Torvalds schrieb:
"If you need more than 3 levels of indentation, you're screwed anyway, and should fix your program."

Es ist letzlich ziehmlich egal welchen stil du nimmst (GNU/BSD/Kernigham & RItchie) - aber benutz ihn KONSEQUENT. Und Klammern IMMER setzen. auch wenn php es leider nicht erzwingt :(
 
nochwas kleines zum schluss, du hast geschrieben:
<a href="'.email.'">'.name.'</a>

sio geht es aber icht, es muss ein mailto: davor:

<a href="mailto:'.email.'">'.name.'</a>
 
Werbung:
Danke für die Antworten. Oh, das mit dem E-mail, da hab ich bestimmt nicht aufgepasst.

Ich schau aufjedenfall jetzt dann die Tage mal, welche Klammer(n) fehlen könnte..

Gruß

WEBI
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben