php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.12.2011, 16:10  
Benutzer
 
Registriert seit: 27.03.2006
Beiträge: 60
PHP-Kenntnisse:
Anfänger
Dadelu ist in Verruf geraten
Standard Konstruktor konkateniert Parameter

Hallo Zusammen

Ich stehe da seit einiger Zeit vor einem Problem und irgendwie kann ich mir das ganze nicht wirklich erklären.

Ich habe eine Abstract Class (Taettigkeit) und eine Class welche diese extendet (MoneyBack). So weit so gut. Am besten ich poste mal den Code damit ihr sehen könnt was ich meine (ich habe die Methoden welche nichts mit dem Problem zu tun haben gelöscht)

PHP-Code:

   
abstract class Taettigkeit {
    protected 
$id;
    protected 
$name;
    protected 
$text;
    protected 
$betrag;
    
public static  function 
insertInDB($Obj){
        echo 
"in insertindb <br>";
        
print_r($Obj);
            if (isset(
$Obj) && is_subclass_of($Obj,'Taettigkeit')){
                if(!isset(
$db)){
                    
//DB Verbindung aufbauen
                    
$db = new DBConnect(false);
                    if(
$db->getStatus()){
                        if(
get_class($Obj) == 'MoneyBack'){
                            
$sql "INSERT INTO MoneyBack (Text_MBFRMD,Betrag) values (".$Obj->getText().",".$Obj->getBetrag().") ";
                            echo 
"erzeugtes sql:<br>$sql";
                        }
                        
                        
$insert $db->query($sql);
                        
                        if(!
$insert){
                            echo 
"<br>FEHLER bei newVerbraucherDB";
                            echo 
"<br>".mysql_error();
                        }else {
                            
$Obj->setID($db->lastID());
                        }
                    }
                }
            }else {
                echo 
'<br>Falscher Input';        
            }
    }
    
    
    

Die MoneyBack Class
PHP-Code:
class MoneyBack extends Taettigkeit {
    protected 
$text;
    protected 
$betrag;
    
    public function 
__construct($text,$betrag){
        echo 
"<br>So bekomme ich es:<br>";
        echo 
"<br>Text: $text<br>";
        echo 
"<br>Betrag: $betrag<br>";
        
$this->text $text;
        
$this->betrag $betrag;
        
        echo 
"<br>Nach dem abfuellen:<br>";
        echo 
"<br>Text ".$this->text."<br>";
        echo 
"<br>Betrag ".$this->betrag."<br>";
        
        echo 
"<br>MoneyBack erstellt<br>";
    }    
    
    public function 
setName($name){
        
$this->name $name." hallo geändert";
    }
    
    public function 
getId(){
        
//echo Taettigkeit::getId();
        
echo "<br>Name(MB): ".$this->name;
        echo 
"<br>In getId:";
    }

Und nun zum konkreten Problem. Das ganze habe ich mit folgendem Code testest:

PHP-Code:
$mb = new MoneyBack(1,99);
print_r($mb);

Taettigkeit::insertInDB($mb); 
Mit folgendem Ergebnis:
HTML-Code:
So bekomme ich es:

Text: 1

Betrag: 99

Nach dem abfuellen:

Text 1

Betrag 99

MoneyBack erstellt
Wie man sieht, funktioniert es einwandfrei. Wenn ich aber das ganze in der Applikation einbaue:

PHP-Code:
<?php
    session_start
();
    require_once(
$_SERVER['DOCUMENT_ROOT']."/VOT/config.php");
    require_once(
DIR_FUNCTIONS."classloader.php");
    
    
$retourBetrag     $_REQUEST['retourBetrag'];
    
$text             $_REQUEST['text'];
    
        
//Für Testzwecke habe ich hier mal Fixwerte zugewiesen
    
$text 1;
    
$retourBetrag 2;
    
    
    if(
$retourBetrag==''){
        
$fehler "RetourBetrag setzen";
    }else { 
$_SESSION['RETOURBETRAG'] = $retourBetrag;}
    
    
    
    if(isset(
$fehler)){
        
header("Location: ".DIR_PHP_SEITEN."moneyBack.php");
    }else {
        
//Daten wurden alle erfolgreich validiert, Eintrag in die MoneyBack Tabelle
        
echo "<br>VAL:Text: $text";
        echo 
"<br>VAL:Betrag: $retourBetrag";
        
$mb = new MoneyBack($text.$retourBetrag);

        
print_r($mb);
        
Taettigkeit::insertInDB($mb);
        
header("Location: ".DIR_VALIDATE."insert_event.php");
    }
    
    
?>
Und folgende Ausgabe wird erzeugt:

HTML-Code:
VAL:Text: 1
VAL:Betrag: 2
So bekomme ich es:

Text: 12

Betrag:

Nach dem abfuellen:

Text 12

Betrag

MoneyBack erstellt
Wie man sieht wird der Betrag in Konstruktor einfach dem Text angehängt.
Wenn es sich dabei um ein Codier Fehler handeln würde, hätte ja der erste Test auch nicht funktioniert?

Hat jemand eine Idee? Ich bin echt am Ende meines Latein..

Gruss
Dadelu ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 10.12.2011, 16:47  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Den Unterschied zwischen Punkt und Komma kennst du aber schon?
fab ist offline   Mit Zitat antworten
Alt 10.12.2011, 17:04  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Augen auf beim Blumenkauf. Du hast dich nur vertippt.

Code:
$mb = new MoneyBack($text.$retourBetrag);

VS:

$mb = new MoneyBack($text,$retourBetrag);
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 10.12.2011, 17:10  
Benutzer
 
Registriert seit: 27.03.2006
Beiträge: 60
PHP-Kenntnisse:
Anfänger
Dadelu ist in Verruf geraten
Standard

Zitat:
Zitat von Dark Guardian Beitrag anzeigen
Augen auf beim Blumenkauf. Du hast dich nur vertippt.

Code:
$mb = new MoneyBack($text.$retourBetrag);

VS:

$mb = new MoneyBack($text,$retourBetrag);

Ach ich Doooofian Vielen Dank! Wenn man halt den Code zu lange anschaut sieht man sowas einfach nicht mehr

Zitat:
Zitat von fab
Den Unterschied zwischen Punkt und Komma kennst du aber schon?
Vielen Dank für diesen nützlichen und hilfreichen Beitrag. Ich hoffe du musstest nicht zu lange in deinem klugs... Wissen danach suchen... (Achtung: sehr viel Sarkasmus dahinter...)
Dadelu ist offline   Mit Zitat antworten
Alt 10.12.2011, 17:20  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Was hast du denn, der entscheidende Hinweis war doch drin. Ich verstehe nur ehrlich nicht, wie man angeblich ewig nach einem Fehler suchen kann ohne an der Stelle, wo er offensichtlich erzeugt wird einmal genauer hinzuschauen.
fab ist offline   Mit Zitat antworten
Alt 10.12.2011, 17:37  
Benutzer
 
Registriert seit: 27.03.2006
Beiträge: 60
PHP-Kenntnisse:
Anfänger
Dadelu ist in Verruf geraten
Standard

Guck dir mal den Beitrag von Dark Guardian an, DA war der Hinweis drinn ohne doofen Kommentar. Und dann noch zu deinem offensichtlichen.. Wäre es so offensichtlich gewesen für MICH hätte ich mir wohl kaum die Mühe gemacht das alles zu posten. Ein Punkt und ein Komma unterscheiden sich um wenige Pixel und ab und zu kann man das übersehen, erst Recht wenn man eine Sehschwäche hat...
Dadelu ist offline   Mit Zitat antworten
Alt 12.12.2011, 00:13  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Tipp die Zeile das naechste mal neu ab, gibt so Tage da findet man das offensichtliche nicht.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Antwort


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Get Parameter nach Eingabe und Submit verloren hjw-kunstwerk PHP Einsteiger 12 07.08.2011 18:15
Url Parameter zurücksetzen. Obsidian PHP Einsteiger 11 20.04.2011 14:43
COM Exception "Typkonflikt" bei array parameter by reference k_m_becker PHP-Fortgeschrittene 6 11.11.2010 20:14
Datei ausführen und Parameter übbergeben SteiniKeule PHP Tipps 2010 3 08.11.2010 08:09
[Erledigt] Funktionsberechtigungne, Rollen und Vererbung von Rechten Geryon Software-Design 37 02.11.2010 23:08
[Erledigt] Optionaler Parameter mit Variable zuweisen Lollix PHP Tipps 2010 6 07.07.2010 17:48
[Erledigt] Parameter wird als Referenz übergeben? Nightwave PHP Tipps 2010 6 09.04.2010 20:41
[Erledigt] Warning: mysql_result() expects parameter 1 to be resource, boolean given FloRic Datenbanken 8 19.10.2009 20:15
parameter von interfaces in klassen richtig mit anwenden? litterauspirna PHP Tipps 2009 27 30.06.2009 20:58
Parameter überschreiben Igäl PHP Tipps 2006 8 04.06.2006 19:55
Variable als optionalen Parameter? Mex PHP Tipps 2006 3 20.04.2006 07:05
einen parameter verstecken seven-12 PHP Tipps 2005-2 8 27.07.2005 16:57
[Erledigt] Parameter uebergeben PHP Tipps 2005-2 10 20.07.2005 16:55
functionen - optionale Parameter PHP Tipps 2005 7 23.05.2005 19:08
Alle $_GET[] parameter auslesen PHP Tipps 2004 3 09.08.2004 14:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
konkateniert, require_once get parameter verloren, konkadiniert, betrag als text php

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:33 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