Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 8 bis 14 von 16
  1. #8
    Benutzer
    Registriert seit
    06.04.2009
    Beiträge
    36
    Renommee-Modifikator
    0

    Standard

    Ah, da hätte ich ja auch selbst drauf kommen müssen...naja...danke auf jeden Fall!

  2. #9
    Benutzer
    Registriert seit
    06.04.2009
    Beiträge
    36
    Renommee-Modifikator
    0

    Standard

    Bin jetzt etwas weiter beim Affenformular, aber komme jetzt irgendwie nicht weiter (wollte dazu jetzt nicht extra nen neuen Thread eröffnen, nehme also einfach den hier):

    Bei der Aufgabe auf der Seite, mit der ich PHP lerne (PHP-Kurs | Willkommen), sollte man ein Eingabe-Feld erstellen, bei dem man einen Namen eingeben kann. Wenn man keinen Namen eingibt, soll eine Fehlermeldung erscheinen, dass man das Feld leer gelassen hat und wenn man einen Namen eingibt, soll erscheinen "Eingetragener Name: >>Name<<"

    Das ganze soll über ein hidden-Feld möglich sein, wie das funktioniert versteh ich aber noch nicht. Bei so einem hidden-Feld kann man doch garnichts eingeben. Wie soll da irgendwas überprüft werden. Wenn ich das Sript jetzt richtig verstanden habe, wird überprüft ob sowohl das hidden-Feld, als auch das Feld zur Namens-Eingabe leer sind. Also jetzt hier mal das, was ich geschrieben habe:

    PHP-Code:
    <?php
    if (empty ($_GET['name']) == TRUE)
    {
        if ( 
    $_GET['kontrolle'] == TRUE )
        {
            echo 
    "<p><b>Bitte geben sie einen Namen ein!</b>";
        }
        echo 
    '    
        <form action="1.php" method="GET" />
        
        <p>Ihr Vorname: 
        <input type="text" name="vorname" />
        </p>
        
        <input type="hidden" name="kontrolle" value="1" />
        
        <p>Absende-Buttom: 
        <input type="submit" name="buttom" value="absenden" />
        </p>
        
        </form>'
    ;
    }
    else
    {
      echo 
    "Eingetragener Name: " $_GET['kontrolle'];
    }    
    ?>
    Und der Lösungvorschlag ist der auf diesem Bild: http://www.php-kurs.com/bilder/58-af...rolle-code.png . Bis auf ein paar Kleinigkeiten erkenne ich da jetzt keinen Unterschied zwischen meiner Lösung und dem Lösungsvorschlag, also eigentlich sollte es doch richtig funtkionierten.

  3. #10
    HTML-Guru Avatar von Asipak4You
    Registriert seit
    19.07.2005
    Beiträge
    577
    Renommee-Modifikator
    8

    Standard

    Warum auf ein hidden-Feld testen? Den Inhalt des Feldes könntest du zur Laufzeit nur mti Javascript ändern, was keinen Sinn macht. User mit deaktiviertem Javascript könnten das Formular nicht abschicken.

    PHP-Code:
    <?php
    $err_msg 
    '';
    if (
    $_SERVER["REQUEST_METHOD"] == 'GET') {
      if (isset(
    $_GET["vorname"]) && trim($_GET["vorname") != '') {
        
    //alles ok
      
    } else {
        
    $err_msg 'Bitte Vornamen eingeben!';
      }
    }

    //Ausgabe der Fehlermeldung sofern gesetzt
    if ($err_msg != '') {
      echo 
    '<p>' $err_msg '</p>';
    }
    Du testest übrigens auf $_GET["name"] obwohl dieser Wert in keinem name="" - Attribut steht. Du musst auf $_GET["vorname"] testen.

  4. #11
    Benutzer
    Registriert seit
    06.04.2009
    Beiträge
    36
    Renommee-Modifikator
    0

    Standard

    Zitat Zitat von Asipak4You Beitrag anzeigen
    Warum auf ein hidden-Feld testen?
    Das ist die Aufgabe auf der Seite, um PHP zu lernen.

    Zitat Zitat von Asipak4You Beitrag anzeigen
    Warum auf ein hidden-Feld testen? Den Inhalt des Feldes könntest du zur Laufzeit nur mti Javascript ändern, was keinen Sinn macht. User mit deaktiviertem Javascript könnten das Formular nicht abschicken.
    "Inhalt des Feldes zur Laufzeit"? Hä?

    Zitat Zitat von Asipak4You Beitrag anzeigen
    Du testest übrigens auf $_GET["name"] obwohl dieser Wert in keinem name="" - Attribut steht. Du musst auf $_GET["vorname"] testen.
    Ah, stimmt. Das war der Fehler. Jetztz funktionierts. Also

    PHP-Code:
    <?php
    if (empty ($_GET['vorname']) == TRUE)
    {
        if ( 
    $_GET['kontrolle'] == TRUE )
        {
            echo 
    "<p><b>Bitte geben sie einen Namen ein!</b>";
        }
        echo 
    '    
        <form action="1.php" method="GET" />
        
        <p>Ihr Vorname: 
        <input type="text" name="vorname" />
        </p>
        
        <input type="hidden" name="kontrolle" value="1" />
        
        <p>Absende-Buttom: 
        <input type="submit" name="buttom" value="absenden" />
        </p>
        
        </form>'
    ;
    }
    else
    {
      echo 
    "Eingetragener Name: " $_GET['vorname'];
    }    
    ?>

  5. #12
    HTML-Guru Avatar von CGollhardt
    Registriert seit
    13.11.2005
    Ort
    Fürth
    Alter
    22
    Beiträge
    570
    Renommee-Modifikator
    0

    Standard

    Zitat Zitat von Efchen Beitrag anzeigen
    Wer sagt denn, dass das nicht geht (außer Joda1994, und er hat Unrecht).

    echo "Herzlich Willkommen zum $kursname$präfix"; funktioniert auch.

    Das liegt an den verwendeten Anführungszeichen. Variablen innerhalb von Anfürhungszeichen werden aufgelöst. Verwendest Du stattdessen Single Quotes, werden sie nicht aufgelöst und werden als Text ausgegeben.

    echo 'Herzlich Willkommen zum $kursname$präfix';

    gibt also aus: Herzlich Willkommen zum $kursname$präfix
    Die Aussage meines Vorposters ist absolut korrekt, jedoch möchte ich noch eine Kleinigkeit hinzufügen:

    Strings sollen generel in Singelquotes (') ausgedrück werden, und niemals in Anführungszeichen ("), da dies mehr Speicher frisst.

    Wie Efchen bereits erwähnt hat, werden in (") die Variablen aufgelöst, und somit wird php einen (") String immer erst parsen. Mit (') wird der String sofort ausgegeben. Für die Performance mag dies bei kleineren Projekten nicht wirklich viel ausmachen, jedoch sollte man immer
    PHP-Code:
    echo 'Aktuelle Preis: ' $preis ' &euro;'
    schreiben und nicht
    PHP-Code:
    echo "Aktuelle Preis: $preis &euro"
    Sorry dass ich jetzt nochmal den Thread so durcheinander würfel, aber ich denke das ist noch enorm wichtig, zu wissen.
    Ich bin der Anfänger von den Anfängern der Anfänger!
    Also habt bitte Geduld mit mir!

    Meine Homepage
    Aktuelles Projekt: Erstellung eines PHP und MySQL basierenden Clan Content Management Systems

    My software never has bugs, it's only random features

    "StGb §328: Das verursachen einer nuklearen Explosion wird mit 5 Jahren Freiheitsstrafe oder einer Geldstrafe bestraft."
    "Raubkopien: Raubkopierer werden mit 5 Jahren Freiheitsstrafe bestraft."

  6. #13
    HTML-Guru Avatar von Asipak4You
    Registriert seit
    19.07.2005
    Beiträge
    577
    Renommee-Modifikator
    8

    Standard

    Zitat Zitat von CGollhardt Beitrag anzeigen
    Sorry dass ich jetzt nochmal den Thread so durcheinander würfel, aber ich denke das ist noch enorm wichtig, zu wissen.
    Bei den paar Zeilen die man mit echo ausgibt dürfte das nicht arg ins Gewicht fallen, denke ich. Größere Blöcke wie Formulare oder Tabellen sollte man sich sowieso lieber außerhalb vom PHP-Code ausgeben lassen.

    PHP-Code:
    <?php
    //...php-code
    ?>
    <table>
    <tr>
    <td>
     
    </td>
    </tr>
    </table>
    <?php
    //..php
    ?>
    Man sollte sich lieber über Softwaredesign oder eine Cache-Funktion gedanken machen, sollte die Performance eine große Rolle spielen.

    Hier noch ein interessanter Beitrag zur Performance von double bzw. single quotes.

    PHP Performance von Single- oder Doublequotes, Part 2 - bueltge.de [by:ltge.de]

  7. #14
    HTML-Guru Avatar von CGollhardt
    Registriert seit
    13.11.2005
    Ort
    Fürth
    Alter
    22
    Beiträge
    570
    Renommee-Modifikator
    0

    Standard

    lol was für ein Wiedersupruch
    Denn die Analyse des Blog PHP-Performance, der sich ausgiebig und übersichtlich mit Performance im Bereich PHP beschäftigt, ergab eine neue Erkenntniss: PHP- Ausgaben mit Doublequotes sind schneller.
    eshalb und vor allem durch das Blog von Christian erinnert, habe ich die Datei in meinen Experimente-Ordner geladen und jeder Interessierte kann sich davon überzeugen, dass Singelquotes schneller sind. Das Parsen fällt nun mal weg.
    Ich bin der Anfänger von den Anfängern der Anfänger!
    Also habt bitte Geduld mit mir!

    Meine Homepage
    Aktuelles Projekt: Erstellung eines PHP und MySQL basierenden Clan Content Management Systems

    My software never has bugs, it's only random features

    "StGb §328: Das verursachen einer nuklearen Explosion wird mit 5 Jahren Freiheitsstrafe oder einer Geldstrafe bestraft."
    "Raubkopien: Raubkopierer werden mit 5 Jahren Freiheitsstrafe bestraft."

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Stichworte