Ergebnis 1 bis 10 von 10

Thema: Syntax-Problem mit PHP

  1. #1
    HTML Newbie
    Registriert seit
    02.04.2008
    Beiträge
    4
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Syntax-Problem mit PHP

    Hallo liebe forum-hilfe.de Mitglieder.
    Ich sitze jetzt schon seit zwei Studnen vor diesem Quelltext und zermater mir den Kopf. Leider sind alle miene Programmierbegabten Freunde (so viele sinds irgendwie nicht) in Urlaub oder wo auch immer. Wäre nett wenn von euch ein paar einen Blick auf diesen Code werfen könnten... immerhin sehen viele augen mehr als nur zwei. Der Parse error ist ein unexpected $ in der Zeile nach der Letzten.
    Danke schonmal im Voraus

    ~derder

    Code:
    <?php
    include&#40;'connect.php'&#41;;
    $action = "&#123;$_SERVER&#91;'PHP_SELF'&#93;&#125;";
    if &#40;empty&#40;$_get&#91;'session'&#93;&#41;&#41;
    &#123;
    	if &#40;$_SERVER&#91;'REQUEST_METHOD'&#93; != 'POST'&#41;
    	&#123;	
    		echo <<<formular
    		<form action='$action' method='post'>
    		Passwort
    
    		<input type='password' name='passwort'>
    
    		<input type='submit'>
    
    		formular;
    	&#125;	
    	if &#40;&#123;$_SERVER&#91;'REQUEST_METHOD'&#93;&#125; == 'POST'&#41;
    	&#123;
    		if&#40;&#123;$_post&#91;'passwort'&#93;&#125;=='passwort'&#41;
    		&#123;
    			$time=time&#40;&#41;;
    			$securtiy==md5&#40;$time/rand&#40;&#41;&#41;;
    			$eintrag = "INSERT INTO `contrapolsecurity` &#40; `key` , `time`&#41;	VALUES &#40;'&#123;$security&#125;', '&#123;$time&#125;'&#41;";
    			$eintragen = mysql_query&#40;$eintrag&#41;;
    			//sessions aufräumen	
    			$leeren = "DELETE FROM `contrpolsecurity` WHERE `time` < &#123;$time&#125;-10800";
    			$leerung = mysql_query&#40;$leeren&#41;;
    			echo&#40;"Hier Klicken zum einloggen"&#41;;
    		&#125;
    		else 
    		&#123;
    			echo&#40;"Falsches Passwort"&#41;;
    		&#125; 
    	&#125;
    &#125;
    else
    &#123;
    	$time=time&#40;&#41;;
    	$valid=0;
    	$abfrage = "SELECT key, time FROM contrapolsecurity WHERE time > &#123;$time&#125;-7200";
    	$ergebnis = mysql_query&#40;$abfrage&#41;;
    	while&#40;$row = mysql_fetch_object&#40;$ergebnis&#41;&#41;
    	&#123;
    		$compare=$row->key;
    		if&#40;$compare==$_get&#91;session&#93;&#41;
    		&#123;
    			$valid=1;
    		&#125;
    	&#125;
    	
    	if &#40;$valid==1&#41;
    	&#123;
    		echo&#40;"Schreiben Ändern"&#41;;
    	&#125;
    &#125;
    mysql_close&#40;$mysql&#41;;
    ?>
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in)
    Registriert seit
    24.10.2006
    Beiträge
    288
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    normalerweise bedeutet das, dass du eine } ned zugemacht hast.. wird vlt. bei connect.php eine geöffnet, aber ned geschlossen?


    lg
    Andi

  3. #3
    HTML Newbie
    Themenstarter

    Registriert seit
    02.04.2008
    Beiträge
    4
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    habe die Anzahl der Klammern schon 3 mal geprüft, ich komm bald nicht mehr klar... die connect.php ist folgende:
    Code:
    <?php
    $mysql = mysql_connect&#40;"localhost", "benutzer", "Passwort"&#41;;
    mysql_select_db&#40;"datenbank"&#41;;
    ?>

  4. #4
    Shogun Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    Code:
    if &#40;$_SERVER&#91;'REQUEST_METHOD'&#93; != 'POST'&#41;
       &#123;   
          echo <<<formular
          <form action='$action' method='post'>
          Passwort
    
          <input type='password' name='passwort'>
    
          <input type='submit'>
    
          formular;
       &#125;
    Was zum Geier ist das ??

    Post Scriptum: Ich empfehle dir einen Editor mit Syntax Highlighting zu nutzen, dann hättest du den Fehler selbst gefunden.

  5. #5
    HTML Newbie
    Themenstarter

    Registriert seit
    02.04.2008
    Beiträge
    4
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Post Scriptum: Ich empfehle dir einen Editor mit Syntax Highlighting zu nutzen, dann hättest du den Fehler selbst gefunden.
    Ich widersprech dir ungern... aber ich benutze einen. Das mein PHP perfekt ist will ich nicht annähernd behaupten. Das Syntax Highlighting ist aktiviert, funktioniert und trotzdem seh ich den fehler noch nicht.

    Trotzdem danke für die Mühe und ein noch größeres Danke bekommst du, wenn du mir den fehler noch nennst. Mag sein dass ich heute besonders blind bin, aber wer hat solche Tage nicht?

  6. #6
    König(in) Avatar von NyctalusNoctula
    Registriert seit
    07.08.2006
    Beiträge
    1.316
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    if ($_SERVER['REQUEST_METHOD'] != 'POST')
    {
    echo <<<formular
    <form action='$action' method='post'>
    Passwort

    <input type='password' name='passwort'>

    <input type='submit'>

    formular;
    }

    Was sollen denn diese 3 spitzen Klammern auf bewirken? Schau dir mal den echo Befehl in php nochmals an!
    Warum schreibst du über und unter dein Formular formular? Wenn das da stehen soll, dann schriebs doch wenigstens groß!

    Ich seh grad, dass du alle echo Befehle falsch aufrufst.

  7. #7
    HTML Newbie
    Themenstarter

    Registriert seit
    02.04.2008
    Beiträge
    4
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ich bin grade sehr verdutzt... ich habe von meinem eigenene quelltext geklaut...

    echo <<<form
    <form action='$action' method='post'>
    Titel

    <input type='text' name='name'>

    Nachricht

    <textarea name='content' rows='25' cols='125'></textarea>
    <input type='submit'>

    form;
    der funktioniert, den habe ich schonmal so benutzt... warum funktioniert der andere nicht?!?!?

  8. #8
    Bandit
    Gast

    Standard

    Heredoc
    Eine andere Möglichkeit Strings einzufassen, besteht im Gebrauch der heredoc-Syntax ("<<<"). Hierfür ist nach <<< ein Bezeichner zu setzen. Nun folgt der eigentliche String und dann derselbe Bezeichner um den String abzuschließen.

    Der schließende Bezeichner muss in der ersten Spalte der Zeile stehen. Die verwendeten Bezeichner müssen den gleichen Regeln entsprechen wie alle anderen PHP-Labels auch: Sie dürfen lediglich alphanumerische Zeichen und den Unterstrich enthalten und müssen mit einem Unterstrich oder einem Buchstaben beginnen.

    Warnung:
    Es ist sehr wichtig zu beachten, dass die Zeile mit dem schließenden Bezeichner keine anderen Zeichen enthält, ausgenommen möglicherweise ein Semikolon ( ; ). Das bedeuted im Besonderen, dass der Bezeichner nicht eingerückt werden darf und es dürfen keine Leerzeichen oder Tabulatoren vor oder nach dem Semikolon stehen. Außerdem ist es wichtig, zu beachten, dass das erste Zeichen vor dem schließenden Bezeichner ein der Definition Ihres Betriebssystems entsprechender Zeilenvorschub, sein muss. Das ist zum Beispiel auf einem Macintosh ein \r.

    Falls diese Regel gebrochen wird und der schließende Bezeichner nicht "sauber" ist, wird er nicht als schließender Bezeichner betrachtet und PHP wird weiter danach suchen. Wird in diesem Fall kein korrekter schließender Bezeichner gefunden, gibt es einen Parser-Fehler mit der Zeilennummer vom Ende des Skripts.

    Heredoc-Text funktioniert wie ein String innnerhalb doppelter Anführungszeichen, nur ohne doppelte Anführungszeichen. Anführungszeichen innerhalb von heredoc-Texten müssen also keiner Sonderbehandlung (escapen) unterzogen werden, aber Sie können dennoch die oben aufgeführten Escape-Anweisungen verwenden. Variablen werden ausgewertet, aber besondere Aufmerksamkeit muss komplexen Variablen gewidmet werden, genau wie bei Strings.

  9. #9
    König(in) Avatar von NyctalusNoctula
    Registriert seit
    07.08.2006
    Beiträge
    1.316
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ok, wieder was dazugelernt.
    Aber mit den vielen Problemchen und der umständlicheren Syntax frag ich mich wieso man Heredoc überhaupt verwenden sollte?

  10. #10
    Gast

    Standard

    argl... das kommt nun also davon wenn man alles sauber mit tabulatoren einrückt... brauch ich mich ja nicht wundern wenn nichts funktioniert...

Ähnliche Themen

  1. Syntax-Highlighting
    Von Bandit im Forum Forum-Hilfe.de intern
    Antworten: 17
    Letzter Beitrag: 17.06.2008, 21:27
  2. HTML Syntax-Highlighter
    Von Greg10 im Forum Script-Archiv
    Antworten: 0
    Letzter Beitrag: 09.05.2008, 15:57
  3. Syntax Problem (<)
    Von Hilfe im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 17
    Letzter Beitrag: 21.10.2007, 19:56
  4. Word syntax
    Von Gast im Forum Forum für alle anderen Programmiersprachen
    Antworten: 1
    Letzter Beitrag: 12.07.2007, 10:49
  5. WML 1.1 und RSS 2.0 Syntax - eilt
    Von Student25 im Forum HTML & CSS Forum
    Antworten: 0
    Letzter Beitrag: 15.06.2004, 14:26

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •