phpbb auf einer anderen seite einbinden

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Cojote
Mitglied
Beiträge: 40
Registriert: 14.10.2004 14:44

Beitrag von Cojote »

Code: Alles auswählen

$file_info = getimagesize($file); 
$file_size = filesize($file); 
Versuche alles was du über die Datei, auf die $file verweist, in deinem Skript verwenden möchtest ganz zu anfang deines Skripts in Variablen zu speichern (also obige Zeilen irgendwie ganz an den Anfang des Skripts bringen).
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

also der Fehler ist weg. Aber es erscheint immer diesser Fehler.

Code: Alles auswählen

if($file == ""){
      $file       = "<b>Keine Datei ausgewählt.</b>";
      $error_file = true;
      $error      = true;
    }
Steht immer keine Datei ausgewählt
Cojote
Mitglied
Beiträge: 40
Registriert: 14.10.2004 14:44

Beitrag von Cojote »

$file ist zu dem Zeitpunkt nachdem du die phpbb-Funktionen ausgeführt hast leer. Deshalb trifft die Bedingung $file=="" zu und damit wird $file auf Keine Datei ausgewählt gesetzt.
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

Wie kann ich machen das es nicht leer ist?
Cojote
Mitglied
Beiträge: 40
Registriert: 14.10.2004 14:44

Beitrag von Cojote »

versuchs doch mal wie bereits geschrieben:

an den Anfang deines Skripts z.b. $temp = $file schreiben...dann in der Schleife auf $temp == "" prüfen.

EDIT: Musst halt nachsehen ob dann nicht noch weitere Änderungen an deinem Skript notwendig werden, da du ja dann mit $temp arbeitest.
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

Jetzt erkennt er die Datei aber als 0kb obwohl die 20kb groß ist und er schreibt bei einer jpg datei Bildformat muss .jpg sein.. Was kann es jetzt sein?
Cojote
Mitglied
Beiträge: 40
Registriert: 14.10.2004 14:44

Beitrag von Cojote »

Ich würde mal vorschlagen du postest mal den PHP-Code...wie sieht denn die HTML-Ausgabe des Upload-Formulars aus?
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

PHP Code :

Code: Alles auswählen

<?
$temp = "$file";
define('IN_PHPBB', true);
$phpbb_root_path = '../';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
  
  @include("config.php");
  @mysql_connect($db_server,$db_user,$db_password) or die("Datenbankverbindung fehlgeschlagen");
  @mysql_select_db($db_name) or die("Datenbankauswahl fehlgeschlagen");


//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
if ( $userdata['session_logged_in'] ) 
{ 
    // Code, wenn ein Benutzer angemeldet ist 

  echo $header;
  echo "
          <form action=\"create_new.php\" enctype=\"multipart/form-data\" method=\"post\">
            <table border=\"0\" cellpadding=\"0\" cellspacing=\"15\" width=\"".$img_width."\">
              <tr>
                <td colspan=\"2\">";

  if($_POST["submit"]){
    $name       = $_POST["name"];
    $email      = $_POST["email"];
    $comment    = $_POST["comment"];
	$icq        = $_POST["icq"];
	$user        = $_POST["user_id"];
    $error      = false;
    $error_file = false;



    if(!ereg('^[-^!#$%&\'*+\/=?`{|}~._a-z0-9]+@([-a-z0-9]+(\.[-a-z0-9]+)*\.[-a-z0-9]{2,6}|\[[0-9]{1,3}(\.[0-9]{1,3}){3}\])$',$email)){
      $email = "<b>Muss gültig sein.</b>";
      $error = true;
    }

    if($temp == ""){
      $temp       = "<b>Keine Datei ausgewählt.</b>";
      $error_file = true;
      $error      = true;
    }

    if(strlen($comment) < 3){
      $comment = "<b>Mindestens drei Zeichen.</b>";
      $error   = true;
    }

    if(!$error_file){
      $file_info = getimagesize($file);
      $file_size = filesize($file);

      if($file_info[0] > $img_width){
        $message_width = "<b>".$file_info[0]." - Bild um ".($file_info[0] - $img_width)." Pixel zu breit.</b>";
        $error         = true;
      }
      else{
        $message_width = $file_info[0]." Pixel - OK";
      }

      if($file_info[1] > $img_height){
        $message_height = "<b>".$file_info[1]." - Bild um ".($file_info[1] - $img_height)." Pixel zu hoch.</b>";
        $error          = true;
      }
      else{
        $message_height = $file_info[1]." Pixel - OK";
      }

      if($file_info[2] != $img_format){
        $message_type = "<b>Bildformat muss ".$img_format_info." sein.</b>";
        $error        = true;
      }
      else{
        $message_type = $img_format_info." - OK";
      }

      if($file_size > $img_size){
        $message_size = "<b>".number_format($file_size/1024,0,",","")." - Datei um ".number_format(($file_size - $img_size) / 1024,0,",","")." KB zu groß.</b>";
        $error        = true;
      }
      else{
        $message_size = number_format($file_size/1024,0,",","")." KB - OK";
      }
    }

    echo "&nbsp;</td>
              </tr>
			  <tr>
                <td>ID:</td>
                <td>$user</td>
              </tr>
              <tr>
                <td>Name:</td>
                <td>$name</td>
              </tr>
              <tr>
                <td>E-Mail-Adresse:</td>
                <td>$email</td>
              </tr>
			  <tr>
                <td>ICQ:</td>
                <td>$icq</td>
              </tr>
              <tr>
                <td>Bilddatei:</td>";

    if(!$error_file){
      echo "
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td>&nbsp;&nbsp;&nbsp;- Breite:</td>
                <td>".$message_width."</td>
              </tr>
              <tr>
                <td>&nbsp;&nbsp;&nbsp;- Höhe:</td>
                <td>".$message_height."</td>
              </tr>
              <tr>
                <td>&nbsp;&nbsp;&nbsp;- Typ:</td>
                <td>".$message_type."</td>
              </tr>
              <tr>
                <td>&nbsp;&nbsp;&nbsp;- Größe:</td>
                <td>".$message_size."</td>
              </tr>";
    }
    else{
      echo "
                <td>$file</td>
              </tr>";
    }

    echo "
              <tr>
                <td>Kommentar:</td>
                <td>$comment</td>
              </tr>";

    $error_goback = "
              <tr>
                <td align=\"center\" colspan=\"2\">
                  <br><br>
                  <b>Dein Bild konnte nicht hochgeladen werden. Klicke <a href=\"JavaScript:history.back()\">hier</a> um zum Formular zurückzukehren.</b>
                </td>
              </tr>";

    if($error){
      echo $error_goback;
    }
    else{
      $row = mysql_fetch_array(mysql_query("SELECT id FROM ".$db_table_pictures." ORDER BY id DESC LIMIT 0,1;"));
      $id  = $row["id"] + 1;

      if(!(copy($file,dirname($_SERVER['PATH_TRANSLATED']).$img.$id.$img_format_info))){
        echo $error_goback;
      }
      else{
        mysql_query("INSERT INTO ".$db_table_pictures." VALUES('$id','$name','$comment',0,0,'$icq','$email','$user');");
        mail($email,"Vielen Dank für dein Bild bei $title!","Dein Bild wurde erfolgreich bei $title hochgeladen!\n\nBild ansehen:     $url/index.php?show=$id\nTopliste ansehen: $url/toplist.php\nBilder bewerten:  $url\nBild hochladen:   $url/create_new.php","From: $webmaster <$webmaster>\n");
        echo "
              <tr>
                <td align=\"center\" colspan=\"2\">
                  <br><br>
                  <b>Dein Bild wurde erfolgreich hochgeladen! Klicke <a href=\"index.php?show=$id\">hier</a> um zur Bildbewertung zu gelangen.</b>
                </td>
              </tr>";
      }
    }

    echo "
            </table>
          </form>";
  }
  else{
    echo "
                  Hier kannst du dein eigenes Bild hochladen und bewerten lassen.
                  <br><br>
                </td>
              </tr>
			  <tr>
                <td>ID</td>
                <td><input name=\"user_id\" type=\"text\" value=\"".$userdata['user_id']."\" size=\"3\" maxlength=\"30\" readonly=\"true\">
              </td>
              </tr>
              <tr>
                <td>Dein Name:</td>
                <td><input name=\"name\" type=\"text\" value=\"".$userdata['username']."\" size=\"30\" maxlength=\"30\" readonly=\"true\">
              </td>
              </tr>
              <tr>
                <td>Deine E-Mail-Adresse:</td>
                <td><input name=\"email\" size=\"30\" type=\"text\" value=\"".$userdata['user_email']."\" readonly=\"true\"></td>
              </tr>
			  <tr>
                <td>Deine ICQ-Nummer</td>
                <td><input name=\"icq\" size=\"10\" maxlength=\"9\" value=\"".$userdata['user_icq']."\" type=\"text\" readonly=\"true\"></td>
              </tr>
              <tr>
                <td>Bilddatei wählen:</td>
                <td><input name=\"file\" size=\"30\" type=\"file\"></td>
              </tr>
              <tr>
                <td valign=\"top\">Kommentar:<br>(max. ".$comment_size." Zeichen)</td>
                <td><textarea cols=\"70\" name=\"comment\" onkeyup=\"this.value=this.value.slice(0,".$comment_size.")\" rows=\"6\"></textarea></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td><input name=\"submit\" type=\"submit\" value=\"Bild hochladen & bewerten lassen\"></td>
              </tr>
            </table>
          </form><hr>";
  }

  echo $footer;
  
} 
else 
{ 
    // Code, wenn kein Benutzer angemeldet ist 
	echo "Bitte Logen Sie sich <a href=\"../login.php\">hier</a> ein.";
}
@mysql_close();
?>
Und HTML Ausgabe:

Code: Alles auswählen

<html>
  <head>
  <meta http-equiv="imagetoolbar" content="no">
    <link href="style.css" rel="stylesheet" type="text/css">
    <title>ruszone.de</title>
  </head>
  <body >
    <table align="center" border="0" cellpadding="0" cellspacing="0" width="240">
	  <div align="center"></div><tr>
        <td align="center" colspan="2">
          <a href="index.php">Bewerten</a> |
          <a href="toplist.php">Top 10</a> |
          <a href="create_new.php">Eigenes Bild hochladen</a> |
		  <a href="../index.php">Zum Forum</a>
          <hr>
        </td>
      </tr>
      <tr>
        <td align="center" colspan="2">
          <form action="create_new.php" enctype="multipart/form-data" method="post">
            <table border="0" cellpadding="0" cellspacing="15" width="240">
              <tr>
                <td colspan="2">&nbsp;</td>
              </tr>
			  <tr>
                <td>ID:</td>
                <td>2</td>
              </tr>
              <tr>
                <td>Name:</td>
                <td>admin</td>
              </tr>
              <tr>
                <td>E-Mail-Adresse:</td>
                <td>admin@abc.de</td>
              </tr>
			  <tr>
                <td>ICQ:</td>
                <td></td>
              </tr>
              <tr>
                <td>Bilddatei:</td>
                <td>&nbsp;</td>
              </tr>
              <tr>
                <td>&nbsp;&nbsp;&nbsp;- Breite:</td>
                <td> Pixel - OK</td>
              </tr>
              <tr>
                <td>&nbsp;&nbsp;&nbsp;- Höhe:</td>
                <td> Pixel - OK</td>
              </tr>
              <tr>
                <td>&nbsp;&nbsp;&nbsp;- Typ:</td>
                <td><b>Bildformat muss .jpg sein.</b></td>
              </tr>
              <tr>
                <td>&nbsp;&nbsp;&nbsp;- Größe:</td>
                <td>0 KB - OK</td>
              </tr>
              <tr>
                <td>Kommentar:</td>
                <td>fdffss</td>
              </tr>
              <tr>
                <td align="center" colspan="2">
                  <br><br>
                  <b>Dein Bild konnte nicht hochgeladen werden. Klicke <a href="JavaScript:history.back()">hier</a> um zum Formular zurückzukehren.</b>
                </td>
              </tr>
            </table>
          </form>
        </td>
      </tr>
    </table>
    <br><br>
  </body>
</html>
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

was für bedeutung hat das ausrufezeichen in php?
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Suche Hilfe hat geschrieben:was für bedeutung hat das ausrufezeichen in php?
Negation Operator......

Lässt sich am besten verdeutlichen indem man sich Gedanklich mit "nicht" übersetzt......

Beispiel

Code: Alles auswählen

if (!$blubb)
Wenn $blubb false ist tritt die Bedingung in Kraft.....Der kleine ist wunderbar geeignet um Return Values ins Gegenteil zu prüfen

preg_match(); gibt true zurück wenn ein regulärer Ausdruck passt. Wenn ich aber nur wissen will ob ein regulärer Ausdruck nicht passt müsste der Return Value false sein...

Code: Alles auswählen

if (!preg_match('!bla!',$wu))
  echo "bla konnte nicht gefunden werden !";
Einfacher kann man es wohl nicht mehr erklären......
Eine Bedingung springt immer nur bei einem true an
Antworten

Zurück zu „Coding & Technik“