Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 04.06.2007, 17:27 Titel: [PHP - schon wieder?] if klammern verwurschtelt |
|
|
Hi,
ich habe inzwischen mal den TSW bei mir installiert, damit ich meine PHP-Skripte direkt bei mir testen kann , zurzeit schreibe ich ein privates gästebuch, wo ich zwei if {} else {} abfragen verschachtelt habe... nur ständig meldet er mir parse errors bei den zeilen 30-35, wegen unerwarteten klammern
Skript:
Code: |
<?php
if (isset($_POST['password'])) {
if ($_POST['password'] == "LOLOLOLOL"){
echo"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">",
"<html>",
" <head>",
" <meta http-equiv=\"content-type\" content=\"text/html; charsetwindows-1250\">",
" <meta name=\"generator\" content=\"PSPad editor, www.pspad.com\">",
" <title>Sie sind nun Erfolgreich eingeloggt!</title>",
" </head>",
" <body bgcolor=\"#FFFFAA\">",
" <h2>Sie sind nun Erfolgreich eingeloggt!</h2>",
" <p>",
" <hr>",
" <p>",
" Nun kannst du im privatem Gästebuch Nachrichten schreiben.";
}
else {
echo"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">",
"<html>",
" <head>",
" <meta http-equiv=\"content-type\" content=\"text/html; charsetwindows-1250\">",
" <meta name=\"generator\" content=\"PSPad editor, www.pspad.com\">",
" <title>Das eingebene Passwort ist falsch!</title>",
" </head>",
" <body bgcolor=\"#FFFFAA\">",
" <h2>Das eingebene Passwort ist falsch!</h2>",
" <p>",
" <hr>",
" <p>",
" <a href=\"pgb.php\">Bitte versuchen sie es noch einmal.</a>",
"</body>",
"</html>",
}
}
else {
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">",
"<html>",
" <head>",
" <meta http-equiv=\"content-type\" content=\"text/html; charsetwindows-1250\">",
" <meta name=\"generator\" content=\"PSPad editor, www.pspad.com\">",
" <title>Es wurde kein Passwort übermittelt!</title>",
" </head>",
" <body bgcolor=\"#FFFFAA\">",
" <h2>Es wurde kein Passwort übermittelt!</h2>",
" <p>",
" <hr>",
" <p>",
" <a href=\"pgb.php\">Bitte versuchen sie es noch einmal.</a>",
"</body>",
"</html>",
}
?>
|
_________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.06.2007, 17:48 Titel: |
|
|
das liegt net an den klammern, sondern daran, dass du vergisst, dein echo mit einem Semikolon zu schließen. also jeweils "</html>"; statt "</html>", _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.06.2007, 15:20 Titel: |
|
|
wenn ein Fehler bezügl. Unexpected / Expected kommt, Regel #1: Nach fehlenden Semikolons und fehlenden / überflüssigen Klammern suchen  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 05.06.2007, 15:38 Titel: |
|
|
Danke für den tipp...
ebent hatte ich mich gewundert, warum das net funzen will (keine parse errors), und bei phpinfo kams dann raus:
allerdings nur auf dem lokal installierten TSW, nach update auf PHP5 funzte alles so wies soll. Danke Jojo! _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.06.2007, 17:23 Titel: |
|
|
Tipp: arbeite, sofern es kein großer Mehraufwand ist, mit PHP 4, da viele server auch heute noch kein PHP 5 installiert haben... wird beim Umstieg dann leichter. ich vermute dass es an dein kommas beim echo liegt. diese methode ist VIEL bequemer und das syntax highlighting funzt im PsPad dann auch nocH:
Code: |
if($password == "fglghewilghewilghweilge") {
?>
HTML-CODE hier rein
<?php
} else {
?>
HTML-CODE hier rein
<?php
}
|
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.

Zuletzt bearbeitet von Jojo am 05.06.2007, 19:27, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 05.06.2007, 19:13 Titel: |
|
|
Mit XAMPP kannst du sogar ganz leicht zwischen PHP4 und PHP5 hin- und herwechseln. Ein PHP4-Skript wird aber bis auf ganz wenige Ausnahmen auch unter PHP5 laufen (Versionsunterschiede). Darum würde ich, wie Jojo schon sagt, lieber für PHP4 programmieren. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.06.2007, 19:40 Titel: |
|
|
hö? $_GET gibt's auch schon in PHP4.... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.06.2007, 19:51 Titel: |
|
|
ich wieß nicht was du meinst... all diese Globalen variablen gibt's schon in PHP4... z.T. auch in PHP3. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 05.06.2007, 20:17 Titel: |
|
|
Sch*****
Jetzt check ich gar nichts mehr :
online zum angucken: http://csderats.cs.funpic.de/test/pgb.html
pgb.html
Code: |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charsetwindows-1252">
<title>Für diesen Bereich ist ein Passwort erforderlich!</title>
</head>
<body bgcolor="#FFFFAA">
<h2>Für diesen Bereich ist ein Passwort erforderlich!</h2>
<p>
<hr>
<p>Gebe im untenstehendem Formular dein Passwort ein.
<form action = "pgb_1.php" method="post">
<table border="0" width="100%">
<tr>
<td width="10%">Passwort:</td>
<td width="90%">
<input type = "password" name = "pass" size="20">
</td>
</tr>
<tr>
<td width="10%">
<input type = "submit" value = "Submit!">
<input type = "reset" name = "Reset" value="Reset">
</td>
<td width="90%"> </td>
</tr>
</table>
</form>
</body>
</html> |
pgb_1.php:
Code: |
<?php
if(isset($_POST['password']) and $_POST['password'] == "a") {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8559-1">
</head>
<body bgcolor="#FFFFAA">
<h2>Sie sind nun Erfolgreich eingeloggt!</h2>
<p>
<hr>
<p>
Nun kannst du im privatem Gästebuch Nachrichten schreiben.
</body>
</html>
<?php
} else {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Das eingebene Passwort ist falsch!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8559-1">
</head>
<body bgcolor="#FFFFAA">
<h2>Das eingebene Passwort ist falsch!</h2>
<p>
<hr>
<p>
<a href="pgb.html">Bitte versuchen sie es noch einmal.</a>
<?php
echo $_GET['password']
?>
</body>
</html>
<?php
} ?>
|
egal was ich eingebe, es kommt immer die fehlermeldung passwort falsch... _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.06.2007, 20:24 Titel: |
|
|
erstmal, kleine schönheitskorrektur:
Code: |
if(isset($_POST['password']) and $_POST['password'] == "a") {
|
du musst nur prüfen, ob "password" den wert "a" hat, ISSET is logischerweise unnötig ("hat es den wert a? und existiert es?")
das problem ist, dass dein pw-feld "pass" und nicht "password" heißt du hast nur den type auf "password" gesetzt. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 05.06.2007, 20:29 Titel: |
|
|
oO werd' ich mal korrigieren...
Es funktioniert !!! Thx ... ich mach mir mal ne liste:
- Kommas, Semikolone beachten
- Formularfeldnamen beachten
- klammern immer schliessen
- and so on...
_________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 05.06.2007, 20:30 Titel: |
|
|
6. Zeile von unten:
Code: | echo $_GET['password'] |
Bist du sicher, dass du nicht auch $_POST meinst? Mit $_GET übermittelst du hier doch gar nichts.
Ich würde auch hier am Ende einen Strichpunkt setzen, einfach damit sich das einschleift. Außerdem kriegst du sonst Probleme, wenn du später darunter noch eine PHP-Zeile einfügst.
edit: noch was allgemein zur Fehlerliste:
Niemals = mit == verwechseln. Soll Leute geben, denen das immer wieder passiert  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 05.06.2007, 21:47 Titel: |
|
|
möglichkeit #5: man verwendet ne gescheite IDE die einem alles von alleine anzeigt  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 05.06.2007, 22:06 Titel: |
|
|
Notepad ftw!
(Ich jedenfalls schreibe alle meine Sources entweder mit Notepad oder mit vim. ) _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.06.2007, 22:09 Titel: |
|
|
wie schon so oft gesagt: PSPad ftw!!!!!!!  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 05.06.2007, 22:11 Titel: |
|
|
Gar nich. Phase5 is das einzig ware (für mich), so einzigartig, dass ich ihn unter Linux auch unbedingt einsetzen musste, und deshalb Wine installiert hatte
und hier gibs ihn: http://www.qhaut.de/forums/index.php?act=home |
|
Nach oben |
|
 |
|