SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 12.10.2012, 22:36:43
SanPedro SanPedro ist offline
Anfänger
 
Registriert seit: Oct 2012
Alter: 47
Beiträge: 11
SanPedro befindet sich auf einem aufstrebenden Ast
heredoc syntax

Hallo,
ich möchte mir eine Klasse für ein Anmeldeformular erstellen habe aber Probleme mit der heredoc Syntax.

PHP-Code:
<?php
class anmeldeform{
    private 
$action;
        
    
    private 
$form= <<<Überschrift
            <h1>hier loggen Sie sich ein </h1>
            also bitte<br>
            hier:
            <table>
                <form action="$this
->action" method="post">
                <tr>
                    <td>Benutzername</td>
                    <td><input type="text" name="benuztername"></input></td>
    
                </tr>
                <tr>
                    <td>Passwort</td>
                    <td><input type="password" name="passwort"></input></td>
                </tr>
                <tr>
                    <td><input type="submit" value="abschicken"></input> </td>
                </tr>
            
    
            </table>
            </form>
Überschrift;
    function 
__construct($zieldatei){
            
$this->action=$zieldatei;    
        }
    function 
formularErstellen(){
        echo 
$this->form;
        
    }
}
?>

Der Fehlercode:
Code:
Parse error: syntax error, unexpected T_VARIABLE, expecting T_END_HEREDOC in /home/cabanni/public_html/worksp/Kursangebot/AnmeldeForm.php on line 11
Linie 11 ist diese Zeile:
Code:
<form action="$this->action" method="post">
Wäre euch sehr dankbar wenn ihr mich zu der Lösung meines Fehlers führt ;)

Interessant und eigentlich so geplant, wäre es auch so:

Code:
private static $action="$_SERVER['PHP_SELF'];
dann müsste Zeile 11 wohl so aussehen:
Code:
<form action="self::$action" method="post">
Leider ist über Heredoc wenig zu finden, zumindest wenn es über die Verwendung einer simplen Variable hinaus geht.

Gruß

Geändert von SanPedro (12.10.2012 um 22:44:00 Uhr) Grund: kam noch was dazu ;)
Mit Zitat antworten
  #2  
Alt 13.10.2012, 00:32:54
SanPedro SanPedro ist offline
Anfänger
 
Registriert seit: Oct 2012
Alter: 47
Beiträge: 11
SanPedro befindet sich auf einem aufstrebenden Ast
AW: heredoc syntax

ok so ist es zumindest funktional, interessieren würde mich die Syntax von Heredoc jedoch dennoch ;)

PHP-Code:
<?php
class anmeldeform{
        
    public function 
__invoke($action){
        echo <<<Überschrift
    
            <h1>hier loggen Sie sich ein </h1>
            also bitte<br>
            hier:
            <table>
                <form action="$action" method="post">
                <tr>
                    <td>Benutzername</td>
                    <td><input type="text" name="benuztername"></input></td>
    
                </tr>
                <tr>
                    <td>Passwort</td>
                    <td><input type="password" name="passwort"></input></td>
                </tr>
                <tr>
                    <td><input type="submit" value="abschicken"></input> </td>
                </tr>
            
    
            </table>
            </form>
Überschrift;
    }
}
?>
Mit Zitat antworten
  #3  
Alt 13.10.2012, 01:08:22
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.571
vt1816 hat die Renommee-Anzeige deaktiviert
vt1816 eine Nachricht über Skype™ schicken
AW: heredoc syntax

Hallo und willkommen hier im Forum.


Zitat:
Zitat von SanPedro Beitrag anzeigen
ok so ist es zumindest funktional, interessieren würde mich die Syntax von Heredoc jedoch dennoch ;)
Was hast Du gegen Suchmaschinen?

Zum Beispiel findet man bei SELFPHP im Praxisbuch Heredoc.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #4  
Alt 13.10.2012, 01:30:05
SanPedro SanPedro ist offline
Anfänger
 
Registriert seit: Oct 2012
Alter: 47
Beiträge: 11
SanPedro befindet sich auf einem aufstrebenden Ast
Zitat:
Was hast Du gegen Suchmaschinen?

Zum Beispiel findet man bei SELFPHP im Praxisbuch Heredoc.
Danke für den "hilfreichen innovativen Tip", ich habe die Suchmaschinen natürlich scbon stundenlang befragt, aber für den Kontext in dem ich nach der Syntax von Heredoc fragte fand ich keine Antwort die funktioniert, ebenso wie im Praxisbuch.
Schlussendlich kam ich zu dem Schluss im Forum Experten um Hilfe zu bitten. Nun kamst du.

Es geht darum in der Klasse diese info statisch zu haben:
PHP-Code:
private static $action=$_SERVER[PHP_SELF]; 
sie aber bei Bedarf überschreiben zu können und dann mit self:: einzubinden aber heredoc nimmt weder "$this->action" an, noch self::$action und auch innerhalb {...} gehts nicht.
Mit Zitat antworten
  #5  
Alt 13.10.2012, 01:45:12
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.571
vt1816 hat die Renommee-Anzeige deaktiviert
vt1816 eine Nachricht über Skype™ schicken
AW: heredoc syntax

Zitat:
Zitat von SanPedro Beitrag anzeigen
Es geht darum in der Klasse diese info statisch zu haben:
PHP-Code:
private static $action=$_SERVER[PHP_SELF]; 
Eigentor!

Wenn Du die SuMa Deines Vertrauens bereits stundenlang befragt hast, dann sollte Dir jedoch schon bekannt sein, dass
PHP-Code:
$_SERVER[PHP_SELF
PFUI ist!



So und jetzt kommst Du.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #6  
Alt 13.10.2012, 07:43:59
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 69
Beiträge: 4.001
meikel befindet sich auf einem aufstrebenden Ast
AW: heredoc syntax

Zitat:
Zitat von SanPedro Beitrag anzeigen
ich möchte mir eine Klasse für ein Anmeldeformular erstellen habe aber Probleme mit der heredoc Syntax.
http://www.php.net/manual/en/languag...syntax.heredoc

Zitat:
PHP-Code:
<?php
class anmeldeform{
    private 
$action;
        
#-------------------------vvvvvvvvv
    
private $form= <<<Überschrift
Was soll der Umlaut im open identifier? Auch wenns funktionieren sollte, halte Dich besser an die Namenskonventionen.

Zitat:
PHP-Code:
                <form action="$this->action" method="post"
Sowas ist mit oder ohne Heredoc verboten.
1. $this ist in den Properties noch nicht bekannt. Die Methode action auch nicht.
2. "Heredocs can not be used for initializing class properties."

Zitat:
Leider ist über Heredoc wenig zu finden, zumindest wenn es über die Verwendung einer simplen Variable hinaus geht.
Das, was im Handbuch steht, reicht doch. Warum muß es denn ausgerechnet dieser Fummel sein? Wenn Dir Templates nicht gefallen, dann verwende eben sprintf()

PHP-Code:
function login($action $_SERVER['SCRIPT_NAME'], $out false){
  
$txt sprintf('    
            <h1>hier loggen Sie sich ein </h1>
            also bitte<br>
            hier:
            <table>
                <form action="%s" method="post">
                <tr>
                    <td>Benutzername</td>
                    <td><input type="text" name="benuztername"></input></td>
    
                </tr>
                <tr>
                    <td>Passwort</td>
                    <td><input type="password" name="passwort"></input></td>
                </tr>
                <tr>
                    <td><input type="submit" value="abschicken"></input> </td>
                </tr>
            </table>
            </form>'
,
      
$action);
  if (
$out == false)
    return 
$txt;
  else
    echo 
$txt;

Mit Zitat antworten
  #7  
Alt 13.10.2012, 11:51:46
SanPedro SanPedro ist offline
Anfänger
 
Registriert seit: Oct 2012
Alter: 47
Beiträge: 11
SanPedro befindet sich auf einem aufstrebenden Ast
AW: heredoc syntax

Danke Meikel,
es geht so also nicht, das ist die Info die mir fehlte.

Gruß
Mit Zitat antworten
Antwort

Stichworte
$this, heredoc, string


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Error in der SQL syntax Sr2406 MySQL 24 18.11.2010 12:24:15
Select Syntax fehlerhaft Klarissa PHP Grundlagen 5 13.07.2010 16:51:46
MySql Syntax Fehler - #1064 Backpacker MySQL 13 29.04.2009 16:41:35
Mysql 5.1 Syntax Hamberger MySQL 1 28.03.2008 23:47:24
"Fehler" im Syntax bei where (UPDATE) Bitte um Hilfe :( Kann mir das nicht erklären blackmolle MySQL 21 29.06.2007 20:18:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:35:25 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.


© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt