php.de

Zurück   php.de > Webentwicklung > HTML, Usability und Barrierefreiheit

HTML, Usability und Barrierefreiheit Themen rund um Textauszeichnung, Formatierung, Barrierefreiheit und Usability.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.07.2005, 01:38  
Gast
 
Beiträge: n/a
Standard Fehler bei Javascript und Klammernsetzen

Hallo,
folgenden Source-Code könnt Ihr direkt in eine leere php-Datei kopieren und ausprobieren.
Der Code mit von PHP-Klammern eingeschlossenem fpclose-Aufruf verursacht, daß der generierte HTML-Code von den Klammern her fehlerhaft ist und eine eigenartige Fehlermeldung in der Datei generiert wird.
Löscht man diese Zeile mitsamt der PHP-Klammern ( <? und ?>) ist der Fehler weg. Diese Zeile ist aber doch korrekt!?

Was ist der Fehler? Wie kann ich ihn umgehen?

Da dies nur Teil einer Funktion ist, die nach fclose einen Javascript-Return hat, muß dort die Datei bei einem Fehler mit fclose geschlossen werden, sonst bleibt sie falscherweise geöffnet.

Vielen Dank für Eure Hilfe.
Sven

<HTML>
<HEAD>
</head>
<body>
Testzeile

<script language="JavaScript">
<?
$fp = fopen("emaillist.txt","r");
while (!feof($fp)) {
$userinfo = fscanf($fp, "%s\n");
list ($teil1, $teil2, $teil3, $teil4) = $userinfo;
$teil1 = $userinfo[0];
$info=array();
$info = explode(",",$teil1);
$e_mail = $info[2];
?>
var email = "test@test.com";
if (email == "<?echo $e_mail;?>") {
alert("Die E-Mail-Adresse ist bereits vorhanden.");
<?
fclose($fp);
?>
break;
}
<?
} // while
?>
</script>
Ende Test
</body>
</html>
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.07.2005, 02:05  
Gast
 
Beiträge: n/a
Standard

Setzt das bitte in entsprechende PHP-Tags und rück brav ein, ist realtiv grausam das zu lesen, ausserdem einige dich mal ob du alle Tags groß oder klein schreibst.
  Mit Zitat antworten
Alt 18.07.2005, 09:23  
Gast
 
Beiträge: n/a
Standard

Ok - Lesbarkeit verbessert. Der Code war schon mit Tabs eingerückt, aber ich dachte, in der alten Version sah das besser mit Spaces aus. Ist korrigiert.

Jetzt ist die Fehlermeldung noch eindeutiger. Einfach mal nach Aufruf der php-Datei Ansicht Quelltext machen und feststellen, daß der von PHP generierte Code keine geschossene Klammer mehr enthält.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
</HEAD>
<BODY>
Testzeile

<SCRIPT language="JavaScript">
<?php
$fp = fopen("emaillist.txt","r");
while (!feof($fp)) {
$userinfo = fscanf($fp, "%s\n");
list ($teil1, $teil2, $teil3, $teil4) = $userinfo;
$teil1 = $userinfo[0];
$info=array();
$info = explode(",",$teil1);
$e_mail = $info[2];
?>
var email = "test@test.com";
if (email == "<?echo $e_mail;?>") {
alert("Die E-Mail-Adresse ist bereits vorhanden.");
<?php
fclose($fp);
break;
?>
}
<?php
} // while
?>
</SCRIPT>
Ende Test
</BODY>
</HTML>
  Mit Zitat antworten
Alt 18.07.2005, 09:27  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

wie wäre es mal mit [php]-tags um deinen code, dann sieht das ganze gleich viel leserlicher aus.
robo47 ist offline   Mit Zitat antworten
Alt 18.07.2005, 09:43  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von sammy
Jetzt ist die Fehlermeldung noch eindeutiger.
Wie lautet sie denn?
Nicht jeder hat Lust hier extra deinen Code zu kopieren und sich eine emaillist.txt zu erstellen....

Statt zig Java-Script-if-Abfragen auszugeben, wäre es da nicht besser per PHP zu überprüfen, ob die Email-Adresse schon existiert und dann EINMAL ein kleines JavaScript mit einem alert() auszugeben...?

Dann hast du die Codes auch noch ziemlich verwurstelt - die Schleife wird doch so nur 1mal durchlaufen und dann sofort durch break-beendet wodurch auch die letzte Klammer } fehlt...
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 18.07.2005, 10:06  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

moved to (X)HTML, CSS & JavaScript
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline   Mit Zitat antworten
Alt 18.07.2005, 11:53  
Gast
 
Beiträge: n/a
Standard

"Statt zig Java-Script-if-Abfragen auszugeben, wäre es da nicht besser per PHP zu überprüfen, ob die Email-Adresse schon existiert und dann EINMAL ein kleines JavaScript mit einem alert() auszugeben...? "

Das stimmt, wenn man den Code so sieht, wie ich ihn hier reingesetzt habe.
Im Original-Code vergleiche ich die E-Mail-Adresse aus der Datei mit einem HTML-Eingabefeld und dessen Inhalt kann ich meines Wissens nicht an PHP übergeben.
Deswegen muß ich den Inhalt der aktuellen Dateizeile an Javasrcipt mit echo übergeben und dann in Javascript vergleichen.

"wie wäre es mal mit [php]-tags um deinen code, dann sieht das ganze gleich viel leserlicher aus."
Ich weiß nicht, ob ich die Frage richtig verstanden habe, aber die <?php und ?> Tags sind immer in einer extra Zeile, außer bei einer echo-Ausgabe ("php" habe ich bei meiner zweiten Version hinzugefügt).

"Sämtliche Rechtschreibfehler dienen der allgemeinen Belustigung. "
Zeige mir im Code nur einen einzigen!

Die Fehlermeldung nach Aufruf der Seite lautet:
Zeile 11: '}' erwartet

Der Code wird von PHP in folgendes umgewandelt ( siehe Menu: Ansicht / Quelltext)
<SCRIPT language="JavaScript">
var email = "test@test.com";
if (email == "test@test.com") {
alert("Die E-Mail-Adresse ist bereits vorhanden.");

</SCRIPT>

Dort fehlt natürlich die schließende Klammer. Es ist genau an der Stelle, an der fpclose im php-Code ist.

Es wäre toll, wenn jemand eine Lösung hat. Vielleicht gibt es ja auch eine Möglichkeit, Variablen von PHP an Javascript zu übergeben. Ich habe in einem Forum gelesen, man kann die Variable einfach in PHP aufrufen. Es wäre dann eine Variable ohne $-Zeichen, z.B.
<script language="Javascript">
var test="Dies ist ein Test";
<?
$test1 = test;
?>
</script>
Das geht aber leider nicht.
  Mit Zitat antworten
Alt 19.07.2005, 12:12  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von sammy
"Statt zig Java-Script-if-Abfragen auszugeben, wäre es da nicht besser per PHP zu überprüfen, ob die Email-Adresse schon existiert und dann EINMAL ein kleines JavaScript mit einem alert() auszugeben...? "

Das stimmt, wenn man den Code so sieht, wie ich ihn hier reingesetzt habe.
Im Original-Code vergleiche ich die E-Mail-Adresse aus der Datei mit einem HTML-Eingabefeld und dessen Inhalt kann ich meines Wissens nicht an PHP übergeben.
Wenn du die Seite nicht neu laden willst dann nein.

Zitat:
"wie wäre es mal mit [php]-tags um deinen code, dann sieht das ganze gleich viel leserlicher aus."
Ich weiß nicht, ob ich die Frage richtig verstanden habe, aber die <?php und ?> Tags sind immer in einer extra Zeile, außer bei einer echo-Ausgabe ("php" habe ich bei meiner zweiten Version hinzugefügt).
Nein du hast es falsch verstanden. Hier im Forum gibt es die MÖglichkeit PHP-Code hervorzuheben und so die Lesbarkeit zu steigern.
Dazu schreibst du einfach [ php]//Dein Code[/php ] (ohne die Leerzeichen).
Genauso kannst du auch zitieren [ quote]...[ /quote]


Zitat:
"Sämtliche Rechtschreibfehler dienen der allgemeinen Belustigung. "
Zeige mir im Code nur einen einzigen!
Das ist seine Signatur - die steht unter jedem Beitrag und hat nichts mit dir zu tun.



Zitat:
Die Fehlermeldung nach Aufruf der Seite lautet:
Zeile 11: '}' erwartet

Der Code wird von PHP in folgendes umgewandelt ( siehe Menu: Ansicht / Quelltext)
<SCRIPT language="JavaScript">
var email = "test@test.com";
if (email == "test@test.com") {
alert("Die E-Mail-Adresse ist bereits vorhanden.");

</SCRIPT>

Dort fehlt natürlich die schließende Klammer. Es ist genau an der Stelle, an der fpclose im php-Code ist.
Das ist doch auch vollkommen logisch - wenn der 2. von dir gepostete Code der richtige ist:

Zitat:
?>
var email = "test@test.com";
if (email == "<?echo $e_mail;?>") {
alert("Die E-Mail-Adresse ist bereits vorhanden.");
<?php
fclose($fp);
break;
?>
}
<?php
} // while
?>
Durch das break innerhalb des PHP-Bereichs und innerhalb der While-Schleife wird die Schleife SOFORT verlassen - alles bis zur schließenden Klammer der While-Schleife wird übersprungen - also auch die Ausgabe deiner schließenden Klammer für dein JavaScript.

Überhaupt bringt dir so die ganze Schleife nichts, da sie eben nur EINmal durchlaufen wird.
Außerdem hat das fclose innerhalb der Schleife nichts zu suchen - du willst das ja schließlich nur einmal tun und zwar am Ende und nicht für jeden Schleifendurchlauf...

Vielleicht noch eine kleine Erinnerung, weil ich langsam den Verdacht habe du hast das nicht ganz verstanden:
PHP wird auf dem Server ausgeführt - JavaScript beim Clienten.
D.h. also PHP wird ausgeführt BEVOR JavaScript ausgeführt wird.

Falls du also glaubst, du kannst hiermit:
Code:
if (email == "<?echo $e_mail;?>") {
alert("Die E-Mail-Adresse ist bereits vorhanden.");
<?php
fclose($fp);
break; 
?>
}
erreichen, dass die PHP-While-Schleife dann verlassen wird, wenn der Java-Script-Vergleich wahr ist - dann täuschst du dich...

Das sage ich aber eigentlich alles oben schonmal...
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 28.07.2005, 22:41  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Keine Ursache. Gern geschehn.
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
bitte hilfe! mysql fehler meldung: basicx PHP Tipps 2008 2 22.07.2008 16:36
Javascript bringt merkwürdigen Fehler sanz JavaScript, Ajax und mehr 5 27.06.2008 00:04
Javascript Fehler im IE, Mozilla Geht -> DIV einblenden niffi HTML, Usability und Barrierefreiheit 3 03.11.2007 10:59
Fehler bei Javascript.... HTML, Usability und Barrierefreiheit 1 18.07.2005 10:54
Unbekannter Javascript Fehler El Barto HTML, Usability und Barrierefreiheit 5 28.02.2005 08:47
[Erledigt] Wo liegt der fehler?? PHP-Fortgeschrittene 5 22.12.2004 09:54
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
php-variblen Fehler mit JavaScript abfangen möglich? HTML, Usability und Barrierefreiheit 2 27.10.2004 01:08
Formulare mit arrays mit php und gleichzeitig mit JavaScript PHP-Fortgeschrittene 2 14.10.2004 15:33
Hilfe ich finde den Fehler nicht! PHP Tipps 2004 2 07.10.2004 17:40
PHP + Javascript + XML = Fehler durch PHP Interpreter PHP Tipps 2004 5 11.09.2004 19:46
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
mysql_real_escape_string - Fehler Schaelle Datenbanken 0 03.07.2004 23:32
Paradox, Fehler bei Berechnung in MySQL MrNiceGuy Datenbanken 0 23.06.2004 16:09

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript if klammer, javascript klammern, test ob javascript ausgeführt, javascript klammer, php klammern, javascript klammer html code, deutsch klammernsetzung, javascript fehler durch klammersetzung, javascript klammer zu, javaskript klammer setzung, klammer setzung javascript, e-mail adresse immer in klammern, fehler in klammern, klammernsetzung, javascript, javascript klammer in php echo, php klammern um code, javascript klammer in if, php error fpclose(), javascript fehler wegen php, klammern javascript

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.