#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> + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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öß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. + Multi-Zitat Zitieren
#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<- 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> + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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 `? + Multi-Zitat Zitieren
#9 8. Juni 2007 AW: PHP Script, nichts wird angezeigt ... Sessions, Cookies, IP-Check -> such dir was aus! + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren