Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[PHP - schon wieder?] if klammern verwurschtelt
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 04.06.2007, 17:27    Titel: [PHP - schon wieder?] if klammern verwurschtelt Antworten mit Zitat

Hi,
ich habe inzwischen mal den TSW bei mir installiert, damit ich meine PHP-Skripte direkt bei mir testen kann happy, 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 traurig
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 04.06.2007, 17:48    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 05.06.2007, 13:41    Titel: Antworten mit Zitat

Oh. Danke, sowas übersehe ich gerne grinsen
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.06.2007, 15:20    Titel: Antworten mit Zitat

wenn ein Fehler bezügl. Unexpected / Expected kommt, Regel #1: Nach fehlenden Semikolons und fehlenden / überflüssigen Klammern suchen zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 05.06.2007, 15:38    Titel: Antworten mit Zitat

Danke für den tipp...

ebent hatte ich mich gewundert, warum das net funzen will (keine parse errors), und bei phpinfo kams dann raus:
Code:

PHP Version 4.3.8


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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.06.2007, 17:23    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 05.06.2007, 19:13    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 05.06.2007, 19:38    Titel: Antworten mit Zitat

imho kann ich aber nicht auf diese kurze Variablennamen verzichetn happy z.b. $_GET zwinkern
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.06.2007, 19:40    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 05.06.2007, 19:44    Titel: Antworten mit Zitat

verlegen aber $_POST war doch irgendwas alla HTTP_ bla blu oder so?
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.06.2007, 19:51    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 05.06.2007, 20:08    Titel: Antworten mit Zitat

hmm, dann verwechsle ich da irgendwas....
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 05.06.2007, 20:17    Titel: Antworten mit Zitat

Sch*****

Jetzt check ich gar nichts mehr neutral :

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%">&nbsp;</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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.06.2007, 20:24    Titel: Antworten mit Zitat

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 zwinkern 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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 05.06.2007, 20:29    Titel: Antworten mit Zitat

oO werd' ich mal korrigieren...

Es funktioniert Yahooo!!!! vor Freude klatschen !!! Thx ... ich mach mir mal ne liste:

  1. Kommas, Semikolone beachten
  2. Formularfeldnamen beachten
  3. klammern immer schliessen
  4. and so on...


_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 05.06.2007, 20:30    Titel: Antworten mit Zitat

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 verlegen
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 05.06.2007, 21:47    Titel: Antworten mit Zitat

möglichkeit #5: man verwendet ne gescheite IDE die einem alles von alleine anzeigt Zunge rausstrecken
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 05.06.2007, 22:06    Titel: Antworten mit Zitat

Notepad ftw! durchgeknallt

(Ich jedenfalls schreibe alle meine Sources entweder mit Notepad oder mit vim. Zunge rausstrecken)
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.06.2007, 22:09    Titel: Antworten mit Zitat

wie schon so oft gesagt: PSPad ftw!!!!!!! durchgeknallt
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 05.06.2007, 22:11    Titel: Antworten mit Zitat

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 happy

und hier gibs ihn: http://www.qhaut.de/forums/index.php?act=home
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Computer-Forum Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz