Ankündigung

Einklappen
Keine Ankündigung bisher.

$error weiterleiten

Einklappen

Neue Werbung 2019

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

  • $error weiterleiten

    Hallo,

    ich habe ein Script geschrieben, welches auch die Eingaben überprüft. Wenn keine Eingaben getätigt worden sind, soll dieses Script die Variable $error mit den entsprechenden Fehlermeldungen füllen. Soweit so gut, hab ich auch alles.

    Nur wenn ich nun das Script teste dann zeigt er mir die Fehlernachrichten zwar an jedoch möchte ich diese nicht in der "action" Datei sehen sondern diese in der eigentlichen Datei, wo ich meine Einträge schreiben kann.

    Ich weiß absolut nicht wie ich die $error Variable weitergeben kann... :/

    Kann mir da jemand helfen?


  • #2
    Was willst du tun?

    Normalerweise schickt man ein Formular an sich selbst, mach also die Datenverarbeitung, die Valdierung und das Formular selbst in der selben Datei.

    Kommentar


    • #3
      Poste doch mal das Script, dass man auch sehen kann was du bisher schon versucht/gemacht hast.
      Mfg Tomtaz
      "Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."

      Kommentar


      • #4
        PHP-Code:
        require("../Config/Connect.php");
        if(isset(
        $_POST['save_news'])) {
            require(
        "../Config/Validate-Config.php");
            if(
        isNewsAdmin($userid)) {
                
        $headline=mysql_real_escape_string($_POST['headline']);
                
        $public=$_POST['public'];
                
        $news=mysql_real_escape_string($_POST['news']);
                
        $error='';
                
                if(empty(
        $headline)) $error.='<li>Headline</li>';
                if(empty(
        $news)) $error.='<li>News</li>';
            
                if(
        $error) {
                    echo 
        'There are some errors. Please correct the following data:<br>';
                    echo 
        $error;
                    echo 
        '<meta http-equiv="refresh" content="1;URL=../?news&create">';
                }
                else {
                    
        $insert_table_news=mysql_query("INSERT INTO `news` (headline,public,news,author,date) VALUES ('$headline','$public','$news','$userid','".time()."')") or die(mysql_error());
                    if(
        $insert_table_news) {
                        
        redirect("../?news","News saved.",2);
                    }
                    else {
                        
        Error('An error is occured.');
                    }
                }
            }
            else {
                
        Error('You have not the right permission.');
            }
        }
        elseif(isset(
        $_GET['create'])) {
            if(
        isNewsAdmin($userid)) {
                
        $error=$_POST['error'];
                
        $select='<select name="category" class="select">';
                
        $query_table_news_cat=mysql_query("SELECT * FROM `news_categorys` ORDER BY `name`") or die(mysql_error());
                
        $check=mysql_num_rows($query_table_news_cat);
                if(
        $check) {
                    while(
        $array=mysql_fetch_array($query_table_news_cat)) {
                        
        $catid=$array['categoryid'];
                        
        $name=$array['name'];
                        
        $select.='<option value="'.$catid.'">'.$name.'</option>';
                    }
                }
                else {
                    
        $select.='<option>No categories avaiable.</option>';
                }
                
        $select.='</select>';
                
        $comments='<select name="comments" class="select">';
                
        $comments.='<option value="1">Visible for all</option>';
                
        $comments.='<option value="2">Visible only for members</option>';
                
        $comments.='<option value="3">Disable comments</option>';
                
        $comments.='</select>';
                echo 
        $error;
                echo 
        '<form method="POST" action="Files/News.php">';
                echo 
        '<table width="100%" cellpadding="0" cellspacing="0" class="table">';
                echo 
        '    <tr height="28">';
                echo 
        '      <td colspan="2" width="13%" class="boxhead" style="border-left: 1px solid #FFFFFF; padding-left: 5px;">Create new entry</td>';
                echo 
        '    <tr>';
                echo 
        '      <td width="13%" style="padding: 2px;">Headline:</td>';
                echo 
        '      <td style="padding: 2px;"><input type="text" name="headline" style="width: 99%;" class="input"></td>';
                echo 
        '    </tr>';
                echo 
        '    <tr>';
                echo 
        '      <td width="13%" style="padding: 2px;">Category:</td>';
                echo 
        '      <td style="padding: 2px;">'.$select.'</td>';
                echo 
        '    </tr>';
                echo 
        '    <tr>';
                echo 
        '      <td style="padding: 2px;">Public?</td>';
                echo 
        '      <td style="padding: 2px;"><input name="public" type="checkbox" value="1"></td>';
                echo 
        '    </tr>';
                echo 
        '    <tr>';
                echo 
        '      <td colspan="2" style="padding: 2px;"><textarea name="news" class="Input-Textarea" rows="6"></textarea></td>';
                echo 
        '    </tr>';
                echo 
        '    <tr>';
                echo 
        '      <td style="padding: 2px;" colspan="2" align="right">'.$comments.' <input type="submit" name="save_news" class="button" value="Save news"></td>';
                echo 
        '    </tr>';
                echo 
        '</table>';
                echo 
        '</form>';
            }
            else {
                
        Error('You have not the right permission.');
            }

        Also wie gesagt bei $_GET['create'] bekommt man das Formular. Sobald ich auf dem Save Button drücke, wird $_POST['save_news'] ausgeführt. Wenn in dem $_POST['save_news'] Teil dann ein Fehler auftaucht, soll er diesen nicht in dem $_POST['save_news'] Teil anzeigen sondern irgendwie zu dem $_GET['create'] Teil weiterleiten wo dann z.B. in einer roten Box die Fehler angezeigt werden

        Kommentar


        • #5
          Vielleicht währen Sessions genau das richtige für dich.

          Am Anfang eines Scriptes setzt du
          PHP-Code:
          session_start(); 
          dann in dem Script das du gepostet hast, schreibst du die Fehler auch noch in eine Session rein...
          PHP-Code:
          if ( $error )
          {
            
          $_SESSION'error' ] = $error;
            
          // Weiterer Teil (dein Code)

          und auf der Seite mit dem Formular fügst du einfach ein:
          PHP-Code:
          if ( ! empty( $_SESSION'error' ] ) )
          {
            echo 
          $_SESSION'error' ];

          ein und lässt die Fehlercodes ausgeben.

          Vergiss aber nicht nach der Ausgabe die Variable wieder zu leeren...
          Mfg Tomtaz
          "Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."

          Kommentar


          • #6
            Danke Klappt super

            Kommentar


            • #7
              Bitte gerne, und flix das thema als erledigt markieren...
              Mfg Tomtaz
              "Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."

              Kommentar


              • #8
                Es ist schon interessant wie manche Leute das Session-Management ausnutzen um design-fehler zu ignorieren... Ich glaube kaum das das von PHP so angedacht war, auch wenns funktioniert. Naja manche gehen halt lieber den einfachsten Weg anstatt es gleich richtig zu machen

                Kommentar


                • #9
                  Eine schlechte Lösung für ein einfaches Problem.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Ich weiß nicht warum ihr beiden das für eine so schlechte Lösung haltet. Jenachdem was genau er damit jetzt macht oder erreichen will finde ich das durchaus ok.

                    Ähnliche Konzepte finden sich in vielen der "modernen" Web-Frameworks. In Form von "Flash-Messages" z.B. bei CakePHP, Ruby on Rails oder Grails. Siehe z.B. Grails Reference
                    Create your own quiz show.

                    Kommentar


                    • #11
                      Weil für seinen Fall nun wirklich keine Redirect nötig ist. Ohne Redirect aber auch keine Sessiondaten, denn die Daten sind ja in der Anwendung verfügbar: ob man jetzt gobale Variablen benutzt, eine Registry Klasse oder seine Anwendung sogar so konstruiert hat, dass man die Fehlerdaten zwischen beteiligten Klassen einfach per Parameter austauschen kann, sei mal dahingestellt.
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar

                      Lädt...
                      X