kostenloser Webspace werbefrei: lima-city


Fehler in Script?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    nellodc

    nellodc hat kostenlosen Webspace.

    Hi Leute ich bin dabei php zu lernen und hab n script gemacht der leider nich funktioniert...
    wisst ihr warum?:

    HTML:
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <form action="seite55.php" method="post">
    E-Mail:
    <input type="text" name="email"><br>
    Kommentar:
    <textarea name="kommentar" cols="30" rows="5"></textarea>
    <input type="Submit" value="Ab Geht's">
    </form>
    </body>
    </html>

    PHP:
    <?php
    $email = $_POST["email"];
    $kommentar = $_POST["kommentar"];

    if($email=="" OR $kommentar=="")
    {
    echo "Bitte füllen sie alle Felder aus";
    }
    else
    {
    echo "Ihr Eintrag wurde gespeichert";
    }
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ein OR gibt es in php nicht.
    Verwende stattdessen || für logische oder-Operationen.

    mfg
  4. Autor dieses Themas

    nellodc

    nellodc hat kostenlosen Webspace.

    Also beim tutorial bei dem ich lerne heissts dass ich es benutzen soll
    hab aber deins probiert und hat trotzdem nich funktioniert.

    was ich noch hinzufügen möchte:
    es kommt keine fehlermeldung -> es erscheint einfach nur ein weißer browserinhalt
  5. es kommt keine fehlermeldung -> es erscheint einfach nur ein weißer browserinhalt


    Vorheringe Scripte sind aber schon ausgeführt worden? Ist das php script auch unter seite55.php gespeichert?

    Mal versucht ein echo "hallo Welt" am anfang zu setzten, wenn das nicht funktioniert, solltest du mal schauen ob der Webserver überhaupt läuft?
  6. syberpsace schrieb:
    Ein OR gibt es in php nicht.
    Verwende stattdessen || für logische oder-Operationen.
    Etwas bescheuerteres habe ich zuletzt im Anarchie-Thread gelesen, und das hat was zu heißen!

    Natürlich gibt es in PHP ein OR, genauso wie es in PHP ein AND gibt. Das OR und das AND unterscheiden sich jedoch vom || und &&, genaueres kannst du im Handbuch nachlesen. Aber vorerst teste doch mal diesen Code:
    <?php
    	if(true OR false)
    		echo 'hmm, komisch...';
    ?>


    Und du, nellodc , teste bitte, ob es so funktioniert:
    if(($email=="") OR ($kommentar==""))
  7. ole-reglitzki

    Kostenloser Webspace von ole-reglitzki

    ole-reglitzki hat kostenlosen Webspace.

    Wo soll PHP das denn hin echo'n?
    du musst schon das html-Gerüst drum bauen (echo-Ausgaben sollten in deinem Fall im Body sein) ;-)
    PHP wird auf dem Server ausgeführt und das Ergebnis + HTML an den User gesendet, dessen Browser interpretiert diesen Code
    (einfach zusammengefasst)
    Da der Browser HTML-Code erwartet, muss folglich das, was der Browser bekommt folgendermaßen aussehen:
    <html>
    <body>
    Bitte füllen sie alle Felder aus
    </body>
    </html>

    bei deinem Code bekommt dieser allerdings nur:
    Bitte füllen sie alle Felder aus

    Mit diesem einfachen Text kann der Browser nichts anfangen...

    also muss dein kompletter PHP-Code so aussehen:
    <html>
    <body>
    
    <?php
    $email = $_POST['email'];
    $kommentar = $_POST['kommentar'];
    
    if($email=='' OR $kommentar=='')
    {
    echo 'Bitte füllen sie alle Felder aus';
    }
    else
    {
    echo 'Ihr Eintrag wurde gespeichert';
    }
    ?>
    
    </body>
    </html>


    zu dem or und and weiß ich nichts, aber ich rate zu || und && um sicher zu gehen...
    Außerdem: In php sollte man nach Möglichkeit einfache Anführungszeichen benutzen, statt doppelten.

    lg Ole
  8. ole-reglitzki schrieb:
    Wo soll PHP das denn hin echo'n?
    Standardausgabe bei einem Webserver ist das normalerweise das Senden an den anfragenden Clienten (Browser) und wenn man es als Programm auf der Komandozeile nutzt die normale Standardausgabe.

    du musst schon das html-Gerüst drum bauen (echo-Ausgaben sollten in deinem Fall im Body sein) ;-)
    Schon wieder falsch, das HTML interessiert den Browser erstmal garnicht!

    PHP wird auf dem Server ausgeführt und das Ergebnis + HTML an den User gesendet, dessen Browser interpretiert diesen Code[/code]
    Das Ergebnis wird gesendet, was das ist ist sch… egal, man kann ja auch die Header ändern, oder eine Cronpage aufgerufen haben, die nur einen Job erledigt.

    (einfach zusammengefasst)
    Da der Browser HTML-Code erwartet, muss folglich das, was der Browser bekommt folgendermaßen aussehen:
    <html>
    <body>
    Bitte füllen sie alle Felder aus
    </body>
    </html>
    Muss es nicht! Die Struktur der Antwort ist unerheblich.

    bei deinem Code bekommt dieser allerdings nur:
    Bitte füllen sie alle Felder aus

    Mit diesem einfachen Text kann der Browser nichts anfangen...
    Oh doch, mehr zumindest als mit dieser Aussage!

    also muss dein kompletter PHP-Code so aussehen:
    <html>
    <body>
    
    <?php
    $email = $_POST['email'];
    $kommentar = $_POST['kommentar'];
    
    if($email=='' OR $kommentar=='')
    {
    echo 'Bitte füllen sie alle Felder aus';
    }
    else
    {
    echo 'Ihr Eintrag wurde gespeichert';
    }
    ?>
    
    </body>
    </html>
    Total toller Mist.
    Was macht dein Code? Genau das selbe wie vorher, nur das ein paar mehr Zeichen gesendet werden... Abgesehen davon das die Funktionalität (die if-Abfrage und so) des PHP abgeschlossen sein sollte bevor es zur Ausgabe kommt, und dann nur noch ein Platzhalter gefüllt wird.

    zu dem or und and weiß ich nichts, aber ich rate zu || und && um sicher zu gehen...
    Außerdem: In php sollte man nach Möglichkeit einfache Anführungszeichen benutzen, statt doppelten.

    lg Ole
    Mannometer einen hellen Moment hattest du ja dann doch noch, den einfache Anführungszeichen sollte man tatsächlich präverrieren, aber uneingeschräkt || und && zu empfehlen ist auch falsch, sie sind zwar von der logischen Bedeutung her equivalent zu den ausgeschrieben Varianten (or, and) aber haben eine unterschiedliche Priorität! siehe hier: http://www.php.net/manual/de/language.operators.logical.php

    Außerdem ist das PHP am vom Threadersteller durchaus korrekt, daher tippe ich auf eine dieser Ursachen:
    • kein PHP installiert dann wird das uninterpretierte PHP ausgeliefert und ist unsichtbar, da es wie ein XML-Doctype aussieht <? … ?>
    • falsche Seite aufgerufen, wobei dann eigentlich irgendeine Art von Fehlerseite kommen müsste, sofern es nicht unterdrückt ist und das traue ich unserem Threadersteller nicht zu, da er ja Anfänger ist

    Mit freundlichen Grüßen
  9. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    ole-reglitzki schrieb:
    Wo soll PHP das denn hin echo'n?
    du musst schon das html-Gerüst drum bauen (echo-Ausgaben sollten in deinem Fall im Body sein) ;-)
    PHP wird auf dem Server ausgeführt und das Ergebnis + HTML an den User gesendet, dessen Browser interpretiert diesen Code
    (einfach zusammengefasst)
    Da der Browser HTML-Code erwartet, muss folglich das, was der Browser bekommt folgendermaßen aussehen:
    [..]
    Mit diesem einfachen Text kann der Browser nichts anfangen...
    [..]
    Hier…

    Ich hab hier mal dein Script am laufen, es tut…
    Schau mal, ob deine PHP-Datei auch „seite55.php“ genannt hast, an die werden die Daten gesendet ;-)
    <form action="seite55.php" method="post">


    Natürlich gibt es in PHP ein OR, genauso wie es in PHP ein AND gibt. Das OR und das AND unterscheiden sich jedoch vom || und &&, genaueres kannst du im Handbuch nachlesen. Aber vorerst teste doch mal diesen Code:
    Der unterschied besteht in der „wichtigkeit“: Link
    Das tut aber nichts zur sache, solange er nicht beides mischt…



    Beitrag zuletzt geändert: 14.12.2010 23:29:44 von thomasba
  10. ich denke mal das er das php dokument über lima city laufen lässt... ansonsten wie schon gesagt wurde php am server instlliern aja und ich persönlich finde OR und AND viel besser als || und && da man es viel leichter scripten kann
  11. Autor dieses Themas

    nellodc

    nellodc hat kostenlosen Webspace.

    Sorry Leute,
    ich weiß es klingt jetz doof aber ich hab den fehler gefunden.
    Ich hatte vergessen mein PHP zu starten und ja...

    danke trotzdem für die hilfe
    nellodc
  12. Also war mein Tipp bezüglich des nicht vorhandenseins von PHP und dem XML-Doctype doch richtig, Danke!
  13. Autor dieses Themas

    nellodc

    nellodc hat kostenlosen Webspace.

    Woz das XML Doctype?
  14. Ein XML Doctype steht immer am Anfang einer XML-Datei, z.B.:
    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <element />
    </root>
    Dieser Doctype wird natürlich vom Browser nicht angezeigt, er soll ja schließlich nur anzeigen, dass es sich um XML handelt. Das Problem ist nun aber, das nicht die Syntax <?xml … ?> anzeigt, dass es sich um einen solchen Doctype handelt, sondern die Syntax, die ausreicht, damit ein Browser das Teil so unsichtbar macht ist <? … ?> und wie fängt PHP an und endet?
    Richtig: <? … ?>
    Das kannst du einfach mal ausprobieren, indem du PHP kurz ausschaltest, dann im Firefox eine deiner lokalen .php Seiten aufrufst und dir dort den Quelltext ansiehst. Dort sollte dann das PHP in rosa zu sehen sein, aber auf der Aufgerufenen Seite sieht man es nicht.

    Mit freundlichen Grüßen
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!