bitte um hilfe bei der if logik

  • hi moin ich komme immer und immer und immer nicht mit der if logik klar ich kann es mir sogar aufmalen und dennnoch ist es immer falsch

    einfache geschichte(anscheind nicht für mich) alle felder meines form müssen foll sein frage muss richtig sein und checkbox muss sein dann los...

    habs jetzt so habs auch schon ganz anders und hoch und runter und drüber aber immer nur syntax error, unexpected '}'

    Anfänger bitte nicht schimpfen. danke

  • Die Zeile wäre interresant. Aber meine Vermuting ist, dass du nicht die Logik falsch begreiffst, sondern die Fehlermeldung und den Syntax noch nicht draufhast. Bei dem code hier nach echo "Ihr Eintrag wurde erfolgreich gespeichert" ist ein } zuviel.

    EDIT: Ach, und gewöhn dir bitte an, deinen Code sauber einzurücken. Das wirst du dir später danken, wenn du dann mal Dateien mit 500+ Zeilen hast. Und dann hättest du das hier auch auf anhieb gesehen.


    Immer einen tabulator oder 4 leerzeichen.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    2 Mal editiert, zuletzt von Tobse (1. März 2012 um 20:09)

  • Bei dem code hier nach echo "Ihr Eintrag wurde erfolgreich gespeichert" ist ein } zuviel.


    Nö, ordentlich eingerückt sieht das so aus:


    Bei dem Quellcode kommt kein Parse-Error, weil hinter dem letzten echo ein Semikolon fehlt

    Einmal editiert, zuletzt von Bandit (1. März 2012 um 20:19)

  • Torbens danke auch dir für die überaus schnelle antwort. bin halt noch anfänger!!!! aber jetzt gehts halt noch weiter mit dem ganzen if jetzt muss da noch hinter wenn neuer eintrag dann mail "neuer eintrag"

    Anfänger bitte nicht schimpfen. danke

    Einmal editiert, zuletzt von loco12 (1. März 2012 um 20:56)

  • oh man jetzt bekomme ich immer immer antwort falsch ich mag net mehr ifen....

    Anfänger bitte nicht schimpfen. danke

    Einmal editiert, zuletzt von loco12 (1. März 2012 um 21:31)

  • Schau nochmal in dein Tutorial/Buch/Anleitung und les den Teil mit den If-Abragen nochmals genau durch.

    Zunächst überprüfts du, ob alle Felder asugefüllt wurden:

    PHP
    if ($inhalt==""...


    Und danach kommt code für erfolgreiches eintragen!? Das KANN nicht funktionieren. Denn wenn du dann etwas einträgst ist die erste Bedingung ja false und der else block wird ausgeführt.

    Ich seh gerade nochwas:

    PHP
    if ($a=$b) {


    ist IMMER true bzw. $b
    richtig:

    PHP
    if ($a==$b) {
    // bw in deinem fall
    if ($frage==$antwort) {

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    Einmal editiert, zuletzt von Tobse (1. März 2012 um 21:45)

  • bitte nicht ich hab schon genug grundlagen intuss beck´s warsteiner und gilde. nein scherz bei seite habs überprüft bei $frage wird nur die antwort übertragen. allso in meinem fall "2" bitte hier der code

    Anfänger bitte nicht schimpfen. danke

  • ja sorry ich sag ja ich komme immer wider mit der logik durcheinander oder es haut einfach nicht hin das ist zu meinem bedauern leider nicht das erste mal deswegen hab ich es mir schon wirklich mit zettel und bleistift augeschrieben doch es hat nie hingehauen auser bei den standarts

    PHP
    if (anweisung){
    echo test
    }else{
    echo test2
    }


    nein
    ich will halt nur abfragen o
    b alle felder ausgefüllt sind
    nein bitte alle felder
    dann ob die frage richtig ist
    nein frgae richtig
    dann ausführen


    aber wenn dannwenn dann das kann ich nicht zumal hab ich gelehrnt in php ist kein nicht sonder nur "==" IST HALT AUCH LEICHTER! mann muss nur die logik verstehen das kann ich halt nicht ach mann allso doch wider bis zum bitteren ende probieren und nix draus lehrnen
    mist

    Anfänger bitte nicht schimpfen. danke

    2 Mal editiert, zuletzt von loco12 (1. März 2012 um 22:15)

  • kk, dann versuchs nochmal. Schreib auf, was passiert (das macht man bei Komplizierteren sachen auf hin und wieder so, weils manchmal wirklich nötig ist)

    Code
    Sind alle Felder ausgefüllt?
    Ja:
        Ist die Antwort richtig?
        Ja:
            Eintrag machen, E-Mail schicken und meldung ausgeben
        Sonst:
            "Antwort Falsch" ausgeben
    Sonst:
        "Alle felder müssen ausgeüllt sein" ausgeben

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • ich bokomme es nicht hin habs jetzt nach dem schema gemacht. jetzt bekomme ich halt nur sie müssen alle felder ausfüllen als antwort......

    Anfänger bitte nicht schimpfen. danke

  • Nein, hast du nicht. Schau dir nochmal diese If-Bedingung an:

    PHP
    if ($inhalt=="" OR $user=="" OR $email=="" OR $accept=="" OR $frage=="")


    Auf Duetsch heisst das doch

    Code
    Wenn
         Der Inhalt leer ist
    oder Der Benutzername leer ist
    oder Die Checkbox nicht gehakt wurde
    oder Die Antwort leer ist
    Dann prüfe die antwort und sende die mail.

    Was du warscheinlch ausdrücken wolltest:

    Code
    Wenn
        alle Felder asugefüllt sind
    Dann prüfe die antwort und sende die Mail

    Aber mit dem Satz der im Code steht bewirkst du doch was gaaanz anderes.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • nur um dir das mal zu vereinfachen..
    ich hab bei solchen dingern meist nen fehler-array, leer initialisiert.
    ich prüfe die felder in einer foreach auf die abgesendeten daten und wenn einer der werte nich passt, dann schreibe ich den schlüsselwert in das fehler-array.
    am ende lese ich das fehler-array aus und wenns keinen inhalt hat mache ich weiter.

    so hab ich eine bzw 2 schleifen, statt ne verkettung von if-abfragen.
    und so haste dann dein formular auch für ne anständige validierung vorbereitet.

    kannst ne funktion schreiben, die ne error-klasse setzt oder wat weiß ich ;)

    und wenn du das so vorhast, wie oben, wirste nie erfahren, wo der fehlende wert war.

    abgesehen davon fragst du ja wie tobse schon sagt nach ODER und willst aber nen UND

    wenn feld1 nicht leer UND feld2 nicht leer UND feld 3 nicht leer etc pp

  • jo betsens leute ihr seit große klasse vielen vielen dank für die hilfe und die ratschläge. ich habs jetzt so gelöst und es funzt einwandfrei... ja du hast rechts mit den arrys aber so gehts halt auch bei kleineren sachen. Und lehrne immer was draus...

    "torbens" vielen dank für die überaus gute und freundliche und kontinuierliche unterstützung

    jetzt möchte ich noch das der eintrag erst durch freischaltung ausgegeben wird. wie ich das löse weis ich schon ich mach einfach ein 0 und 1 dazu und fehlt mir der denkanstoss für die überprüfung und freischaltung ohne die datei manuel zu öffnen und von hand zu bearbeiten.... hat jemand vieleicht ein kleinen ultra heissen tip?

    Anfänger bitte nicht schimpfen. danke

    Einmal editiert, zuletzt von loco12 (2. März 2012 um 13:51)

  • es funzt einwandfrei


    Garantiert nicht! Denn mit

    PHP
    if ($inhalt != "" or $user != "" or $email != "" or $accept !="" or $frage !="")


    muss nur ein Feld ausgefüllt sein, und das willst du doch nicht.

    hat jemand vieleicht ein kleinen ultra heissen tip?


    Wie du schon sagtest, hänge eine 0 beim speichern an den Datensatz. Dann schreibst du ein Script, dass dir die Daten in einem Formular anzeigt, in dem die 0 bzw. 1 als Checkbox symbolisiert wird. Dann kannst du Beiträge sperren oder freischalten. Nach einem Klick auf Speichern muss du dann die Checkboxen überprüfen und die Datei entsprechend neu schreiben.

    Das ganze wäre mit einer Datenbank deutlich angenehmer.

    Einmal editiert, zuletzt von Sweet_Angel (2. März 2012 um 14:54) aus folgendem Grund: zusammengefürht

  • moinsen jo hast recht war nur die freude die hats mich übersehen lassen anstatt or sollte doch && funktionieren oder?
    ja datenbank hab ich schon gelesen aber noch nix mit gemacht ist ja auch wieder ne stange imput die datenbank funtionen...

    ja danke ist ne gute idee mit der checkbox.

    probiere es jetzt mit der checkbox leider klapt es noch nicht so wirklich

    Anfänger bitte nicht schimpfen. danke

    2 Mal editiert, zuletzt von loco12 (2. März 2012 um 20:15)

  • Meinst du nicht, dass du ein paar Formulare zuviel einbaust? ;)

    Ungetestet:

    4 Mal editiert, zuletzt von Bandit (2. März 2012 um 21:06)

  • ja hast recht sind halt immer so viele forms wie beiträge aber es war halt das erste was mir eingefallen ist. (simpel)
    jo cool danke für das beispiel das funzt leider nicht.
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in line 4
    ich muss doch das <table> auch mit ins echo setzen? allso halt alle html in ein echo"" oder bin ich da auf dem holzweg?

    Anfänger bitte nicht schimpfen. danke

  • Wenn du jeden Parse-Error in deiner PHP-Karriere hier posten willst, dann wirst du hier Dauergast! Sowas darf man auch mal alleine finden!!

    PHP
    echo "<form action='gbg.php' Method='post'>
          <table align='center' border='1' cellspacing='0' cellpadding='5' bordercolorlight='black' bordercolordark='black' width='100%'>";