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 13-03-2009, 15:49
Earl of Green
 Registrierter Benutzer
Links : Onlinestatus : Earl of Green ist offline
Registriert seit: Nov 2004
Beiträge: 81
Earl of Green ist zur Zeit noch ein unbeschriebenes Blatt
Standard Array aus Funktion zurückgeben

Hallo, hab wiedermal nen Hänger.

Meine Funktion gibt das Array nicht zurück. Wer hat Lust mal drüber zu schauen?

Die Funktion:
PHP-Code:
<?php


function checkinput($wg_seite$inputarr_darf0$inputarr_nicht0) {

 
// Kontrolliert ob Feld leer war und wenn ja, registriert eine errmsg
    
$errmsg = array();    
    foreach (
$inputarr_nicht0 as $key => $value) {

        if (
$value == "" || $value == NULL){
            
$errmsg[] = "Bitte Feld ''" $key "'' ausfüllen!<br>";
        }
    }
        
    if (isset(
$errmsg))    {
             
$_SESSION["errmsg"] = $errmsg;
             
$_SESSION["name"] = $_POST[name];
             
$_SESSION["email"] = $_POST[email];
             
$_SESSION["homepage"] = $_POST[homepage];
             
$_SESSION["wohnort"] = $_POST[wohnort];
             
$_SESSION["text"] = $_POST[text];
        echo
" <meta http-equiv='refresh' content='0; URL=$wg_seite'>";
        exit;
    
    }

    
// Wenn keine leeren Felder, dann gehts hier unten weiter
// ============================================================================================
    
  // Macht aus beiden Arrays (darf0 und nicht0) EIN Array mit Namen $checkeddinput
    
$checkedinput = array();
    foreach (
$inputarr_nicht0 as $key => $value) {    
        
$checkedinput[$key] = htmlspecialchars($value);
    }
    foreach (
$inputarr_darf0 as $key => $value) {    
        
$checkedinput[$key] = htmlspecialchars($value);
    }
// ============================================================================================

    
return $checkedinput;
    
}   
// Ende checkedinput()
?>
Auffangen der Funktion hier:
PHP-Code:
              $inputarray = array();
              
$inputarray checkinput("gaestebucheintrag.php"$inputarr_darf0$inputarr_nicht0); 
Ich habe aber leider kein "inputarray" - wo könnte es hängen?

Erstmal Danke vorab - Stefan
Mit Zitat antworten
  #2 (permalink)  
Alt 13-03-2009, 16:15
pascal007
 Registrierter Benutzer
Links : Onlinestatus : pascal007 ist offline
Registriert seit: Jul 2006
Beiträge: 257
pascal007 ist zur Zeit noch ein unbeschriebenes Blatt
pascal007 eine Nachricht über ICQ schicken
Standard

Wie meinst du das: kein Inputarray? Ist es leer, nicht vorhanden... die Keys zwar vorhanden aber kein Value...
Mit Zitat antworten
  #3 (permalink)  
Alt 13-03-2009, 16:22
Earl of Green
 Registrierter Benutzer
Links : Onlinestatus : Earl of Green ist offline
Registriert seit: Nov 2004
Beiträge: 81
Earl of Green ist zur Zeit noch ein unbeschriebenes Blatt
Standard

berechtigte Frage. Ich hab keine Ahnung!

Wenn ich mir den ausgeführten Quelltext anschaue, dann sieht das so aus, als würde alles nach der Funktion nicht mehr ausgeführt (also dort, wo die Funktion aufgefangen wird). Er gibt aber keinen Fehler zurück. Und wenn ich versuche das Array in eine Session zu packen und mit foreach auszulesen, dann kommt ein Fehler in foreach, dass ein invalid argument probleme macht - was (wovon ich ausgehe) an dem nicht existenten Array liegt..
Mit Zitat antworten
  #4 (permalink)  
Alt 13-03-2009, 16:26
pascal007
 Registrierter Benutzer
Links : Onlinestatus : pascal007 ist offline
Registriert seit: Jul 2006
Beiträge: 257
pascal007 ist zur Zeit noch ein unbeschriebenes Blatt
pascal007 eine Nachricht über ICQ schicken
Standard

Gebe es mal mit

PHP-Code:
echo"<pre>"print_r($das_array); echo"</pre>"
aus. Am besten vorher und nachher.

Geändert von pascal007 (13-03-2009 um 16:31 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 13-03-2009, 16:31
Earl of Green
 Registrierter Benutzer
Links : Onlinestatus : Earl of Green ist offline
Registriert seit: Nov 2004
Beiträge: 81
Earl of Green ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nothing
Mit Zitat antworten
  #6 (permalink)  
Alt 13-03-2009, 16:42
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Und error_reporting auf E_ALL und display_errors auf on ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 13-03-2009, 16:45
Earl of Green
 Registrierter Benutzer
Links : Onlinestatus : Earl of Green ist offline
Registriert seit: Nov 2004
Beiträge: 81
Earl of Green ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja,

ich hab das Gefühl, in der Function ist etwas falsch ist. Etwas dass keinen Fehler erzeugt aber trotzdem die Funktion vor Beendigung verlässt.
Oder es ist etwas falsch beim return-Wert...
Mit Zitat antworten
  #8 (permalink)  
Alt 13-03-2009, 16:49
pascal007
 Registrierter Benutzer
Links : Onlinestatus : pascal007 ist offline
Registriert seit: Jul 2006
Beiträge: 257
pascal007 ist zur Zeit noch ein unbeschriebenes Blatt
pascal007 eine Nachricht über ICQ schicken
Standard

Mach doch mal ein paar Ausgaben und schau was wann passiert... mit meiner Methode print_r() und all deinen Arrays wie $checkedinput vor dem Verlassen der Funktion beim Schreiben etc.
Mit Zitat antworten
  #9 (permalink)  
Alt 13-03-2009, 16:52
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

var_dump eignet sich manchmal noch ein bisschen besser zum Debuggen als print_r - weil es einem auch den Typ von Variablen mit anzeigt; kann insb. bei unerwarteten false-Werten interessant sein.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #10 (permalink)  
Alt 13-03-2009, 16:53
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ist ja klar, denn:

PHP-Code:
// oben deklarierst du:
$errmsg = array();
...

// und dann prüfst du mit:
if (isset($errmsg))
{
   ...
   exit 
// <= nur bis hier und nicht weiter

d.h. alles was danach kommt wird nie abgearbeitet.
Mit Zitat antworten
  #11 (permalink)  
Alt 13-03-2009, 19:17
Earl of Green
 Registrierter Benutzer
Links : Onlinestatus : Earl of Green ist offline
Registriert seit: Nov 2004
Beiträge: 81
Earl of Green ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von asp2php
Ist ja klar, denn:

PHP-Code:
// oben deklarierst du:
$errmsg = array();
...

// und dann prüfst du mit:
if (isset($errmsg))
{
   ...
   exit 
// <= nur bis hier und nicht weiter

d.h. alles was danach kommt wird nie abgearbeitet.

Danke für die vielen Antworten.

Zu oben:
das exit kommt ja nur, wenn der if benutzt wird. Wenn kein Fehler da ist, dann geht er ja nichts ins if rein.



Ich habe versucht Ausgaben in die Funktion zu machen, aber ich bekomm nix raus...
Mit Zitat antworten
  #12 (permalink)  
Alt 13-03-2009, 19:30
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
das exit kommt ja nur, wenn der if benutzt wird. Wenn kein Fehler da ist, dann geht er ja nichts ins if rein.
Works as designed...
Du suchst wahrscheinlich empty!
Mit Zitat antworten
  #13 (permalink)  
Alt 13-03-2009, 19:32
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.721
Kropff befindet sich auf einem aufstrebenden Ast
Standard

denkfehler! du setzt das array mittels
PHP-Code:
$errmsg = array(); 
und überprüfst dann, ob es gesetzt wurde
PHP-Code:
if (isset($errmsg)) 
das bedeutet, dass deine bedingung wahr ist! arbeite statt dessen mit
PHP-Code:
if (!empty($errmsg)) 
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #14 (permalink)  
Alt 13-03-2009, 19:39
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Earl of Green

Zu oben:
das exit kommt ja nur, wenn der if benutzt wird. Wenn kein Fehler da ist, dann geht er ja nichts ins if rein.
Dein Code geht aber IMMER in if rein!

Lösung: s. Peters Beitrag.
Mit Zitat antworten
  #15 (permalink)  
Alt 13-03-2009, 19:41
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

PHP-Code:
   $errmsg = array();    
//...
    
if (isset($errmsg))    {
//...
        
echo" <meta http-equiv='refresh' content='0; URL=$wg_seite'>";
        exit; 
Erzähle niemandem, dass das Script NICHTS ausgegeben hätte.

Musst halt mal in den HTML-Quältext schauen, den du an den Browser gesendet hast.
Natürlich ist das etwas schwierig, wenn dem Browser per Meta-Refresh eine sofortige Weiterleitung befohlen wurde ...

Ein
Code:
header('Content-Type: text/plain');
ganz am Anfang des Scripts hätte die Ausgaben (ohne weiterzuleiten) ebenfalls sichtbar gemacht.

So eine hohe Kunst ist Debugging-by-Echo nicht.

Geändert von fireweasel (13-03-2009 um 19:55 Uhr)
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 16:21 Uhr.