Sicherung von Variablen ...

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

  • Sicherung von Variablen ...

    Hallo an alle.

    In meinem mehr als nur simplen Redaktionssystem hat der Nutzer die Möglichkeit, seine Texte mit Bildern zu versehen (max. 3 Stück). Er kann das Bild logischerweise hochladen, eine Bildunterschrift festlegen sowie die Ausrichtung (also links oder rechts).

    Zum Hochladen der Bilder wird
    PHP-Code:
    <input type="file" name="pic1name"
    verwendet. Nachdem das Bild dann hochgeladen wurde (der endgültige Dateiname steht dann in der Variable $fdatei1_name), wird mittels
    PHP-Code:
    $img_size_1 GetImageSize($fdatei1_name); 
    die Höhe und die Breite des Bildes ausgelesen und in die Datenbank geschrieben.

    Das Einstellen der Texte inkl. der Bilder klappt tadellos, allerdings ist ein Problem aufgetreten, wenn die Artikel bearbeitet werden. Will der Nutzer z.B. nur die Ausrichtung des Bildes von links auf rechts ändern, werden diese Sachen auch korrekt in die Datenbank geschrieben. Allerdings löscht er mir immer wieder die Angaben für die Höhe und die Breite des Bildes aus der Datenbank. Gut, er löscht sie nicht, er schreibt einfach nichts, weil ja in
    PHP-Code:
    <input type="file" name="pic1name"
    nichts drin steht (der Nutzer hat ja kein neues Bild hochgeladen, sondern nur die Ausrichtung geändert), das Bild aber schon existiert.

    Was wäre die beste Lösung, um die Informationen temporär zu sichern, damit er nicht ständig leere Felder in die Datenbank zurückschreibt?

    Danke im Voraus.

    Innuendo

  • #2
    über ne if-bedingung die felder auswerten, welche geupdatet werden sollen und auch nur diese ändern.
    du kannst zum beispiel in deinem form, welches man zum modifizieren der texte nimmt eine checkbox machen, default selected, und nur wenn der user ein neues pic raufladen will, soll er das häckchen entfernen.
    und dann wertest du entsprechend die varis aus, fertsch!
    [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

    Kommentar


    • #3
      Sorry bin heute nicht klar im kopf, und ganz ohne code can ich nicht viel sagen aber so wie ich das verstehe das hast du einen kleinen wurm in deinen code. Was schreibst du denn genau in die db? einen img tag, den kompletten text? ich verstehs leider nicht ganz.

      Warum machst du nicht einfach ne abfrage
      If (!isset($img_size_1) { deine veränderte Query }
      Möglich ist alles!

      Kommentar


      • #4
        Das Formular für den Artikel besteht aus 3 Feldern für die Inhalte (Überschrift, Anreißertext, Artikeltext) und 3 Feldern pro Bild (Feld zum Auswählen des Bildes, Bildunterschrift, Ausrichtung [mit Radiobuttons gelöst]).

        Ich schreibe bei den Bildern nur den Dateinamen in die DB (z.B. p_12345678_1.jpg). 12345678 ist hier die ID des Artikels, p gibt an, dass es ein Bild ist, die 1 gibt an, dass es das 1. Bild zu diesem Artikel ist, die Endung .jpg wird anhand der hochgeladenen Datei ermittelt (kann auch ein GIF sein). Dann wird mit GetImageSize die Maße des Bildes ausgelesen und ebenfalls als Zahlenwerte in die DB geschrieben. Zum Schluss dann noch die Ausrichtung ("left" oder "right").

        Will der Nutzer den Artikel jetzt bearbeiten, lese ich mit
        PHP-Code:
        $sql "SELECT * FROM nl_article WHERE id='$id'";
        $result mysql_query($sql); 
        alle Informationen aus dem entsprechenden Datensatz aus und übergebe sie mit
        PHP-Code:
        ...
        <input type="text" name="header" value="<? echo $row['header']; ?>"></input>
        ...
        an die jeweiligen Felder. Das klappt bei den reinen Textgeschichten (z.B. Überschrift oder Artikeltext) hervorragend. Er liest auch die Bildinformationen richtig aus und stellt das Bild sogar dar (wichtig für den Nutzer, damit er weiß, welches Bild gerade verwendet wird). Will der Nutzer dann z.B. die Ausrichtung ändern, schreibt er sozusagen "" zurück und die Felder in der Datenbank sind leer.

        PHP-Code:
        $sql "UPDATE nl_article SET header='$header', teaser='$teaser', article_text='$article_text',
                pic1name='
        $pic1name', pic1_bu='$pic1_bu', pic1_width='$img_size_1[0]', pic1_height='$img_size_1[1]',
                pic1_align='
        $pic1_align' WHERE id='$id'"

        Kommentar

        Lädt...
        X