php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-11-2008, 16:38
onkel_hotte
 Newbie
Links : Onlinestatus : onkel_hotte ist offline
Registriert seit: Nov 2008
Beiträge: 10
onkel_hotte ist zur Zeit noch ein unbeschriebenes Blatt
Standard Formular Probleme

Hallo zusammen

ich Bräuche dringt mal hilfe ich bin schon am verzweifeln

Also es geht um eine Fromular Auswertung und Überprüfung
dieser Code hier Funktionert ohne Prbleme darin werden die einzelnen felde geprüft ob sie leer sind oder nicht mehr erst mal nicht.

PHP-Code:
//Variablen für den ersten Aufruf de Formulars
if (!isset ($_POST['firmenname'])) $_POST['firmenname'] = '' // ist die Variable nicht gesetzt setzte diesen dafür ein
if (!isset ($_POST['tarif'])) $_POST['tarif'] = '';
if (!isset (
$_POST['abteilung'])) $_POST['abteilung'] = '';
if (!isset (
$_POST['gender'])) $_POST['gender'] = '';
if (!isset (
$_GET['check'])) $_GET['check'] = '';
if (!isset (
$_POST['vorname'])) $_POST['vorname'] = '';
if (!isset (
$_POST['name'])) $_POST['name'] = '';
if (!isset (
$_POST['ort'])) $_POST['ort'] = '';
if (!isset (
$_POST['plz'])) $_POST['plz'] = '';
if (!isset (
$_POST['strasse'])) $_POST['strasse'] = '';
if (!isset (
$_POST['telefon'])) $_POST['telefon'] = '';
if (!isset (
$_POST['fax'])) $_POST['fax'] = '';
if (!isset (
$_POST['mobil'])) $_POST['mobil'] = '';
if (!isset (
$_POST['inet'])) $_POST['inet'] = '';
if (!isset (
$_POST['email'])) $_POST['email'] = '';
if (!isset (
$fm_check)) $fm_check '';
//if (!isset ($error)) $error = FALSE;
if (!isset ($errorMessage)) $errorMessage ' ';
/////////////////////////////////////////////////////////////////////////////////
/////////////// Ende Variablen für den Ersten aufruf ///////////////////////////
///////////////////////////////////////////////////////////////////////////////

$script $PHP_SELF  ;

$errorFields = array('tarif',
                     
'firmenname',
                     
'gender',
                     
'vorname',
                     
'name',
                     
'ort',
                     
'plz',
                     
'strasse',
                     
'telefon',
                     
'email'
               
); 

//Anlegen Errorfiels aus dem Array 
for($x=0;$x<count($errorFields);$x++)
{
    
$errorClass[$errorFields[$x]] = 'inputField';
}
//Wenn das Formular abgeschickt wird $error False gesetzt bis fehler auftreten 
if(isset($_POST['submit']))
{
    
    
$error FALSE;
    foreach(
$errorFields as $key => $value)
    {
    
        if(empty(
$_POST[$errorFields[$key]]))
        {
            
$error TRUE;
            
$errorClass[$value] = 'errorField';
            
$errorPicture[$value] = '<img src="./images/achtung_klein.gif">&nbsp;';
        }
    
    }

}
// ist der Check erfolgreich Zeige den Text an
if($_GET['check'] == "TRUE")
{
    
$errorMessage '<table width="100%" class="errorTable"><tr><td><b>
                                     Al OKles!</b><br><br>
    </td></tr></table><br>'
;
}

if(isset(
$_POST['submit'])) 
{        
if(
$error == TRUE)
    {
    
$errorMessage '<table width="100%" class="errorTable"><tr><td>
    <img src="./images/achtung_gross.gif"></td><td><b>Achtung!</b><br>
    Es ist zu einem Fehler gekommen. Bitte f&uuml;llen Sie alle 
    farblich markierten Pflichtfelder aus.</td></tr></table><br>'
;
    }                    
              else
    {                              
            
// Alles ist in Ordnung
            // Daten können gespeichert werden
            
header("Location: [url]http://[/url]{$_SERVER['HTTP_HOST']}/{$_SERVER['PHP_SELF']}?check=TRUE");
            
// Seite neu laden und Hinweis anzeigen
    
}

so weit so gut
funktioniert gut leere felder werden bemäkelt und erfolgsmeldung wird auch ausgegeben
nun wolte ich aber noch das der Frimenname überprüft wird aus einer datenbank also habe ich mir eine funktion geschrieben

PHP-Code:
function mysql_frima_check(){
$return ''
//includieren der Connect Datei um eine Verbindung zur Datenbank herzustellen
include("inc/mycon.php");
//Abfrage in Check_sql speichern
$check_sql "SELECT firma FROM $db_table WHERE firma LIKE '".$_POST['firmenname']."' LIMIT 0 , 1";
    
// Mysql Query $check_sql ausführen und in check_user speichern
$check_firma mysql_query$check_sql ) or die (mysql_error());
$check_rows mysql_num_rows$check_firma ) or die (mysql_error());
 if( 
$check_rows == 1
   {
   
$return "TRUE";
   }
  else
    {
    
$return "FALSE";
    }
return 
$return;

und eingebunden habe ich sie folgender massen

PHP-Code:
if(isset($_POST['submit'])) 
$fm_check mysql_frima_check();
{        
if(
$error == TRUE)
    {
    
$errorMessage '<table width="100%" class="errorTable"><tr><td>
    <img src="./images/achtung_gross.gif"></td><td><b>Achtung!</b><br>
    Es ist zu einem Fehler gekommen. Bitte f&uuml;llen Sie alle 
    farblich markierten Pflichtfelder aus.</td></tr></table><br>'
;
    }
    elseif ( 
$fm_check == "TRUE"
        {
                    
// wenn Vorhanden Error Message ausgeben
        
$errorMessage '<table width="100%" class="errorTable"><tr><td>
                         <img src="./images/achtung_gross.gif"></td><td><b>Achtung!</b><br>
                         Diese Firma existert bereits bei uns in der Datenbank<br>Bitte wenden Sie sich an Uns um Nähere Infomationen zubekommen !</td></tr></table><br>'
;
        }
                    
        else
        {                              
            
// Alles ist in Ordnung
            // Daten können gespeichert werden
            
header("Location: [url]http://[/url]{$_SERVER['HTTP_HOST']}/{$_SERVER['PHP_SELF']}?check=TRUE");
            
// Seite neu laden und Hinweis anzeigen
        
}

zu meinem eigentlichen Problem wenn felder leer sind zeigt er mir die felder richtig an
ist die firma vorhanden in der datenbank bekomme ich die fehlermeldung angezeigt
nur wenn alles in Ordung ist bekomme ich ne weisse seite ohne irgent welche fehlermeldungen schon alles versucht auch mit if else ect error_reporting(E_ALL);ini_set('display_errors', 1); sind an nur anzeigen tut er mir dann nichts

Bitte helft einer verzweifelten seele

mfg

Geändert von onkel_hotte (15-11-2008 um 16:55 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 15-11-2008, 17:12
lennart
 PHP Junior
Links : Onlinestatus : lennart ist offline
Registriert seit: May 2007
Ort: Hamburg
Beiträge: 565
lennart ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Formular Probleme

1. Code umbrechen
2. Aufs wesentliche kürzen. Ich hab keine Lust mir das alles anzugucken.
3. http://en.wikipedia.org/wiki/Sql_injection
Mit Zitat antworten
  #3 (permalink)  
Alt 15-11-2008, 19:16
uspri
 Registrierter Benutzer
Links : Onlinestatus : uspri ist offline
Registriert seit: Nov 2002
Ort: Freiberg / Sachsen
Beiträge: 83
uspri ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
// Alles ist in Ordnung
// Daten können gespeichert werden
header("Location: <a href="http://" target="_blank">http://</a>{$_SERVER['HTTP_HOST']}/{$_SERVER['PHP_SELF']}?check=TRUE");
// Formular Probleme und Hinweis anzeigen
Schau mal im Handbuch nach header(), da kommt eine URL rein und kein a href Zeugs.
Mit Zitat antworten
  #4 (permalink)  
Alt 15-11-2008, 19:34
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Schau mal im Handbuch nach header(), da kommt eine URL rein und kein a href Zeugs.
das macht das forum automatisch, wenn die option "URLs automatisch umwandeln" aktiviert ist. bin ich schon drauf reingefallen.

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #5 (permalink)  
Alt 15-11-2008, 20:42
onkel_hotte
 Newbie
Links : Onlinestatus : onkel_hotte ist offline
Registriert seit: Nov 2008
Beiträge: 10
onkel_hotte ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo da bin ich wieder
Danke Lennard für den Tip mit der Sql Injektion
Funtion geändert in
PHP-Code:
function mysql_frima_check(){
$return ''
//includieren der Connect Datei um eine Verbindung zur Datenbank herzustellen
include("inc/mycon.php");
//Abfrage in Check_sql speichern
$query sprintf("SELECT firma FROM $db_table where firma='%s'"
                  
mysql_real_escape_string($_POST['firmenname'])); 

// Mysql Query $query ausführen und in check_firma speichern
$check_firma mysql_query$query ) or die (mysql_error());    
    
//Wir laden das Ergebniss der MySql Anfrage in ein Array
$check_rows mysql_num_rows$check_firma ) or die (mysql_error());
    
//$check_pw = mysql_fetch_array($check_rows) or die (mysql_error());
  
if( $check_rows == 0) {
                          
                         
$return "FALSE";
                        }
                        else
                        {
                         
$return "TRUE";
                        }
return 
$return;

auch die ab frage geändert

Allerdings noch immer das selbe Problem
PHP-Code:
 if(isset($_POST['submit']))
    {         
    
        if(
$error == TRUE)
                {
                    
$errorMessage '<table width="100%" class="errorTable"><tr><td>
                                                     <img src="./images/achtung_gross.gif"></td><td><b>Achtung!</b><br>
                                                     Es ist zu einem Fehler gekommen. Bitte f&uuml;llen Sie alle 
                                                     farblich markierten Pflichtfelder aus.</td></tr></table><br>'
;
                }
                else
                {
                    if (
mysql_frima_check() == "FALSE" )
                
                    {            
                    
// Alles ist in Ordnung
                    // Daten k&ouml;nnen gespeichert werden
header("Location: http://{$_SERVER['HTTP_HOST']}/{$_SERVER['PHP_SELF']}?check=TRUE");
                    
// Seite neu laden und Hinweis anzeigen
        
                    
}
                    else 
                    {
                    
// wenn Vorhanden Error Message ausgeben
                    
$errorMessage '<table width="100%" class="errorTable"><tr><td>
                                     <img src="./images/achtung_gross.gif"></td><td><b>Achtung!</b><br>     Diese Firma existert bereits bei uns in der Datenbank<br>
Bitte wenden Sie sich an Uns um Nähere Infomationen zubekommen !</td></tr></table><br>'
;
                    }    
            
                }
        

leider nich immer das selbe Problem das wenn alles simmt und die firma nicht vorhanden ist
eine weisse seite angezeigt wird ohne irgent was drauf

hoffe ihr könte mir auf die sprünge helfen

Geändert von onkel_hotte (15-11-2008 um 20:57 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 16-11-2008, 02:14
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Nach mysql_num_rows() brauchst du kein "or die", denn $query ist o.k., sonst wäre das Script schon früher abgebrochen.

Warum benutzt du eigentlich Strings für FALSE/TRUE und nicht die boolschen Konstanten?

Nachdem du SQL-Injection schon ausgeschlossen hast, solltest du die Weiterleitung absichern. Im Moment könnte der Benutzer die Validierung überspringen, indem er selbst ?check=TRUE an die URL anhängt.
Mit Zitat antworten
  #7 (permalink)  
Alt 16-11-2008, 10:51
onkel_hotte
 Newbie
Links : Onlinestatus : onkel_hotte ist offline
Registriert seit: Nov 2008
Beiträge: 10
onkel_hotte ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Morgen zusammen

@onemorenerd

Ich hate schon alles ausprobiert 2 tage verzweifel ich schon dran das er irgent wie in die schleife springt und mir die meldung anzeigt

ich hate es auch mit Bolean gemacht aber erst sich irgent wo zu verlaufen wo ichs nie er wartet hätet deswegen auch mein hilferuf hier im forum da ihr ja öfter zu tun habt als ich im moment das ich irgent was über sehe oder nen fehler ein gebaut habe den ich nicht erkenne
so hate ich schon mal versucht aber dann wieder das selbe problem mit der weissen seite wenn alles richtig ist weil ich zuerst dachte es leigt an der funktion das ich da einen fehler gebaut hatte
PHP-Code:
if( $check_rows == 0) {
                          
                         return = 
FALSE;
                        }
                        else
                        {
                         return = 
TRUE;
                        } 
das mit der umleitung solte als nächstes in angriff genommen werden aber ich verzweifel noch immer an das es einfach nicht weiter geht wenn alles richtig ist

mfg
Mit Zitat antworten
  #8 (permalink)  
Alt 16-11-2008, 11:03
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Variablen schreibt man immer noch mit $ am Anfang.
Mit Zitat antworten
  #9 (permalink)  
Alt 16-11-2008, 13:31
onkel_hotte
 Newbie
Links : Onlinestatus : onkel_hotte ist offline
Registriert seit: Nov 2008
Beiträge: 10
onkel_hotte ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@h3ll

das retur ist schon richtig ohne $ davor return ist in funktionen eine ausstiegsmöglichkeit die funktion wird damit beendet und dann halt zurückgelifert was immer dahinter steht also in meine fall gibt die funktioon dann TRUE oder FALSE aus
Mit Zitat antworten
  #10 (permalink)  
Alt 16-11-2008, 13:39
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Und return schreibt man immer noch ohne =
Mit Zitat antworten
  #11 (permalink)  
Alt 16-11-2008, 18:34
onkel_hotte
 Newbie
Links : Onlinestatus : onkel_hotte ist offline
Registriert seit: Nov 2008
Beiträge: 10
onkel_hotte ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja entschuldige hat das nur ab geändert um zu zeigen das ich es auch schon so probiert hate aber leider noch immer das geliche problem fehler werden angezeigt auch wenn der ein targ schon vohanden ist aber nicht wenn alles i o ist
Mit Zitat antworten
  #12 (permalink)  
Alt 16-11-2008, 18:42
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Error Reporting eingeschaltet? Steht was im Fehler Log? Schon mit debugging probiert, also einzelne Variablen ausgegeben und überprüft?
Mit Zitat antworten
  #13 (permalink)  
Alt 16-11-2008, 19:54
onkel_hotte
 Newbie
Links : Onlinestatus : onkel_hotte ist offline
Registriert seit: Nov 2008
Beiträge: 10
onkel_hotte ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Error reporting ist an nur anzeigen zu er nix die Variable versucht aus zu lesen kommt auch an wenn vorhanden ist
allerdings läuft er beim rest nicht durch
da habe ich keine anzeige ob da was ausgegeben wird
Mit Zitat antworten
  #14 (permalink)  
Alt 17-11-2008, 12:15
onkel_hotte
 Newbie
Links : Onlinestatus : onkel_hotte ist offline
Registriert seit: Nov 2008
Beiträge: 10
onkel_hotte ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ein Problem weniger

ich habe noch mal die funtion geändert und nun geht es
Vorher

PHP-Code:
  if( $check_rows == ) {
            
$return "FALSE";
            }
            else
           {
            
$return =  "TRUE";
        } 
jetzt

PHP-Code:
 if( $check_rows ) {
            
$return "TRUE";
            }
            else
           {
            
$return "FALSE";
        } 
keine Ahnung warum ich sich da tot gelaufen hat
aber so funktoniert es wenigstens

ein nur noch halb wahnsinniger

mfg
vom Onkel
Mit Zitat antworten
  #15 (permalink)  
Alt 17-11-2008, 12:43
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Nach return gehört kein =
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:19 Uhr.