Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] verschiedene Probleme bei Projekt

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] verschiedene Probleme bei Projekt

    Guten Abend,

    ich will euch kurz erläutern, wie mein erster PHP Versuch aufgebaut ist und was ich damit erreichen will.

    Erläuterung des Projekts:
    - auf der Einstiegsseite sollen "User-Angebote" angezeigt werden
    - Registrierungsseite für neue "User", damit sie ebenfalls Angebote verfassen können
    - (Seite nach dem einloggen) hier bekommt der User sein aktuelles Angebot angezeigt (sofern er schon eines erstellt hat)
    Ebenfalls ist hier ein Link, der den eingeloggten "User" zu einer "Textarea" führt, die sein "User-Angebot" enthält, zwecks Bearbeitung.
    Das "Userangebot" des "Users" wird aus der Datenbank eingelesen.

    Problemschilderung:

    Nachdem der "User" sich eingeloggt hat, bekommt er sein aktuelles "User-Angebot" angezeigt. Funktioniert (mit Zeilenumbrüchen, keine n2lbr Dopplung, es ist so wie es sein soll):

    Dein aktuelles Angebot lautet:

    10 mal PHP, 5 mal MySQL,
    3 mal Javascript

    1 mal C++
    <?
    $nickname = $_SESSION['username'];
    $strsatz=htmlentities($_POST['strsatz']);
    $strsatz=preg_replace('#
    #','' , $_POST['strsatz']);
    $strsatz=nl2br(htmlentities($strsatz));
    if ($action == ""){
    $ergebnis = @mysql_query("SELECT userangebot FROM handel_user_table WHERE username='$nickname'");
    while ($strsatz = @mysql_fetch_array($ergebnis)) {
    echo "Dein aktuelles Angebot lautet:

    $strsatz[userangebot]";
    }
    }
    ?>

    Kommt der "User" zur Bearbeitungsübersicht (Textarea), wird sein Angebot allerdings mit
    dargestellt:

    10 mal PHP, 5 mal MySQL,

    3 mal Javascript



    1 mal C++
    <?
    $strsatz=htmlentities($_POST['strsatz']);
    $strsatz=preg_replace('#
    #','' , $_POST['strsatz']);
    $strsatz=nl2br(htmlentities($strsatz));
    $struserangebot=htmlentities($_POST['struserangebot']);
    $struserangebot=preg_replace('#
    #','' , $_POST['struserangebot']);
    $struserangebot=nl2br(htmlentities($struserangebot ));
    if ($action == "edit"){
    $ergebnis = @mysql_query("SELECT userangebot FROM handel_user_table WHERE username='$nickname'");
    while ($strsatz = @mysql_fetch_array($ergebnis)) {
    echo "<form action=?action=write method=post>";
    echo "<table border=1 cellspacing=0 cellpadding=0>";
    echo "<tr>";
    echo " <td>Hier Angebot formulieren</td>";
    echo " <td><textarea cols=50 rows=10 name=struserangebot>$strsatz[userangebot]</textarea></td>";
    echo "</tr>";
    echo "</table>";
    echo "<input type=submit value='eintragen'></form>";
    }
    }
    if ($action == "write"){
    mysql_query( "UPDATE handel_user_table SET userangebot='$struserangebot' WHERE username='$nickname'" );
    echo "

    Deine Daten wurde übertragen";
    echo "

    ";
    }
    ?>
    Frage: Wie bekomme ich die
    aus der Textarea?

    Beim normalen Anzeigen funktioniert es ja.
    Wenn ich mir zum Beispiel Signaturen in phpbb boards wie diesem hier anschaue, so werden dort Texte und Zeilenumbrüche ohne HTML Code in die Datenbank gespeichert, also z.B. ohne
    oder sonstiges.

    Ich häng nun schon seit heute früh dran und komm einfach nicht weiter.

    Nächstes Problem:

    Die Auflistung aller erstellten Angebote (uneingeloggt, von "Aussen" einsehbar).
    Bekomme ich überhaupt nicht hin.
    Der MySQL Befehl ist ja noch halbwegs klar...
    @mysql_query("SELECT userangebot FROM handel_user_table");
    Aber wie bekomme ich alle gefüllten Felder "userangebot" angezeigt?
    Wie werden die Felder "userangebot" übersprungen, die von manchen "Usern" evtl. noch nicht ausgefüllt wurden?

    Da es mein erstes PHP Projekt ist, sammel ich mir meine Code Teile aus verschiedenen Tutorials zusammen, Verbesserungsvorschläge, Hinweise auf Fehler oder unnütze Code-Teile sind mir sehr willkommen.

    Ich wäre für jede Hilfe dankbar,
    viele Grüsse
    waschbaer


  • #2
    Re: verschiedene Probleme bei Projekt

    Zitat von waschbaer
    Kommt der "User" zur Bearbeitungsübersicht (Textarea), wird sein Angebot allerdings mit
    dargestellt:

    Frage: Wie bekomme ich die
    aus der Textarea?
    Entweder du ersetzt sie per str_replace.
    Oder besser, speichere die Texte ohne irgendeine Bearbeitung und wende nl2br einfach erst NACH dem auslesen aus der DB an.

    @mysql_query("SELECT userangebot FROM handel_user_table");
    Aber wie bekomme ich alle gefüllten Felder "userangebot" angezeigt?
    Wie werden die Felder "userangebot" übersprungen, die von manchen "Usern" evtl. noch nicht ausgefüllt wurden?
    Du könntest du z.B: eine Where-bedingung anhängen:
    Code:
    SELECT userangebot FROM handel_user_table WHERE userangebot!=''
    mfG
    werbegeschenk
    Create your own quiz show.

    Kommentar


    • #3
      hallo Werbegeschenk,

      danke für deine Antwort.
      Wenn ich die Eingabe des Textfeldes ohne Bearbeitung speichere, wird es beim Aufruf wieder nicht richtig angezeigt.
      Ich habe nun nl2br rund ums Textfeld rausgenommen, es wird dann gespeichert. Ruft man dann seine Seite auf, um sein Angebot zu sehen, werden keine Zeilenümbrüche gemacht.
      Kommt man wieder zur Bearbeitungsansicht (Textarea), haut es hin, dort sind dann die Daten mit Zeilenumbrüchen und ohne lästiges
      .

      Ich hätte gern beides, irgendwo muss ich da einen Fehler oder Dopplung drin haben.

      Gruss,
      waschbaer

      Kommentar


      • #4
        Re: verschiedene Probleme bei Projekt

        Zitat von Werbegeschenk
        Zitat von waschbaer
        Kommt der "User" zur Bearbeitungsübersicht (Textarea), wird sein Angebot allerdings mit
        dargestellt:

        Frage: Wie bekomme ich die
        aus der Textarea?
        Entweder du ersetzt sie per str_replace.
        Oder besser, speichere die Texte ohne irgendeine Bearbeitung und wende nl2br einfach erst NACH dem auslesen aus der DB an.

        mfG
        werbegeschenk
        Ok, ich hab den ganzen Mist jetzt rausgenommen (preg_replace etc.).
        Ich speichere auch ohne nl2br ab und wende es jetzt einfach nur nach dem auslesen an, es funktioniert.
        Danke, manchmal hilft ein kleiner Gedankenanstoss wunder.
        Jetzt muss ich mir nur noch anlernen, wie ich alle "userangebot" auf einer Seite "von aussen" angezeigt kriege, mal schauen.

        Kommentar

        Lädt...
        X