Parse error, unexpected .

jayjayalex1978

Grünschnabel
PHP-Fehler "Parse error, unexpected ."

Hallo zusammen,

kann mir bitte jemand helfen. Möchte Kontaktformular in eine CSV-Datei schreiben und bekomme diese Fehlermeldung:
Parse error: syntax error, unexpected '.' in /homepages/42/d185866806/htdocs/webpageNEU/projekt/php/kontakte.php on line 13

Mein Kontaktformular ist folgendes:

HTML:
       <form action="../php/kontakte.php" method="post">
      <p class="c3">Firma:<br />
        <input type="text" name="firma" value="Firmenname" size="50" />
      </p>
      <p class="c3">Frau   <input type="radio" name="titel" /><br />
      Herrn <input type="radio" name="titel" />
      </p>
      <p class="c3">Ansprechpartner:<br />
        <input type="text" name="name" value="Ihr Vor- und Nachname" size="50" />
      </p>
      <p class="c3">Straße:<br />
        <input type="text" name="strasse" value="Ihre Adresse" size="50" />
      </p>
      <p class="c3">PLZ/Ort:<br />
        <input type="text" name="ort" value="Ihre PLZ + Ort" size="50" />
      </p>
      <p class="c3">Telefon-Nummer:<br />
        <input type="text" name="telnr" value="Ihre Telefonnummer" size="50" />
      </p>
      <p class="c3">Email:<br />
        <input type="text" name="email" value="mail@adresse.de" size="50" />
      </p>
      <p class="c3">Ihr Anliegen:<br />
        <input type="text" name="anliegen" value="Bitte Anliegen angeben!" size="50" />
      </p>
      <p class="c3">Werkstoffe:<br />
        <input type="text" name="werkstoffe" value="Metall / Holz / Kunststoff" size="50" />
      </p>
      <p class="c3">Besondere Wünsche:<br />
        <textarea cols="30" rows="10" name="kommentar"> </textarea></p>
      <p class="c3">
        <input type="submit" name="next" value="Abschicken" />
        <input type="reset" name="next" value="Zur&uuml;cksetzen" />
      </p>
      <!-- ende inhalt-->
      </form></td>

Und das die PHP-Datei dazu:

PHP:
<?php 
$firma=$_POST['firma']; 
$titel=$_POST['titel']; 
$name=$_POST['name']; 
$strasse=$_POST['strasse']; 
$ort=$_POST['ort']; 
$telnr=$_POST['telnr']; 
$email=$_POST['email']; 
$anliegen=$_POST['anliegen']; 
$werkstoffe=$_POST['werkstoffe']; 
$kommentar=$_POST['kommentar'];
 
$ausgabe=$firma."; ".$titel."; ".$name."; ".$strasse."; ".$ort."; ".$telnr."; ".$email."; ".$anliegen."; ".$werkstoffe."; ".$kommentar."; \r\n"; 

$datei=fopen("../txt/kontakte.txt","a"); 

//(Das w steht für schreiben, wenn du mehrere Datensätze hintereinanderhängen willst, nimmst statt des ws ein a, dann wird jeder neue Datensatz an die Datei angehängt.) 

$output=fwrite($datei,$ausgabe); 
fclose($datei); 
?>

Die TXT-Datei habe ich im entsprechenden Ordner angelegt. Kann mir jemand helfen und sagen was ich übersehen habe oder vergessen bzw. falsch gemacht habe******** Danke im Voraus für eure schnelle Hilfe!

lg Alex
 
Zuletzt bearbeitet:
Hi und Willkommen bei tutorials.de,

diese Zeile:
PHP:
$ausgabe=.$firma."; ".$titel."; ".$name."; ".$strasse."; ".$ort."; ".$telnr."; ".$email."; ".$anliegen."; ".$werkstoffe."; ".$kommentar."; \r\n";
Du verwendest da korrekt Punkte zum Stringzusammenhängen, aber:
Ganz am Anfang, nach dem =, ist auch schon ein Punkt.
Da soll $firma mit was verkettet werden?
Entweder ein Leerstring:
="".$firma
oder einfach direkt mit Firma starten:
=$firma

PS: Mit einem vernünftigen Titel erhöht man die Chance sehr,
dass wer reinschaut und eine Antwort schreibt.
Ausgebessert.
 
Falls in der Varibablen schon was drinn steht und da was angehängt werden soll gehört der punkt vor das gleich also .= statt =.

So sähe das zB auch schöner aus:
PHP:
$ausgabe = $firma."; ";
$ausgabe .= $titel."; ";
$ausgabe .= $name."; ";
$ausgabe .= $strasse."; ";
$ausgabe .= $ort."; ";
$ausgabe .= $telnr."; ";
$ausgabe .= $email."; ";
$ausgabe .= $anliegen."; ";
$ausgabe .= $werkstoffe."; ";
$ausgabe .= $kommentar."; \r\n";

Und mann kann es leichter bearbeiten da man das ganze schneller überblickt.
 
Zuletzt bearbeitet:
in diesem Fall noch viel einfacher
PHP:
$data = $_POST;
//Den Eintrag 'next' aus dem Array entfernen
unset($data['next']);
//Den Array in einen String wandeln mit dem Trennzeichen ;
$ausgabe = implode("; ", $data) . "; \r\n";
 
meinst du so...
PHP:
<?php 
$data = $_POST;

unset($data);
 
$ausgabe = implode("; ", $data) . "; \r\n";  

$datei=fopen("../txt/kontakte.txt","a"); 

$output=fwrite($datei,$ausgabe); 
fclose($datei); 
?>
 
meinst du so...
PHP:
<?php 
$data = $_POST;

unset($data);
 
$ausgabe = implode("; ", $data) . "; \r\n";  

$datei=fopen("../txt/kontakte.txt","a"); 

$output=fwrite($datei,$ausgabe); 
fclose($datei); 
?>

oder so****

PHP:
<?php 
$data = $_POST;

unset($data['next']);
 
$ausgabe = implode("; ", $data) . "; \r\n";  

$datei=fopen("../txt/kontakte.txt","a"); 

$output=fwrite($datei,$ausgabe); 
fclose($datei); 
?>

...****t immer noch nicht... wenn ich auf "abschicken klicke dann zeigt er Browser den php-Code an anstatt die Eingaben des Formular in die txt-Datei zu schreiben... :-(
 
Aber wenn der Browser den PHP-Code anzeigt, dann ist das kein Problem des PHP-Parsers, sondern ein Problem des Webservers.
 
Wie weit hast du Zugriff auf die Einstellungen?
(bzw. ist es Webspace/VServer/Rootserver...)

Ist der Code in einer Datei, deren Namen auf .php endet?

Und bitte keine Doppelposts.
 
Wie weit hast du Zugriff auf die Einstellungen?
(bzw. ist es Webspace/VServer/Rootserver...)

Ist der Code in einer Datei, deren Namen auf .php endet?

Und bitte keine Doppelposts.

Ja der Code ist in einer PHP-Datei. Und die Datei in die er schreiben soll existiert auch. In wieweit kann man Zugriff als Kunde bei 1&1 auf die Servereinstellungen haben? Wie darf ich mir das vorstellen?
 
Zurück