Formular wird nicht ausgewertet, stattdessen Fehlermeldung

solomat

Erfahrenes Mitglied
Hallo,

ich habe eben kurz nach selbigen Problem gesucht, jedoch nichts gefunden, da ich keine besonderen PHP-Kenntnisse habe und daher mit den Begriffen nicht jounglieren kann.

Mein Problem ist schnell erklärt. Das Formular habe ich als fertiges Script bekommen, vorher leider nicht getestet. Dieses habe ich dann zu meinen Zweck umgestaltet und nun auf meinen Server geladen. Jedoch ohne die gewünschte Zweckempfehlung. Es funktioniert einfach nicht. Nach dem Ausfüllen und Abschicken des Formulars bekomm ich diese Fehlermeldung:
Code:
Parse error: parse error in /home/www/n4a104/html/solomat/danke.php on line 23
Kann mit dieser Fehlermeldung leider garnichts anfangen.

Vieleicht könnt ihr mir ja helfen. Hier die beiden Seiten für das Formular.

Die html-Datei für das Formular an sich:
Code:
<html>
<head>
<title>DJ-Pool</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="tbl.css" rel="stylesheet" type="text/css">
<link href="tbl1.css" rel="stylesheet" type="text/css">
<link href="tbl2.css" rel="stylesheet" type="text/css">
<link href="layout.css" rel="stylesheet" type="text/css">
<link href="scroll.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="100%" height="100%"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="5%" height="5%" valign="top"><p>&nbsp;</p>    </td>
    <td width="90%" height="5%" valign="top">&nbsp;</td>
    <td width="5%" height="5%" valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td width="5%" height="90%" valign="top">&nbsp;</td>
    <td width="90%" height="90%" valign="top"><p>/ 
        DJ-Pool // Formular</p>
      <table width="100%"  border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td align="right" class="tbl"><form name="form" action="danke.php" method="post">
            <table width="100%" border="0" cellpadding="0" cellspacing="0" witdh=100%>
              <tr>
                <td align="right" valign="top">Name |</td>
                <td width="20">&nbsp;</td>
                <td><input type="text" name="name" size="40"></td>
              </tr>
              <tr>
                <td align="right" valign="top">Alter |</td>
                <td width="20">&nbsp;</td>
                <td><input type="text" name="alter" size="40"></td>
              </tr>
              <tr>
                <td align="right" valign="top">Stadt / Land |</td>
                <td width="20">&nbsp;</td>
                <td><input type="text" name="stadt" size="40"></td>
              </tr>
              <tr>
                <td align="right" valign="top"><p></td>
                <td width="20"><br></td>
                <td width="240">&nbsp;</td>
              </tr>
              <tr>
                <td align="right" valign="top">DJ-Name |</td>
                <td width="20">&nbsp;</td>
                <td><input type="text" name="dj-name" size="40"></td>
              </tr>
              <tr>
                <td align="right" valign="top">DJ seit |</td>
                <td width="20">&nbsp;</td>
                <td><input type="text" name="djseit" size="40"></td>
              </tr>
              <tr>
                <td align="right" valign="top">Musikrichtung/Stil |</td>
                <td width="20">&nbsp;</td>
                <td><input type="text" name="stil" size="40"></td>
              </tr>
              <tr>
                <td align="right" valign="top">Referenzen/Clubs |</td>
                <td width="20">&nbsp;</td>
                <td><input type="text" name="clubs" size="40"></td>
              </tr>
              <tr>
                <td align="right" valign="top">&nbsp;</td>
                <td width="20">&nbsp;</td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td align="right" valign="top"><p>E-Mail-Adresse |</td>
                <td width="20"></td>
                <td><input type="text" name="mail" size="40"></td>
              </tr>
              <tr>
                <td align="right" valign="top">Homepage |</td>
                <td width="20">&nbsp;</td>
                <td><input name="homepage" type="text" id="homepage" value="http://" size="40"></td>
              </tr>
              <tr>
                <td align="right" valign="top">kurze Beschreibung |</td>
                <td width="20"></td>
                <td><textarea name="nachricht" rows="5" cols="30"></textarea></td>
              </tr>
              <tr>
                <td colspan=3>&nbsp;</td>
              </tr>
              <tr>
                <td colspan=2></td>
                <td><left>
                    <input name="submit" type="submit" value="Abschicken">
                    <input name="reset" type="reset" value="Daten l&ouml;schen"></td>
              </tr>
            </table>
          </form></td>
        </tr>
      </table>
      <BR>      </td>
    <td width="5%" height="90%" valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td width="5%" height="5%" valign="top">&nbsp;</td>
    <td width="90%" height="5%" valign="top">&nbsp;</td>
    <td width="5%" height="5%" valign="top">&nbsp;</td>
  </tr>
</table>
</body>
</html>
hier der Link für die html-Datei

Und hier die PHP-Datei, zum auswerten des Formulars:
PHP:
<?

$webmaster = "info@solomat-berlin.de";

$absender = "info@solomat-berlin.de";

$betreffwebmaster = "DJ-Pool Solo:Mat";
$koerperwebmaster = "
Name: $name
Alter: $alter
Stadt / Land: $stadt

DJ-Name: $dj-name
DJ-seit: $djseit
Musikrichtung/Stil: $stil
Referenzen/Clubs: $clubs

e-Mail: $mail
Homepage: $homepage
 
kurze Beschreibung: $nachricht"
	
$mailfalsch = "<p>Fehler</p><p>Du hasst deine e-Mail Adresse falsch angegeben</p><p>Kontrolliere deine Eingabe und sende das Formular erneut ab.";

$felderleer = "<p>Fehler</p><p>Es müssen alle Felder ausgefüllt werden. Ausgenommen ist das Feld Homepage</p>";

$abgesandt = "<p>Danke,</p><p>Deine Angaben werden ausgewertet und du wirst dich, wenn alles i. O. ist in kurzer Zeit im DJ-Pool stehen sehen.</p>";

if ($name == "ja" || $alter =="ja" || $stadt =="ja" || $dj-name =="ja" || $djseit =="ja" || $stil =="ja" || $clubs =="ja" || $mail =="ja" || $nachricht =="ja")

{echo "$felderleer";}
else{if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$", $mail))
{mail("$webmaster","$betreffwebmaster","$koerperwebmaster\n","FROM: $absender\n");if ($kopie == "ja") 
{mail("$mail","$betreffabsender","$koerperabsender","FROM: $absender\n");
echo "$abgesandt";}
else{echo "$abgesandt";}}
else{echo "$mailfalsch";}}
?>

Wenn mir bei meinem Problem geholfen werden kann, wäre ich sehr dankbar.

Vieleicht kann mir auch jemand bei einer Erweiterung des Formulars helfen. Unzwar soll zu den Angaben noch ein Bild mitgeschickt werden. Wenn das möglich ist, würde ich gern wissen wie.

Vielen Dank und Liebe Grüße aus Berlin
 
Hey, Dank Thomas, habe selbst noch ne Kleinigkeit gefunden, da ich alle Felder ausgefüllt haben will bis auf eins, musste ich das Feld was nicht ausgefüllt werden brauch mit "nein" angeben. Super das es jetzt funktioniert.

Das mit dem Bild mitschicken, ist das möglich? Vieleicht nen kleiner Tip wie? Wonach ich suchen müsste.
 
Mal noch ne kurze Frage.

Kann ich diese Zeilen:
PHP:
$mailfalsch = "<p>Fehler</p><p>Du hasst deine e-Mail Adresse falsch angegeben</p><p>Kontrolliere deine Eingabe und sende das Formular erneut ab.</p>"; 

$felderleer = "<p>Fehler</p><p>Es müssen alle Felder ausgefüllt werden. Ausgenommen ist das Feld Homepage</p>"; 

$abgesandt = "<p>Danke,</p><p>Deine Angaben werden ausgewertet und du wirst dich, wenn alles i. O. ist in kurzer Zeit im DJ-Pool stehen sehen.</p>";
mit einen css style versehen oder direkt auf eine html seite weiterleiten. Es nervt wenn sich da plötzlich nen weißes Feld mit nen paar Zeilen öffnet.
 
Original geschrieben von eLorFiN
Nein, was ich hiermit sagen will:
Alle Versuche, Bilder im GLEICHEN Formular wie Text hochzuladen, die ich gesehen habe, sind gescheitert.

(...)

Wie du siehst, ist die Geschichte nicht ganz so einfach, wenn ein Bild mit ins Spiel kommt.
Also, korrigiere falls ich Dich falsch Verstanden habe aber, Du willst jetzt Doch nicht etwa sagen, dass man innerhalb eines normalen Formulars nicht ein Bild mitsenden kann? Also Du hast ein Formular für die Texteingaben und ein zweites NUR für das Bild?

Falls Ja: Bitte, bevor Du zu einem Thema was sagst, dann beschäftige Dich doch bitte ein wenig mehr mit der Materie, das ist nämlich der größte Schwachsinn, den ich hier seit langem gelesen hab.

Falls Nein: Bitte Post nicht beachten :)

Ach ja: Bevor sich jetzt irgendjemand angegriffen fühlt: Das ist KEINE Beleidigung, aber ich bin halt der Ansicht, wenn jemand offensichtlich keine (oder wenig) Ahnung hat, dann sollte er lieber noch ein wenig den Kopf in Handbücher stecken.

@solomat: Schau Dir doch zum Thema "Datei-Upload" folgendes Tutorial an. Auch wenn Du ein Bild mit der Mail versenden willst, musst Du es erst auf den Server hochladen.

Und zum Thema "Mails mit Attachment" wurden auch schon einige Fragen hier im Forum gestellt. Einfach mal suchen. Es gibt aber hierfür auch schon fertige Klassen, u.a. gibt es eine sehr gute PEAR-Mail-Mime Klasse:

http://pear.php.net/package/Mail_Mime
 
Zuletzt bearbeitet:
Original geschrieben von eLorFiN
JA, du kannst alles drumherumbasteln wie du willst, achte bloß darauf, dass der Code wegen deines "Stylingwahns" nicht unüberischtlich wird ^^.

kannst du mir vieleicht noch sagen wie ich so eine Weiterleitung machen kann, bzw. es soll dann doch schon so aussehen wie alle anderen iFrame-Inhalte.
 
Original geschrieben von eLorFiN
Ich habe nur aus eigener Erfahrung gesprochen, die mir zeigte, dass ich kein Bild zusammen mit einem Anmeldeformular senden konnte.
Die Lösung dafür waren getrennte Formulare und alles lief.
Das Tutorial, auf das du verlinkt hast, war auch nur auf Dateiupload bezogen, von Textformularen ist auch dort nicht die Rede.
Folgendes HTML-Formular als Ausgangsbasis:

Code:
<form enctype="multipart/form-data" action="tmp.php" method="post"> 
Username: <input type="text" name="username"><br />
<input name="file" type="file"><br /> 
<input type="submit" value="hochladen"> 
</form>
Zwecks Beispiel nur ein Textfeld drin, in dem der User seinen Benutzernamen angeben kann. Das Bild, welches im zweiten Formular-Element angegeben wird, soll unter eben diesem Benutzernamen im gleichen Verzeichnis abgelegt werden. Das zugehörige PHP-Script sieht folgendermaßen aus (basiert auf das bereits oben von mir gepostete Tutorial):

PHP:
<?php
$tempname   = $_FILES['file']['tmp_name'];
$type       = $_FILES['file']['type'];
$size       = $_FILES['file']['size'];
$filename   = $_POST['username'];
$filename  .= strrchr($_FILES['file']['name'], ".");

if($type != "image/gif" && $type != "image/pjpeg") {
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}

if($size > "15000") {
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";
} 

if(empty($err)) {
    move_uploaded_file($tempname, './'.$filename);
    echo 'Die Datei '.$filename.' wurde erfolgreich hochgeladen!<br /><br />';
    echo '<img src="'.$filename.'">';
} else {
    foreach($err as $error)
    echo "$error<br>"; 
}
?>
Klappt einwandfrei, ich versteh nicht wo Du damit Probleme hattest. Wie gesagt, war nicht böse gemeint oder sonst irgendwas in der Art. Wenn es so rübergekommen ist, dann war es nicht meine Absicht.
 
Hab das grad probiert, aber wo ist die Datei hin, die Datei wurde hochgeladen. Doch das Bild was ich hochgeladen habe kann nicht angezeigt werden.

Wird die Datei direkt auf den Server geladen? Oder was passiert mit der Datei?
 
Original geschrieben von solomat
Hab das grad probiert, aber wo ist die Datei hin, die Datei wurde hochgeladen. Doch das Bild was ich hochgeladen habe kann nicht angezeigt werden.

Wird die Datei direkt auf den Server geladen? Oder was passiert mit der Datei?
Ja, die Datei sollte eigentlich in das gleiche Verzeichnis, in dem auch das PHP-Script liegt, gespeichert werden. Allerdings muss das Verzeichnis auch die entsprechenden Rechte (chmod) haben, sofern der Server ein *nix-Server ist.
 
Ah, richtig, keine Schreibrechte kein Hochladen, is klar. Habs jetzt soweit erstmal geschafft. Hoffe das ich das noch umgebastelt bekomme, das das mit meinem Formular kompatibel ist. Wird aber wohl nicht gehen oder? Das ich das Bild und die Angaben aus meinem Ausgangsformular per email gesendet bekomme.
 
Zurück