[PHP] PHP Script, nichts wird angezeigt ...

Dieses Thema im Forum "Webentwicklung" wurde erstellt von DOWNandOUT, 7. Juni 2007 .

Schlagworte:
  1. 7. Juni 2007
    PHP Script, nichts wird angezeigt ...

    HI, ich habe für nen Kollegen seine Downloadbase ein "Download-Eintragsscript" in PHP geschrieben, soweit sogut. Aber wenn man die PHP jetzt im Browser aufruft also wenn man sie z.B. auf Funpic oder oHost oder kA wo hochlädt wird einfach nur eine weiße seite angezeigt, obwohl HTML vorhanden ist..

    Woran kann das liegen ? Hier mal der code:

    PHP:
    <? php

    // Copyright by Homie. Dieses Script wurde extra für den WEA Downloader von
    // Puddy gemacht, das Script darf nicht weitergegeben oder ohne meine Erlaubnis
    // Verteilt werden. Wer auch ein Script haben will. ICQ: 338676571



    $config [ 'mysql_host' ] =  'localhost' //MySQL Host oder IP
    $config [ 'mysql_user' ] =  'root' //MySQL User - Standart: Root
    $config [ 'mysql_pass' ] =  'root' //MySQL Passwort
    $config [ 'mysql_dbname' ] =  'test' //Name der Datenbank

    error_reporting ( E_ALL  E_NOTICE );

    session_start ();

    $msg  = Array();
    $error  = Array()

    function 
    addDownload (){
            if (empty(
    $_POST )) return  false ;
            global 
    $config $msg $error ;
            if (empty(
    $_POST [ 'datei' ]))  $error [] =  'Kein Dateiname angegeben' ;
            if (empty(
    $_POST [ 'groesse' ]))  $error [] =  'Keine Größe angegeben' ;
            if (empty(
    $_POST [ 'kategorie' ]))  $error [] =  'Keine Kategorie angegeben' ;
            if (empty(
    $_POST [ 'server' ]))  $error [] =  'Kein Server angegeben' ;
            if (empty(
    $_POST [ 'url' ]))  $error [] =  'Keine URL angegeben' ;
            if (!empty(
    $error )) return  false ;
            
    $db  = @ mysql_connect ( $config [ 'mysql_host' ],  $config [ 'mysql_user' ],  $config [ 'mysql_pass' ]);
            if (!
    $db ) return  $error [] =  'Database: ' . mysql_error ();
            if (!@
    mysql_select_db ( $config [ 'mysql_dbname' ],  $db )) return  $error [] =  'Database: ' . mysql_error ();
            
    $query  "INSERT INTO `weadownload` (`datei`,`groesse`,`kategorie`,`server`,`url`) VALUES ('" . mysql_real_escape_string ( $_POST [ 'datei' ]). "', '" . mysql_real_escape_string ( $_POST [ 'groesse' ]). "', '" . mysql_real_escape_string ( $_POST [ 'kategorie' ]). "', '" . mysql_real_escape_string ( $_POST [ 'server' ]). "', '" . mysql_real_escape_string ( $_POST [ 'url' ]). "')" ;
            
    $res  mysql_query ( $query $db );
            if (!
    $res ) return  $error [] =  'Database: ' . mysql_error ();
            
    $msg [] =  'Die Datei wurde eingetragen.' ;
            
    mysql_close ( $db )
            return 
    true ;
    }
    {
    addDownload ();
    }
    ?>
    <html>
    <head>
    <title>Wea-Download Eintragungsscript für Puddy by Homie.</title>
    <style>
    body, table {
        font-family: Verdana;
        font-size: 13px;
    }
    input {
        font-family: Tahoma;
        text-align: center;
        padding: 2px;
    }
    input.button {
        font-family: Verdana;
        font-size: 12px;
        padding: 2px 25px;
    }
    div.error {
        border: 2px solid #FF0000;
        background-color: #f48987;
        padding: 4px;
    }
    div.msg {
        background-color: #9fd5b5;
        padding: 4px;
        border: 2px solid #00b159;
    }
    </style>
    </head>
    <body link="#FFFFFF" bgcolor="#808080">

    <body>

    <u><h2 align="left"><font><center>Wea-Download Eintragungsscript für Puddy by Homie.</center></h2></u>

    <?php

    if (!empty( $error )){
        echo 
    '<div class="error">' ;
        foreach(
    $error  as  $text )
            echo 
    $text . '!<br/>' ;
        echo 
    '</div>' ;
    };
    if (!empty(
    $msg )){
        echo 
    '<div class="msg">' ;
        foreach(
    $msg  as  $text )
            echo 
    $text . '!<br/>' ;
        echo 
    '</div>' ;
        exit(
    '</body></html>' );
    };
    ?>

    <form action="<?php  echo  $_SERVER [ 'PHP_SELF' ];  ?>" method="POST">
    <table>
    <tr>
        <p><center>Dateiname:</center></p>
        <tr>
        <p><center><input type="text" name="datei" size="30" maxlength="16"/></center></p>

    </tr>
    <tr>
        <p><center>Größe:</center></p>
        <tr>
        <p><center><input type="text" name="groesse" size="30" maxlength="16"/></center></p>

    </tr>
    <tr>
        <p><center>Kategorie:</center></p>
        <tr>
        <p><center><input type="text" name="kategorie" size="30" maxlength="16"/></center></p>

    </tr>
    <tr>
        <p><center>Server:</center></p>
        <tr>
        <p><center><input type="text" name="server" size="30" maxlength="16"/></center></p>

    </tr>
    <tr>
        <p><center>Download URL:</center></p>
        <tr>
        <p><center><input type="text" name="url" size="30" maxlength="16"/></center></p>

    </tr>
    <tr>
        <p><center><input type="submit" value="Download eintragen" class="button"/></p></center>
    </tr>
    </table>
    </form>
    </body>
    </html>
     
  2. 7. Juni 2007
    AW: PHP Script, nichts wird angezeigt ...

    also auf den ersten blick sehe ich, dass hinter $error = Array() ein simikolon fehlt
    vllt. doch E_ALL? naja, egal
    und noch ne frage: wozu die funktion addDownload()?
    wenn du die eh direkt danach und vorallem NUR direkt danach, kannst du sie auch einfach so dahin schreiben
    dann nur halt mit if (!empty($_POST)) { ausführen } fertig
     
  3. 7. Juni 2007
    AW: PHP Script, nichts wird angezeigt ...

    Jo ich setz mich mal eben dran, dauert aber ein Minütchen, schreibst aber eben erstmal ein bißchen um wie ich es für lesbarer finde.

    @Schmitz, also der Semikolonfehler wird von seiner reportingstufe gemeldet

    Also ich würde primär sagen, HTML Tag Soup!

    PHP:
    <? php
        session_start
    ();
        
    error_reporting ( E_ALL ); //alle Fehler fürs Entwickeln anzeigen

        
    if (isset( $_POST [ 'submit' ])) { //überprüfe ob der submit button gedrückt wurde
            //basis variablen
            
    $config  = array( 'mysql_host'    => 'localhost' ,
                            
    'mysql_user'    => 'root' ,
                            
    'mysql_pass'    => 'root' ,
                            
    'mysql_dbname'  => 'test' ); //config array wie vorher auch
            
    $error  = array();

            
    //Überprüfung ob alle nötigen Formularfelder ausgefüllt worden
            
    if (empty( $_POST [ 'datei' ])) {
                
    $error [] =  'Kein Dateiname angegeben!<br />' ;
            }
            if (empty(
    $_POST [ 'groesse' ])){
                
    $error [] =  'Keine Größe angegeben!<br />' ;
            }
            if (empty(
    $_POST [ 'kategorie' ])) {
                
    $error [] =  'Keine Kategorie angegeben!<br />' ;
            }
            if (empty(
    $_POST [ 'server' ])) {
                
    $error [] =  'Kein Server angegeben!<br />' ;
            }
            if (empty(
    $_POST [ 'server' ])) {
                
    $error [] =  'Kein Server angegeben!<br />' ;
            }
            if (empty(
    $_POST [ 'url' ])) {
                
    $error [] =  'Keine URL angegeben!<br />' ;
            }
            
    //Ende - Überprüfung ob alle nötigen Formularfelder ausgefüllt worden

            
    if (empty( $error )) { //Überprüfe ob bereits bei den Daten ein Fehler bestand
                
    if ((@ mysql_connect ( $config [ 'mysql_host' ],  $config [ 'mysql_user' ],  $config [ 'mysql_pass' ])) && ( mysql_select_db ( $config [ 'mysql_dbname' ]))) { //Überprüfe ob die Datenbankverbindung ordentlich aufgebaut wurde
                    
    $query  'blabla' ; //auch hier wieder an die sicherheit denken
                    
    if (! mysql_query ( $query )) {
                        
    $error [] =  'Datenbankfehler bei der Eintragung!<br />' ;
                    }
                    
    mysql_close ();
                } else {
    //Überprüfe ob die Datenbankverbindung ordentlich aufgebaut wurde - Falls nein ...
                    
    $error [] =  'Datenbankfehler!<br />' ; //...dann eine Fehlermeldung. NIE NIE NIEMALS den direkten mysql_error() ausgeben
                
    } //Ende - Überprüfe ob die Datenbankverbindung ordentlich aufgebaut wurde
            
    } //Ende - Überprüfe ob bereits bei den Daten ein Fehler bestand
        
    } //Ende - überprüfe ob der submit button gedrückt wurde

        
    print <<<ENDE
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <style type="text/css">
          a {
            color: #FFF;
          }
          body, form {
            background: #808080;
            font-family: Verdana;
            font-size: 13px;
            text-align: center;
          }
          button {
            font-family: Verdana;
            font-size: 12px;
            padding: 2px 25px;
          }
          div.error {
            border: 2px solid #F00;
            background-color: #f48987;
            padding: 4px;
          }
          div.msg {
            background-color: #9fd5b5;
            padding: 4px;
            border: 2px solid #00b159;
          }
          form {
              text-align: center;
          }
          input {
            font-family: Tahoma;
            text-align: center;
            padding: 2px;
          }
          label {
            display: block;
          }
        </style>
        <title>Web-Download Eintragungsscript für Puddy by Homie.</title>
      </head>
      <body>
        <h2>Web-Download Eintragungsscript für Puddy by Homie.</h2>
    ENDE;
        if (!empty(
    $error )) {
            print 
    '<div class="error">' . implode ( "\n" $error ). '</div>' ;
        } else {
            if (isset(
    $_POST [ 'submit' ])) { //ob jetzt hier oder oben redundanzen sind ist auch egal
                
    print  '<div class="msg">Eintragung erfolgreich.</div>' ;
            }
        }
        print <<<ENDE
        <form action=" { $_SERVER [ 'PHP_SELF' ]} " method="post">
          <label for="datei">Dateiname:</label><input id="datei" type="text" name="datei" size="30" maxlength="16" />
          <label for="groesse">Gr&ouml;&szlig;e:</label><input id="groesse" type="text" name="groesse" size="30" maxlength="16" />
          <label for="kategorie">Kategorie:</label><input id="kategorie" type="text" name="kategorie" size="30" maxlength="16" />
          <label for="server">Server:</label><input id="server" type="text" name="server" size="30" maxlength="16" />
          <label for="url">Download URL:</label><input id="url" type="text" name="url" size="30" maxlength="16" />
          <label for="submit"><button id="submit" name="submit" type="submit">Download eintragen</button></label>
        </form>
      </body>
    </html>
    ENDE;
    ?>
    So das ist auch valides, nahezu barrierefreies HTML und bis auf die Datenbankeintragungen läuft auch alles.
     
  4. 7. Juni 2007
    AW: PHP Script, nichts wird angezeigt ...

    sodala, da sich jan225 via icq über makenx's vorschlag bei mir beschwert hatte, hier meine lösung.

    PHP:
    <? php
    //who care's a copyright?
        
    $config [ 'mysql_host' ] =  'localhost' //MySQL Host oder IP
    $config [ 'mysql_user' ] =  'root' //MySQL User - Standart: Root
    $config [ 'mysql_pass' ] =  '' //MySQL Passwort
    $config [ 'mysql_dbname' ] =  'jan225' //Name der Datenbank

    //error_reporting(E_ALL ^ E_NOTICE); ... blahh!

    //session_start(); why?

    class  mysql  {
        var 
    $user ;
        var 
    $pass ;
        var 
    $host ;
        var 
    $name ;
        
        var 
    $connectRES  "" ;
        var 
    $show_error  false ;
        
        public function 
    mysql ( $host = "" , $user ,& $pass , $name
        {
            
    $this -> host  = ( $host  != "" ) ?  $host  "localhost" ;
            
    $this -> user  $user ;
            
    $this -> pass  $pass ;
            
    $pass  "" ;
            
    $this -> name  $name ;
            
            
    $this -> connect ();
        }
        
        private function 
    connect ()
        {
                
    $con  = @ mysql_connect ( $this -> host $this -> user $this -> pass );
                if(!
    $con ) ( $this -> show_error  ===  true ) ?  $this -> error_report () : exit();
                else 
    $this -> select ( $con );
        }
        
        private function 
    select ( $con )
        {
            
    $sel  = @ mysql_select_db ( $this -> name $con );
            if(!
    $sel ) ( $this -> show_error  ===  true ) ?  $this -> error_report () : exit();
            else 
    $this -> connectRES  $con //you are connected!        
        
    }
        
        public function 
    query ( $q )
        {
            
    $this -> request  $q ;
            
    $q  = @ mysql_query ( $q $this -> connectRES );
            if(!
    $q ) ( $this -> show_error  ===  true ) ?  $this -> error_report () : exit();
            else return 
    $q ;
        }
        
        public function 
    num_rows ( $q )
        {
            
    $q  = @ mysql_num_rows ( $this -> query ( $q ));
            return 
    $q ;
        }
        
        private function 
    error_report ()
        {
            
    $e  mysql_error ();
            die(
    "<b>Error!</b> " .(( $this -> request  != "" ) ?  $this -> request . " === false!"  "" ). "\n<br/> $e " );
        }
    }

    $db  = &new  mysql ( $config [ 'mysql_host' ],  $config [ 'mysql_user' ],  $config [ 'mysql_pass' ],  $config [ 'mysql_dbname' ]);

    function 
    addDownload ()
    {
        global 
    $db ;
        
        
    $file [ 'name' ] =  mysql_real_escape_string ( $_POST [ 'datei' ]);
        
    $file [ 'size' ] =  mysql_real_escape_string ( $_POST [ 'groesse' ]);
        
    $file [ 'kate' ] =  mysql_real_escape_string ( $_POST [ 'kategorie' ]);
        
    $file [ 'serv' ] =  mysql_real_escape_string ( $_POST [ 'server' ]);
        
    $file [ 'down' ] =  mysql_real_escape_string ( $_POST [ 'url' ]);
        
        
    $error  = array();
        foreach(
    $file  AS  $name  =>  $value ) {
            if(
    $value  ==  "" $error [] =  $name . " fehlt" ;
            else 
    $file [ $name ] =  htmlspecialchars ( $value ENT_QUOTES );
        }
        
        if(
    $db -> num_rows ( "SELECT `id` FROM `weadownload` WHERE `datei` LIKE ' { $file [ 'name' ]} ' AND `kategorie` = ' { $file [ 'kate' ]} ';" ) != 0 $error [] =  "file schon vorhanden" ;
        
        if(
    $error [ 0 ] != "" ) return  $error ;
        else {
            
    $query   "INSERT INTO `weadownload` (`datei`, `groesse`, `kategorie`, `server`, `url`) VALUES" ;
            
    $query  .=  "(' { $file [ 'name' ]} ', ' { $file [ 'size' ]} ', ' { $file [ 'kate' ]} ', ' { $file [ 'serv' ]} ', ' { $file [ 'down' ]} ');"
            if(
    $db -> query ( $query )) return  "erfolgreich eingetragen!" ;
            else return 
    "fehler?" ;
        }
    }
    ?>
    <html>
    <head>
    <title>Wea-Download Eintragungsscript für Puddy by Homie&lt;- YMMD!.</title>
    <style>
    body, table {
        font-family: Verdana;
        font-size: 13px;
    }
    input {
        font-family: Tahoma;
        text-align: center;
        padding: 2px;
    }
    input.button {
        font-family: Verdana;
        font-size: 12px;
        padding: 2px 25px;
    }
    div.error {
        border: 2px solid #FF0000;
        background-color: #f48987;
        padding: 4px;
    }
    div.msg {
        background-color: #9fd5b5;
        padding: 4px;
        border: 2px solid #00b159;
    }
    </style>
    </head>
    <body link="#FFFFFF" bgcolor="#808080">

    <body>
    <u><h2 align="left">Wea-Download Eintragungsscript für Puddy by Homie.</h2></u>
    <?php  if(!isset( $_POST [ 'add' ])) {  ?>
    <form action="<?php  echo  $_SERVER [ 'PHP_SELF' ];  ?>" method="post">
    <table>
        <tr>
            <td><p align="center">Dateiname:</p></td>
        <tr>
            <td><p align="center"><input type="text" name="datei" size="30" maxlength="16"/></p></td>
        </tr>
        <tr>
            <td><p align="center">Größe:</p></td>
        <tr>
            <td><p align="center"><input type="text" name="groesse" size="30" maxlength="16"/></p></td>
        </tr>
        <tr>
            <td><p align="center">Kategorie:</p></td>
        <tr>
            <td><p align="center"><input type="text" name="kategorie" size="30" maxlength="16"/></p></td>
        </tr>
        <tr>
            <td><p align="center">Server:</p></td>
        <tr>
            <td><p align="center"><input type="text" name="server" size="30" maxlength="16"/></p></td>
        </tr>
        <tr>
            <td><p align="center">Download URL:</p></td>
        <tr>
            <td><p align="center"><input type="text" name="url" size="30" maxlength="16"/></p></td>
        </tr>
        <tr>
            <td><p align="center"><input type="submit" name="add" value="Download eintragen" class="button"/></p></td>
        </tr>
    </table>
    </form>
    <?php 
    else {
        
    $request  addDownload ();
        if(
    is_array ( $request )) {
            print 
    '<div class="error">' ;
            foreach(
    $request  AS  $name  =>  $value ) {
                print (
    $name + 1 ). ":  { $value } \n<br/>" ;
            }
            print 
    '</div>' ;
        }
        else print 
    "<div class=\"msg\"> $request </div>" ;
        
        print 
    '<a href="' . $_SERVER [ 'PHP_SELF' ]. '">weiter</a>' ;
    }
    ?>
    </body>
    </html>
     
  5. 8. Juni 2007
    AW: PHP Script, nichts wird angezeigt ...

    Also ich finde es blöd dass ich mir die Mühe mache und dein Script halbwegs sauber runter schreibe?!?! Wo ist denn das Problem? Das html ist jetzt sauber und deutlich niveauvoller als dein Scriptschnipsel. Musste nur mal ordentlich lesen.
    Beim PHP Script bin ich sogar bei deiner Struktur geblieben, habe eigentlich nur ordentlich eingrückt und if - kontrollen "refaktoriert" .... ich habe sogar kommentiert, was, wo, wie und warum passiert?!

    Und es kommt kein Kommentar, noch nichtmals n Danke oder sowas!? Finde ich schon dreist, und wenn ich könnte, würde ich deinen Kumpels am liebsten sagen, dass sie sich n anderen coder suchen sollten!

    Ich hoffe du kommst mit dem Script von Murdoc klar, ansonsten, denke ich, wird sich keiner mehr bei dir melden.
     
  6. 8. Juni 2007
    AW: PHP Script, nichts wird angezeigt ...

    Danke ;-) Ne es ging mir darum das ich mein Script was ich geschrieben habe benutzen will , ich habe nie nach nem neuen Script gefragt sondern nur warum es nur weiß angezeigt wird. Das Fehler war das 2 oder 3 ; und ne ) fehlte, aber der Server wo es drauf war hat keiN Errorreporting unterstützt. Nun gehts ja.

    Trotzdem vielen Dank
     
  7. 8. Juni 2007
    AW: PHP Script, nichts wird angezeigt ...

    Jo du solltest meins auch nicht übernehmen, es sollte dir als Muster gelten, denn das Vorgehen ist genau das selbe wie deins.

    Aber das sind schwerwiegende Fehler die von der standard einstellung des interpreters normalerweise angezeigt werden, oder auf dem server wurde reporting komplett deaktiviert, was natürlich in so einem fall nicht vorteilhaft ist. Aber nun gut, jetzt weißte ja worans liegt.

    PS: Hattest du kein Programm wo das direkt angezeigt wird, ob direkt als Fehleranzeige oder anderer Farbe im Markup? Falls nein, solltest du dir mal so eins besorgen. hilft enorm.
     
  8. 8. Juni 2007
    AW: PHP Script, nichts wird angezeigt ...

    Ich benutze auf meinem PC also XP "PHP Coder Pro" .. und auf dem Laptop Vista "Rapid PHP"... gibts bessere ?

    Und noch ne kleine Frage ^^ Habe gerade nen Loginscript fertig, is nen billiges nur das problem is das wenn man Einloggt auf die index2.php geschickt wird, aber man kann die index2.php auich ohne Login aufrufen, gibt es irgendwas das dass verhindert `?
     
  9. 8. Juni 2007
    AW: PHP Script, nichts wird angezeigt ...

    Sessions, Cookies, IP-Check -> such dir was aus!
     
  10. 8. Juni 2007
    AW: PHP Script, nichts wird angezeigt ...

    dazu wäre es gut zu wissen, wie man sich da einloggt
    wenn einfach nur ein passwort geprüft wird müsstest du eine der oberen varianten von tHe dUdE (IP eher weniger, eher zusätzlich zu Cookies) benutzen
    aber normalerweise werden logindaten komplett irgentwo gespeichert, also kannst du das dann abfragen
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.