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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
12.10.2012, 22:36:43
|
Anfänger
|
|
Registriert seit: Oct 2012
Alter: 53
Beiträge: 11
|
|
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 ;)
|
13.10.2012, 00:32:54
|
Anfänger
|
|
Registriert seit: Oct 2012
Alter: 53
Beiträge: 11
|
|
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;
}
}
?>
|
13.10.2012, 01:08:22
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: heredoc syntax
Hallo und willkommen hier im Forum.
Zitat:
Zitat von SanPedro
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!
|
13.10.2012, 01:30:05
|
Anfänger
|
|
Registriert seit: Oct 2012
Alter: 53
Beiträge: 11
|
|
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.
|
13.10.2012, 01:45:12
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: heredoc syntax
Zitat:
Zitat von SanPedro
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!
|
13.10.2012, 07:43:59
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: heredoc syntax
Zitat:
Zitat von SanPedro
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; }
|
13.10.2012, 11:51:46
|
Anfänger
|
|
Registriert seit: Oct 2012
Alter: 53
Beiträge: 11
|
|
AW: heredoc syntax
Danke Meikel,
es geht so also nicht, das ist die Info die mir fehlte.
Gruß
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:05:58 Uhr.
|