php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.07.2008, 04:05  
Benutzer
 
Registriert seit: 08.10.2007
Beiträge: 33
Benjamin befindet sich auf einem aufstrebenden Ast
Standard $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?
Benjamin ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.07.2008, 09:38  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

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.
cycap ist offline  
Alt 21.07.2008, 11:23  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

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..."
tomtaz ist offline  
Alt 21.07.2008, 14:09  
Benutzer
 
Registriert seit: 08.10.2007
Beiträge: 33
Benjamin befindet sich auf einem aufstrebenden Ast
Standard

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
Benjamin ist offline  
Alt 21.07.2008, 14:14  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

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..."
tomtaz ist offline  
Alt 21.07.2008, 14:32  
Benutzer
 
Registriert seit: 08.10.2007
Beiträge: 33
Benjamin befindet sich auf einem aufstrebenden Ast
Standard

Danke Klappt super
Benjamin ist offline  
Alt 21.07.2008, 15:12  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

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..."
tomtaz ist offline  
Alt 21.07.2008, 15:16  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

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
cycap ist offline  
Alt 21.07.2008, 15:50  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Eine schlechte Lösung für ein einfaches Problem.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 29.07.2008, 11:50  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

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
__________________
Today you...Tomorrow me.
agrajag ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php error weiterleitung, wenn fehler weiterleitung php, boxhead 2 variablen, bei error weiterleiten php

Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum