php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.05.2005, 10:23  
Gast
 
Beiträge: n/a
Standard [Erledigt] Fatal Error

Ich bekomm diesen Error

Fatal error: Cannot use assign-op operators with overloaded objects nor string offsets in C:\apachefriends\xampp\htdocs\berlin\modules\druck _abfrage.php on line 860

kann mir den jemand erklären?
den bekomm ich zum ersten mal....


PHP-Code:
<?php
        $reise_num
=0;
        
$ds_reise_abfrage="<div align='center'><form action='".$_SERVER['PHP_SELF']."' method=post><table class='abfrage'>";
        while(
$ds_reise=mysql_fetch_assoc($res))
        {
            
$ds_reise_abfrage[$reise_num].="<tr>"#das ist 860
            
$ds_reise_abfrage[$reise_num].="<td>";
            
$ds_reise_abfrage[$reise_num].="<input type='checkbox' name='reisebuero_aktiv' value='".$ds_reise['buero_id']."'>";
            
$ds_reise_abfrage[$reise_num].="</td>";
            
$ds_reise_abfrage[$reise_num].="<td>";
            
$ds_reise_abfrage[$reise_num].="<span>".$ds_reise['buero_id']."</span>";
            
$ds_reise_abfrage[$reise_num].="</td>";
?>

MfG

Julied
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 21.05.2005, 10:28  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
Falls auf meine Frage eine Antwort von Robo, Meikel oder Ben folgt brauchen andere nicht mehr antworten.
:P


vieleicht machst du hier was flasches? willst du ein array ? oder nen string ? oder was ? du kannst schlecht nen string initilaisieren und dann versuchen bei einem string an eine stelle mehrere zeichen einfügen :P

PHP-Code:
<?php
    $ds_reise_abfrage
="<div align='center'><form action='".$_SERVER['PHP_SELF']."' method=post><table class='abfrage'>";

?>

also array oder string `?
robo47 ist offline  
Alt 21.05.2005, 10:30  
Gast
 
Beiträge: n/a
Standard

d.h. das ich div form und table in je eine zeile packen muss?
versteh deine antwort ned ganz...bin auch grad aufgestanden...also es liegt wahrscheinlich ned an deiner erklährung, eher an meinem schlafentzug....


ich sollt weniger zocken..
 
Alt 21.05.2005, 10:36  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

vieleicht erklärst du mal genauer was du willst, was hat dieses div-zeugs da zu suchen.

in der zeile mit div, weist du einer variablen! einen string zu

$var = 'bla';

dann in der schleife, versuchst du $var als array zu benutzen

$var[$index] .= 'wert';

$var ist aber ein string, d.h. mit der $var[$index]-schreibweise greifst du (unsauber, weil man das mit strings normalerweise so macht: $var{$index}) auf ein zeichen des strings zu und versuchst dem einen ganzen string zu übergeben und gleichzeitig noch, weil du .= benutzt hintendranzuhängen, das geht so schlicht und einfach nicht.

die frage ist, warum speicherst du nicht den string in einer variable und den rest in einer anderen oder alles in einem string
->
anstatt
PHP-Code:
$ds_reise_abfrage[$reise_num].= 
einfach nur

PHP-Code:
$ds_reise_abfrage .= 
mfg
robo47
robo47 ist offline  
Alt 21.05.2005, 10:42  
Gast
 
Beiträge: n/a
Standard

also eins hab ich schon kapiert..klar...ich bin dumm....klar muss ich das anders machen...ich ändere des mal schnell ab (bin grad dabei) und dann post ich den ganzen abschnitt...
vielleicht stell ich des ganze zu kompliziert an und du kannst mir ne "nettere" lösung anbieten.


mom dauert 5 min.
 
Alt 21.05.2005, 10:50  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
    
case "reisebuero_aktivierung";
    
    
$database="berlin";
    @include (
'dbs.name');
    
    
$sql="SELECT * FROM reisebuero WHERE buero_key = 0";
    
$res=mysql_query($sql) or die(mysql_error());
    
$num=mysql_num_rows($res);
    if(
$num<1)
    {
        echo 
"<span>Es gibt keine neuen Registrierungen in der Sparte |Reisebüro's|</span>";
    }
    else
    {
        
$reise_num=0;
        while(
$ds_reise=mysql_fetch_assoc($res))
        {
            
$ds_reise_abfrage[$reise_num]="";
            
$ds_reise_abfrage[$reise_num].="<tr>";
            
$ds_reise_abfrage[$reise_num].="<td>";
            
$ds_reise_abfrage[$reise_num].="<input type='checkbox' name='reisebuero_aktiv' value='".$ds_reise['buero_id']."'>";
            
$ds_reise_abfrage[$reise_num].="</td>";
            
$ds_reise_abfrage[$reise_num].="<td>";
            
$ds_reise_abfrage[$reise_num].="<span>".$ds_reise['buero_id']."</span>";
            
$ds_reise_abfrage[$reise_num].="</td>";
            
$ds_reise_abfrage[$reise_num].="<td>";
            
$ds_reise_abfrage[$reise_num].="<span>".$ds_reise['reisebuero']."</span>";
            
$ds_reise_abfrage[$reise_num].="</td>";
            
$ds_reise_abfrage[$reise_num].="<td>";
            
$ds_reise_abfrage[$reise_num].="<span>".$ds_reise['buero_tel']."</span>";
            
$ds_reise_abfrage[$reise_num].="</td>";
            
$ds_reise_abfrage[$reise_num].="<td>";
            
$ds_reise_abfrage[$reise_num].="<span>".$ds_reise['buero_mail']."</span>";
            
$ds_reise_abfrage[$reise_num].="</td>";
            
$ds_reise_abfrage[$reise_num].="</tr>";
            echo 
$reise_num;
            
$reise_num+=1;
        }
        
$ds_reise_abfrage_1="<div align='center'><form action='modules/druck_abfrage.php' method=post><table border='1' class='abfrage'>";
        foreach(
$ds_reise_abfrage as $key => $value)
        {
            echo 
$value;
        }
        
$ds_reise_abfrage_1="<tr>";
        
$ds_reise_abfrage_1="<td colspan='5' align='center'>";
        
$ds_reise_abfrage_1="<input type='button' name='reise_button' class='button' value='reise_aktive_abfrage'>";
        
$ds_reise_abfrage_1="</td>";
        
$ds_reise_abfrage_1="</tr>";
        
$ds_reise_abfrage_1="</div></form></table>";
    }
?>
So, das ist nun das ganze script.
es soll ausgeben welches reisebüro noch nicht aktiviert ist.....
also als key in der DB 0 hat....
Da mein Chef erst sehen will ob es das RB überhaupt gibt und nicht irgendeine privatperson sich da bereichern will...
naja egal...
ich hab das so gelöst.....
ich weiß, ich könnte das auch gleich mit echo ausgeben....
ich will aber einfach damit ein bischen sicherer in sachen arrays werden....


MfG

Julied
 
Alt 21.05.2005, 11:05  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

ich glaube ud hast nichts von dem was ich geschrieben habe verstanden. :P

btw ist sowas nicht geeigent um sicherer mit arrays zu werden, weil sie hier fehl am platz sind


PHP-Code:
    <?php
    
case "reisebuero_aktivierung";

    
$database="berlin";
    @include (
'dbs.name');  // weg mit dem @ sowas hat bei nem include nix zu suchen, imho frag ich mihc eh was dbs.name ist :P

    
$sql="SELECT * FROM reisebuero WHERE buero_key = 0"// du weist doch select * from ist böse :P
    
$res=mysql_query($sql) or die(mysql_error());
    
$num=mysql_num_rows($res);
    if(
$num 1)
    {
        echo 
"<span>Es gibt keine neuen Registrierungen in der Sparte |Reisebüro's|</span>";
    }
    else
    {
        
$reise_num=0;
        while(
$ds_reise=mysql_fetch_assoc($res))
        {
            
$ds_reise_abfrage .= 
            
'
            <tr>
              <td>
                <input type="checkbox" name="reisebuero_aktiv" value="'
.$ds_reise['buero_id'].'">
              </td>
              <td>
                <span>'
.$ds_reise['buero_id'].'</span>
              </td>
              <td>
                <span>'
.$ds_reise['reisebuero'].'</span>
              </td>
              <td>
                <span>'
.$ds_reise['buero_tel'].'</span>
              </td>
              <td>
                <span>'
.$ds_reise['buero_mail'].'</span>
              </td>
            </tr>
            '
;
            echo 
$reise_num// was soll das hier? das ist verdammt unsbauer, weil zwischen </tr> und <tr> gibt man nix aus.
             
$reise_num++;
        }
        
$ds_reise_abfrage_1 '<div align="center"><form action="modules/druck_abfrage.php" method=post><table border="1" class="abfrage">'// gewöhn dir doch mal ' für echo an, dann kannste wenigstens sauber die " ausgeben :P
        
foreach($ds_reise_abfrage as $key => $value// wat macht das hier ?
        
{
            echo 
$value;
        }
        
$ds_reise_abfrage_1 .= '
          <tr>
            <td colspan='
5' align='center'>
              <input type='
button' name='reise_button' class='button' value='reise_aktive_abfrage'>
            </td>
          </tr>
          </div>
        </form>
        </table>'
;
         
// </div> und </form> haben vor </table> nix zu suchen
    
}
    
?>
schau dir die sources jetzt mal an, wirst vieleicht bissel was anpassen müssen und schau dir die kommentare an und vor allem, schau dass deine systeme valides html ausgeben, sonst tauchen bald wieder probleme aus. nutze den firefox mit dem developer-bar, damit kannst du sogar lokales html validieren lassen.

mfg
robo47
robo47 ist offline  
Alt 21.05.2005, 11:17  
Gast
 
Beiträge: n/a
Standard

also die dbs.name is das mysql_connect(.....);
somit muss ich des ned immer neu schreiben und ausserdem hab ich durch mein buch gelernt das es wohl besser ist dies in einen htacces geschützten ordner zu packen.....wg. pw schutz..
dann zu dem @...haste recht..
das * is nur zum test, kommt beim veröffentlichen weg.....
das echo $num is nur deswegen da um zu sehen ob er auch wirklich genau so viel ausgibt wie ds da sind...kommt ebenfalls bei veröffentlichen weg....
also ich hab ebenfalls durch mein buch gelernt mit echo ""; zu arbeiten und für innere tags ' zu verwenden...naja...ich kanns ja auch umdrehn absofort....

foreach benutz ich dafür das das array dann ausgelesen wird...
hab das array nur dafür angelegt um die daten wiederverwendbar im weitern program ablauf zu machen....

und das mit form is klar...aber ich leg den div ja um das table, ned des table um den div...

aber ich hab mal wieder einiges daraus gelernt..

ein dickes danke für...


MfG

Julied...
 
Alt 21.05.2005, 11:23  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
also ich hab ebenfalls durch mein buch gelernt mit echo ""; zu arbeiten und für innere tags ' zu verwenden...naja...ich kanns ja auch umdrehn absofort....
nur btw ' ist schneller und sauberes html sehe ich mit " als normal an (macht aber keinen unterschied bei der validität)
robo47 ist offline  
Alt 21.05.2005, 11:32  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat:

Falls auf meine Frage eine Antwort von Robo, Meikel oder Ben folgt brauchen andere nicht mehr antworten.
was soll da der smilie da?

stimmt doch oda?

wenn ich von dir ne antwort bekomm is se vielleicht mal hart, aber ich lern was dabei....
von anderen bekomm ich oft nur schrott....
aber des is ja ned böse den anderen gegenüber gemeint....
es is einfach das ihr die erfahrung habt...
ja klar, ich könnt da noch einen phpfan etc. reinschreiben....aber bei 150 Zeichen is leider schluss..
 
 


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
Catchable Fatal Error cycap PHP Tipps 2008 7 06.02.2008 13:29
Spionageversuch? Code-Injection? saibot PHP-Fortgeschrittene 24 06.10.2007 02:07
Fatal Error bei DB-Import über Consolenbefehl (Windows) PsychoEagle Datenbanken 2 01.10.2007 15:03
Fatal error: Cannot use object of type FPDF as array in Alpha Centauri PHP Tipps 2006 5 22.03.2006 14:44
Fatal error? Aber wo? Fatal Error PHP Tipps 2007 13 29.12.2005 11:32
xmlrpc-epi kompilieren [gelöst] freq.9 Server, Hosting und Workstations 4 24.07.2005 21:45
Fatal Error bei Loginscript PHP Tipps 2005-2 11 22.06.2005 16:17
PHP Fatal error: Class 'MySQLi' not found in CSS PHP Tipps 2005 6 13.04.2005 15:24
Fatal error: Allowed memory size of 8192 bytes exhausted at PHP Tipps 2005 11 06.03.2005 19:26
Fatal error: Call to undefined function: imagecreatefromjpeg DannyD PHP-Fortgeschrittene 10 05.12.2004 21:59
[Erledigt] SOAP/Client.php: PHP Fatal error: Method SOAP_Client::__call PHP-Fortgeschrittene 6 25.11.2004 09:48
Fatal error test022 PHP Tipps 2004 2 24.10.2004 15:25
Fatal error Meldung PHP Tipps 2004 1 26.08.2004 10:09
Fatal error: Cannot use string offset as an array in ... on PHP Tipps 2004 4 04.08.2004 16:47
Fatal error: Call to undefined function: sqlite_open()..... PHP Tipps 2004 11 01.08.2004 17:44


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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.