php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.04.2005, 14:21  
Gast
 
Beiträge: n/a
Standard falsche variablen werden ausgegeben

ich hab ein script geschrieben, in dem daten aus 2 txt dateien genommen werden und dann in eine tabelle geschrieben werden.
als ich die daten noch im quelltext hatte und nicht einlesen wollte hat es funktioniert.
wär net wenn ihr mal nen blick drauf werfen würdet!
PHP-Code:
<?function getmicrotime()

list(
$usec$sec) = explode(" ",microtime()); 
return ((float)
$usec + (float)$sec); 

$time_start getmicrotime();?>

<html>
<head>
<title>Tabelle</title>
</head>
<body>
<div align="center">
<table border="0" cellspacing=0 cellpadding=0>
<tr>
  <td bgcolor="grey">[b]Position[/b]</td>
  <td bgcolor="grey">[b]Nick[/b]</td>
  <td bgcolor="grey">[b]Punkte[/b]</td>
  <td bgcolor="grey">[b]Spiele[/b]</td>
  <td bgcolor="grey">[b]Win[/b]</td>
  <td bgcolor="grey">[b]Lost[/b]</td>
  <td bgcolor="grey">[b]Draw[/b]</td>
</tr>
<?php
$anzahl
=1;
$pos1;
$bg=1;
while (
$pos<=$anzahl)
{
$datei fopen("plaetze.txt""r") ;
while (!
feof($datei)) 
{
 
$zeile fgets($datei) ;
 
$data explode(","$zeile);
     IF(
$data[0]=="$pos")
 {
 
$id=$data[1];
 }
}
fclose($datei);
$datei1 fopen("player.txt""r") ;
while (!
feof($datei1)) 
{
 
$zeile1 fgets($datei1) ;
 
$data explode(","$zeile1);
     IF(
$data[0]=="$id")
 {
 
$nick=$date[1];
 
$kills=$date[7];
 
$deaths=$date[8];
 
$games=$date[3];
 
$win=$date[4];
 
$lost=$date[5];
 
$draw=$date[6];
}
}
fclose($datei1);
$points $kills-$deaths;
if (
$points<0)
   {
   
$color=red;
   }
else if (
$points==0)
   {
   
$color=yellow;
   }
else if (
$points>0)
   {
   
$color=green;
   }
if (
$bg==1)
   {
   
$bgcolor=white;
   
$bg=0;

   }
else if (
$bg==0)
   {
   
$bgcolor=lightgrey;
   
$bg=1;
   }
echo (
"
<tr>\n
   <td bgcolor=\"$bgcolor\">$pos</td>\n
   <td bgcolor=\"$bgcolor\">$nick</td>\n
   <td bgcolor=\"$bgcolor\"><font color=\"$color\">$points</font></td>\n
   <td bgcolor=\"$bgcolor\">$games</td>\n
   <td bgcolor=\"$bgcolor\"><font color=\"green\">$win</font></td>\n
   <td bgcolor=\"$bgcolor\"><font color=\"red\">$lost</font></td>\n
   <td bgcolor=\"$bgcolor\"><font color=\"grey\">$draw</font></td>\n
</tr>\n
"
);
$pos++;
}
?>
</table>
<?php include("copyright.php"); ?>
</div>
</body>
</html>

<?$time_end getmicrotime(); 
$totaltimegenerated number_format($time_end $time_start6"."".");
echo (
"<div align=\"right\">$totaltimegenerated</div>");
?>
Link zur Seite

mfG
suna
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.04.2005, 15:22  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Und was ist nun die Frage. Sonst habe ich einige:
  • - gibt es eine Fehlermeldung, und wenn ja was für eine
    - wenn nein: ist error_reporting(E_ALL) ?
Und wie der Code aussehen könnt, wenn man ihn anständig einrückt und Leerstellen um die Operatoren macht, siehst du hier.
PHP-Code:
<?php

    
list($usec$sec) = explode(" "microtime());
    return ((float)
$usec + (float)$sec);
}
$time_start getmicrotime();?>

<html>
<head>
<title>Tabelle</title>
</head>
<body>
<div align="center">
<table border="0" cellspacing=0 cellpadding=0>
<tr>
  <td bgcolor="grey">[b]Position[/b]</td>
  <td bgcolor="grey">[b]Nick[/b]</td>
  <td bgcolor="grey">[b]Punkte[/b]</td>
  <td bgcolor="grey">[b]Spiele[/b]</td>
  <td bgcolor="grey">[b]Win[/b]</td>
  <td bgcolor="grey">[b]Lost[/b]</td>
  <td bgcolor="grey">[b]Draw[/b]</td>
</tr>
<?php
$anzahl 
1;
$pos 1;
$bg 1;
while (
$pos <= $anzahl)
{
    
$datei fopen("plaetze.txt""r") ;
    while (!
feof($datei))
    {
        
$zeile fgets($datei) ;
        
$data explode(","$zeile);
        IF(
$data[0] == "$pos")
        {
            
$id $data[1];
        }
    }
    
fclose($datei);
    
$datei1 fopen("player.txt""r") ;
    while (!
feof($datei1))
    {
        
$zeile1 fgets($datei1) ;
        
$data explode(","$zeile1);
        IF(
$data[0] == "$id")
        {
            
$nick $date[1];
            
$kills $date[7];
            
$deaths $date[8];
            
$games $date[3];
            
$win $date[4];
            
$lost $date[5];
            
$draw $date[6];
        }
    }
    
fclose($datei1);
    
$points $kills $deaths;
    if (
$points 0)
    {
       
$color red;
    }
    elseif (
$points == 0)
    {
        
$color yellow;
    }
    elseif (
$points 0)
    {
        
$color green;
    }
    if (
$bg == 1)
    {
       
$bgcolor white;
       
$bg 0;
    }
    elseif (
$bg == 0)
    {
       
$bgcolor lightgrey;
       
$bg 1;
    }
    echo (
"
<tr>\n
   <td bgcolor='$bgcolor'>$pos</td>\n
   <td bgcolor='$bgcolor'>$nick</td>\n
   <td bgcolor='$bgcolor'><font color='$color'>$points</font></td>\n
   <td bgcolor='$bgcolor'>$games</td>\n
   <td bgcolor='$bgcolor'><font color='green'>$win</font></td>\n
   <td bgcolor='$bgcolor'><font color='red'>$lost</font></td>\n
   <td bgcolor='$bgcolor'><font color='grey'>$draw</font></td>\n
</tr>\n
"
);
    
$pos++;
}
?>
</table>
<?php include("copyright.php"); ?>
</div>
</body>
</html>

<?
$time_end 
getmicrotime();
$totaltimegenerated number_format($time_end $time_start6"."".");
echo (
"<div align='right'>$totaltimegenerated</div>");
?>
?>
__________________
Gruss
L
lazydog ist offline  
Alt 19.04.2005, 15:34  
Gast
 
Beiträge: n/a
Standard

nein es kommt keine fehlermeldung
und was error_reporting(E_ALL) ist kA

der fehler ist, das nix angezeigt wird
 
Alt 19.04.2005, 15:37  
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

schreib mal ganz oben in den script ein
error_reporting(E_ALL);
robo47 ist offline  
Alt 19.04.2005, 16:19  
Gast
 
Beiträge: n/a
Standard

jetzt kommen einig fehlermeldungen
aber was die bedeuten weiss ich nicht
http://suna.su.funpic.de/liga/tabelle_cod.php
 
Alt 19.04.2005, 16:53  
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

http://php-faq.de/q/q-fehler-konstante.html
http://php-faq.de/q/q-fehler-variable.html
robo47 ist offline  
Alt 19.04.2005, 16:57  
Erfahrener Benutzer
 
Registriert seit: 16.03.2005
Beiträge: 421
Niedi
Niedi eine Nachricht über ICQ schicken
Standard

hab mir das mit den variablen gerade durchgelesen

heisst das da sman jede Variable die man in seinem script verwendet, bevor es verwendet wird so zu definieren: $variable = 0; ??

habe ich bis jetzt auch immer für unnötig gehalten, da es auch ohne ging, und ich error reporting zwar an habe, jedoch es wie gesagt trotzdem funktionierte ^^

mfg Niedi
Niedi ist offline  
Alt 19.04.2005, 17:01  
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

1.
variablen von denen man sich nciht sicher ist ob sie existieren: POST, GET, COOKIE, SESSION-varialben überprüft man bevor man sie benutzt durch isset
2.
eine variable initialisiert man bevor man sie benutzt, wenn register globals aktiviert ist kann das sonst bei unsauberer programmierung schnell ein sicherheits problem werden.
robo47 ist offline  
Alt 19.04.2005, 17:07  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Was ist an den Meldungen denn unklar?

Zitat:

Notice: Undefined variable: date in /usr/export/www/vhosts/funnetwork/hosting/suna/liga/tabelle_cod.php on line 48
/usr/export/www/vhosts/funnetwork/hosting/suna/liga/tabelle_cod.php on line 49
/usr/export/www/vhosts/funnetwork/hosting/suna/liga/tabelle_cod.php on line 50
/usr/export/www/vhosts/funnetwork/hosting/suna/liga/tabelle_cod.php on line 51
/usr/export/www/vhosts/funnetwork/hosting/suna/liga/tabelle_cod.php on line 52
/usr/export/www/vhosts/funnetwork/hosting/suna/liga/tabelle_cod.php on line 53
/usr/export/www/vhosts/funnetwork/hosting/suna/liga/tabelle_cod.php on line 54

Notice: Use of undefined constant yellow - assumed 'yellow' in /usr/export/www/vhosts/funnetwork/hosting/suna/liga/tabelle_cod.php on line 65

Notice: Use of undefined constant white - assumed 'white' in /usr/export/www/vhosts/funnetwork/hosting/suna/liga/tabelle_cod.php on line 73

Notice: Use of undefined constant Y - assumed 'Y' in /usr/export/www/vhosts/funnetwork/hosting/suna/liga/copyright.php on line 3

Notice: Undefined variable: datum in /usr/export/www/vhosts/funnetwork/hosting/suna/liga/copyright.php on line 6
Du wirst in Zeile 48 wohl eine Variable verwenden, der vorher kein Wert zugewiesen wurde. Die könnte "date" heißen. Da Du Varieblen $data und $Datei hast, wäre ein Tippfehler möglich.
Die Variable taucht mehrfach auf. Wo welche Zeile ist, weiß ich aber nicht. Kennzeichne das mal in Deinem Code.

Es könnte der Teil hier sein:
PHP-Code:
<?
       
IF($data[0] == "$id")
        {
            
$nick $date[1];
            
$kills $date[7];
            
$deaths $date[8];
            
$games $date[3];
            
$win $date[4];
            
$lost $date[5];
            
$draw $date[6];
        } 
?>
Da wechselt die Variable auf wundersame Weise ihren Namen....

In Zeile 65 gibt es eine Konstante yellow bzw. Du verwendest eine, die es nicht gibt. Falls es ein Array-Index werden soll, nimm lieber 'yellow', wie es PHP vorschreibt.

Und wenn Du jede Meldung mal angesehen hast und zumindest mal einen Blick in die entsprechende Zeile geworfen hast, dann kannst Du mal konkrete Fragen zu den Meldungen stellen.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 19.04.2005, 20:16  
Gast
 
Beiträge: n/a
Standard

ok jetzt liest er das ein aber es gibt immer noch problem!!!
bei den ersten 2 durchläufen der schleife werden alle angezeigten variablen auf 0 gestellt.
wo liegt jetzt der fehler?
PHP-Code:
<?function getmicrotime()

list(
$usec$sec) = explode(" ",microtime()); 
return ((float)
$usec + (float)$sec); 

$time_start getmicrotime();?>

<html>
<head>
<title>Tabelle</title>
</head>
<body>
<div align="center">
<table border="0" cellspacing=0 cellpadding=0>
<tr>
  <td bgcolor="grey">[b]Position[/b]</td>
  <td bgcolor="grey">[b]Nick[/b]</td>
  <td bgcolor="grey">[b]Punkte[/b]</td>
  <td bgcolor="grey">[b]Spiele[/b]</td>
  <td bgcolor="grey">[b]Win[/b]</td>
  <td bgcolor="grey">[b]Lost[/b]</td>
  <td bgcolor="grey">[b]Draw[/b]</td>
</tr>
<?php error_reporting(E_ALL);
$anzahl="3";
$pos"1";
$bg="1";
while (
$pos<=$anzahl)
{
 
$nick="0";
 
$kills="0";
 
$deaths="0";
 
$games="0";
 
$win="0";
 
$lost="0";
 
$draw="0";
 
$points="0";
$datei fopen("plaetze.txt""r") ;
while (!
feof($datei)) 
{
 
$zeile fgets($datei) ;
 
$data explode(","$zeile);
     IF(
$data[0]==$pos)
 {
 
$id=$data[1];
 }
}
fclose($datei);
$datei1 fopen("player.txt""r") ;
while (!
feof($datei1)) 
{
 
$zeile1 fgets($datei1) ;
 
$data1 explode(","$zeile1);
     IF(
$data1[0]==$id)
 {
 
$nick=$data1[1];
 
$kills=$data1[8];
 
$deaths=$data1[9];
 
$games=$data1[4];
 
$win=$data1[5];
 
$lost=$data1[6];
 
$draw=$data1[7];
}
}
fclose($datei1);
$points $kills-$deaths;
if (
$points<"0")
   {
   
$color="red";
   }
else if (
$points=="0")
   {
   
$color="yellow";
   }
else if (
$points>"0")
   {
   
$color="green";
   }
if (
$bg=="1")
   {
   
$bgcolor="white";
   
$bg="0";
   }
else if (
$bg=="0")
   {
   
$bgcolor="lightgrey";
   
$bg="1";
   }
echo 
$nick;
echo 
$kills;
echo 
$deaths;
echo 
$games;
echo 
$win;
echo 
$lost;
echo 
$draw;
echo 
$points;
echo (
"
<tr>\n
   <td bgcolor=\"$bgcolor\">$pos</td>\n
   <td bgcolor=\"$bgcolor\">$nick</td>\n
   <td bgcolor=\"$bgcolor\"><font color=\"$color\">$points</font></td>\n
   <td bgcolor=\"$bgcolor\">$games</td>\n
   <td bgcolor=\"$bgcolor\"><font color=\"green\">$win</font></td>\n
   <td bgcolor=\"$bgcolor\"><font color=\"red\">$lost</font></td>\n
   <td bgcolor=\"$bgcolor\"><font color=\"grey\">$draw</font></td>\n
</tr>\n
"
);
$pos=$pos+"1";
}
?>
</table>
<?php include("copyright.php"); ?>
</div>
</body>
</html>

<?$time_end getmicrotime(); 
$totaltimegenerated number_format($time_end $time_start6"."".");
echo (
"<div align=\"right\">$totaltimegenerated</div>");
?>
Datai: plaetze.txt
Code:
platz, id
1, 1
2, 2
3, 3
Datei: player.txt
Code:
0, name, icq, punkte, spiele, win, lost, draw, kills, deaths
1, suna, 327553854, 0, 5, 4, 0, 1, 24, 16
2, redeye, 658126457, 0, 6, 4, 1, 1, 26, 18
3, don, 994167126, 0, 8, 1, 7, 0, 8, 25
ich hab echt keine ahnung woran das leigt?!?!
 
 


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
Klasse statt globaler Variablen ecomeback PHP-Fortgeschrittene 6 15.07.2008 16:30
[Erledigt] Falsche Anzahl der Datensätze wird ausgegeben noOx PHP Tipps 2008 10 30.06.2008 16:54
Übergeben von Variablen an in PHP eingebundenes Perl-Script shredder01 PHP Tipps 2008 3 04.04.2008 09:25
Datei mit Variablen so includen, dass Variablen nutzbar? BartTheDevil89 PHP Tipps 2008 6 22.01.2008 20:57
unerklärliches Leeren von Variablen KuShi PHP Tipps 2007 2 08.07.2007 15:19
Teil einer Variablen mit einer Variablen ersetzen ? simsalabim PHP Tipps 2007 11 20.03.2007 20:36
variablen aus textfile erzeugen (shellscript) noskule Server, Hosting und Workstations 2 19.07.2006 15:42
Variable aus Variablen zusammensetzen juhuwoorps PHP Tipps 2007 1 28.11.2005 21:50
Variablen übergeben bzw. auslesen? PHP Tipps 2005 4 30.01.2005 03:56
[Erledigt] register globals off bei variablen Variablen... PHP Tipps 2005 4 25.01.2005 17:50
php variablen in mysql PHP Tipps 2004-2 8 06.12.2004 16:41
komplexe Variablen übergeben? PHP Tipps 2004-2 8 02.12.2004 08:29
Variablen aus den Formular sind nicht mehr verfügbar PHP Tipps 2004 6 30.10.2004 13:31
Dynamisch erstellte Variablen ansprechen PHP Tipps 2004 2 08.08.2004 20:15
Variablen per adresse übergeben rocco PHP Tipps 2004 7 24.07.2004 12:03


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