php.de

ZurĂŒck   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen fĂŒr Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.01.2012, 22:50  
Neuer Benutzer
 
Registriert seit: 04.01.2012
BeitrÀge: 4
PHP-Kenntnisse:
AnfÀnger
robert74 befindet sich auf einem aufstrebenden Ast
Standard Fotogallerie

Hallo!

HĂ€tte gerne eine kleine Fotogallerie programmiert, doch es funktioniert nicht so wie ich will.
Statt dem Bild wird nur ein Image angezeigt (daß er kein Bild findet), mit zurĂŒck und weiter funktionierts auch nicht.

Kann mir jemand weiterhelfen??
PHP-Code:
<?php
// Alle Bilder
$bilder = array("bilder/01.jpg","bilder/02.jpg","bilder/03.jpg","bilder/04.jpg"); 
 
// Bild-ID vorinitialisieren
$bild 0;
 
// Bild anzeigen
echo '<img src="' $bilder[$bild] . '"/>';
 
// PrĂŒfen, ob der ZurĂŒck angezeigt werden soll
if($bild 0)
  echo 
'<a href="?bild=' $bild '">zur&uuml;</a>';
// PrĂŒfen, ob der Weiter angezeigt werden soll
if($bild count($bilder)-1)
  echo 
'<a href="?bild=' $bild '">weiter</a>';
?>
robert74 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code FlĂŒsterer

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

Alt 04.01.2012, 23:02  
Neuer Benutzer
 
Registriert seit: 25.09.2010
BeitrÀge: 21
PHP-Kenntnisse:
Fortgeschritten
SlimShady95 befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php
// Alle Bilder
$bilder = array("bilder/01.jpg","bilder/02.jpg","bilder/03.jpg","bilder/04.jpg"); 
 
// Bild-ID vorinitialisieren
if(isset($_GET['bild']) AND is_numeric($_GET['bild'])) {
    
$bild $_GET['bild'];
} else {
    
$bild 0;
}
 
// Bild anzeigen
echo '<img src="' $bilder[$bild] . '"/>';
 
// PrĂŒfen, ob der ZurĂŒck angezeigt werden soll
if($bild 0)
  echo 
'<a href="?bild=' $bild '">zur&uuml;</a>';
// PrĂŒfen, ob der Weiter angezeigt werden soll
if($bild count($bilder)-1)
  echo 
'<a href="?bild=' $bild '">weiter</a>';
?>
Das sollte das Problem mit "zurĂŒck" und "weiter" fixen.

MfG Manuel
SlimShady95 ist offline   Mit Zitat antworten
Alt 04.01.2012, 23:23  
Neuer Benutzer
 
Registriert seit: 04.01.2012
BeitrÀge: 4
PHP-Kenntnisse:
AnfÀnger
robert74 befindet sich auf einem aufstrebenden Ast
Standard Fotogallerie 2

Danke fĂŒr die rasche Hilfe!!!

Es wird das Foto schon angezeigt, nur "weiter" sind als normaler Text angezeigt, "zurĂŒck" ĂŒberhaupt nicht.
robert74 ist offline   Mit Zitat antworten
Alt 04.01.2012, 23:25  
Neuer Benutzer
 
Registriert seit: 25.09.2010
BeitrÀge: 21
PHP-Kenntnisse:
Fortgeschritten
SlimShady95 befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
// PrĂŒfen, ob der ZurĂŒck angezeigt werden soll 
if($bild 0) {
    echo 
'<a href="?bild=' . ($bild 1) . '">zur&uuml;</a>';
}
// PrĂŒfen, ob der Weiter angezeigt werden soll 
if($bild count($bilder)-1) {
    echo 
'<a href="?bild=' . ($bild 1) . '">weiter</a>';

Edit:
Zitat:
Zitat von robert74 Beitrag anzeigen
..."zurĂŒck" ĂŒberhaupt nicht.
Sollte es (deinem Script nach) beim 1. Bild auch nicht :P


Und bitte

MfG Manuel
SlimShady95 ist offline   Mit Zitat antworten
Alt 04.01.2012, 23:37  
Neuer Benutzer
 
Registriert seit: 04.01.2012
BeitrÀge: 4
PHP-Kenntnisse:
AnfÀnger
robert74 befindet sich auf einem aufstrebenden Ast
Standard

Stimmt natĂŒrlich.

Aber weiter wird trotzdem als Text angezeigt, das ich nicht anklicken kann.
Was mach ich da falsch?
robert74 ist offline   Mit Zitat antworten
Alt 04.01.2012, 23:41  
Neuer Benutzer
 
Registriert seit: 25.09.2010
BeitrÀge: 21
PHP-Kenntnisse:
Fortgeschritten
SlimShady95 befindet sich auf einem aufstrebenden Ast
Standard

Ich hab dein Script mal ein wenig ĂŒberarbeitet, weil mir grad langweilig war. Jetzt kannst du auch Beschreibungen angeben. Funktioniert ohne Probleme :P

PHP-Code:
<?php 
// Alle Bilder 
$ordner         'bilder/';
$bilder         = array('01.jpg''02.jpg''03.jpg''04.jpg');
$beschreibungen = array('Bild 1''Bild 2''Bild 3''Bild 4');
  
// Bild-ID vorinitialisieren 
if(isset($_GET['bild']) AND is_numeric($_GET['bild'])) { 
    
$bild $_GET['bild']; 
} else { 
    
$bild 0

  
// Bild anzeigen 
if(isset($bilder[$bild])) {
    echo 
'<img src="' $ordner $bilder[$bild] . '" /><br />';
}

// Beschreibung anzeigen
if(isset($beschreibungen[$bild])) {
    echo 
$beschreibungen[$bild] . '<br />';

  
// PrĂŒfen, ob der ZurĂŒck angezeigt werden soll 
if($bild 0) {
    echo 
'<a href="?bild=' . ($bild 1) . '">zur&uuml;ck</a>&nbsp;&nbsp;'
}

// PrĂŒfen, ob der Weiter angezeigt werden soll 
if($bild count($bilder)-1) {
    echo 
'<a href="?bild=' . ($bild 1) . '">weiter</a>'
}
?>
MfG Manuel
SlimShady95 ist offline   Mit Zitat antworten
Alt 05.01.2012, 00:08  
Neuer Benutzer
 
Registriert seit: 04.01.2012
BeitrÀge: 4
PHP-Kenntnisse:
AnfÀnger
robert74 befindet sich auf einem aufstrebenden Ast
Standard

Hallo Manuel!
Danke! Super!

Das wollte ich dann irgendwann machen wenn ich Zeit hab...
Die Beschreibungen folgen dann bald.
Außerdem muss ich noch viele Schönheitsfehler korrigieren, und genauso viele unpraktische Lösungen Ă€ndern. Bin erst mal froh, wenn alles mal online ist, der Rest kommt spĂ€ter. Doch ich mach das lieber selber, das interessiert mich mehr, als es machen zu lassen. Auch wenn ich dann doch wieder auf Hilfe angewiesen bin.

Programmiere eher in C++ ( auch nicht gut).

Wenns Dir gerade so fad ist: Meine Homepage und auch mein Hobby:

www.robomoji.at

Die Links stimmen noch nicht alle, Morgen aber!

lg Robert
robert74 ist offline   Mit Zitat antworten
Alt 05.01.2012, 00:14  
Neuer Benutzer
 
Registriert seit: 25.09.2010
BeitrÀge: 21
PHP-Kenntnisse:
Fortgeschritten
SlimShady95 befindet sich auf einem aufstrebenden Ast
Standard

Nett^^
Schau ich mir spÀter an.
Hab dir ne Nachricht geschrieben.

MfG Manuel
SlimShady95 ist offline   Mit Zitat antworten
Alt 05.01.2012, 04:57  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
BeitrÀge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht ĂŒber MSN schicken
Standard

PHP-Code:
$path 'bilder/';
$fileData = array(
   array(
'filename' => '01.jpg''description' => 'Bild 1'),
   array(
'filename' => '02.jpg''description' => 'Bild 2'),
   array(
'filename' => '03.jpg''description' => 'Bild 3'),
   array(
'filename' => '04.jpg''description' => 'Bild 4')
);

$patternImage '<img src="{pathOf}" alt="{description}" />';
$patternNav '<a href="./?bild={imageID}">{action}</a>';

$bildID = isset($_GET['bild']) ? is_numeric($_GET['bild']) ? (int)$_GET['bild'] : false false;
$bildID array_key_exists($bildID$fileData) ? $bildID false;
$hasPrev array_key_exists($bildID$fileData) && $bildID 0;
$hasNext array_key_exists($bildID$fileData) && ( count($fileData) - $bildID );

if ( 
$bildID ) {
   
$html[] = str_replace(
      array(
'{pathOf}','{description}'),
      array(
$path.fileData[$bildID]['filename'], $fileData[$bildID]['description']), 
      
$patternImage
   
);
   
   if ( 
$hasPrev ) {

   
$html[] = str_replace(
      array(
'{imageID}''{action}'),
      array(
$bildID -1'vorheriges Bild'),
      
$patternNav
   
);

   }

   if ( 
$hasNext ) {

   
$html[] = str_replace(
      array(
'{imageID}''{action}'),
      array(
$bildID 1'folgendes Bild'),
      
$patternNav
   
);

   }

   echo 
join('<br />'$html);
}
else {
   echo 
'The requested Image has not been stored yet.';

- Links nicht auseinander schupsen, sondern per CSS "sehbar trennen".
- Eingang ( Initialisieren ), Verarbeiten, Ausgeben -> EVA
- Dinge die sich "globalisieren", global vorbereiten, du drĂŒckst bestimmte "Dinge" in ein Muster ( Pattern ), ergo pack halt "Bild-Dateiname" und "Bild-Beschreibung in ein vorbereitetes Muster.
- Sammeln von Ausgabe-Daten ( we call it "Puffern" ), ermöglicht das nachtrĂ€gliche setzen von Cookies und folgende ausgeben der entgĂŒltigen Webseite. So umschifft man prinzipiell schon mal "Could not send Header-Information, Output starts at Line XY"-Fehler.

Generell kann man auch die Initialisierung von der Eingabeverarbeitung trennen ( hab ich hier nicht gemacht ), nennt sich dann "Bootstrapping" ( Initialisierung und "Sanitization and Prepare" ( Eingabeverarbeitung ).

Nur mal als Anregung.

P.S.: Der QuÀlcode ist hier im Foreneditor entstanden, also aus dem Kopf getippt. Falls Fehler drin sind bitte melden.

Edit: Prinzipiell kann man sich das ganze auch schenken und einfach ĂŒbers Dateisystem traversieren. Logik der Erkennung kannst du in dem Fall so ausbauen das die Meta-Daten des JPEG-Bildchen genutzt werden. Unteranderem passen da auch noch Kommentare, Copyrights und andere Informationen rein, die PHP durchaus in der Lage ist auszulesen.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darĂŒber bald mehr.

GeÀndert von tr0y (05.01.2012 um 05:06 Uhr).
tr0y ist offline   Mit Zitat antworten
Alt 05.01.2012, 11:31  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
BeitrÀge: 701
PHP-Kenntnisse:
AnfÀnger
jspit wird schon bald berĂŒhmt werden
Standard

Mir gefÀllt die Lösung von tr0y und da ich grad dabei bin, eine eigene kleine Debug-class zu testen kam mir das grad recht. Bei mir funktioniert es

PHP-Code:
$path 'bilder/';
$fileData = array(
   array(
'filename' => '01.jpg''description' => 'Bild 1'),
   array(
'filename' => '02.jpg''description' => 'Bild 2'),
   array(
'filename' => '03.jpg''description' => 'Bild 3'),
   array(
'filename' => '04.jpg''description' => 'Bild 4')
);

$patternImage '<img src="{pathOf}" alt="{description}" />';
$patternNav '<a href="'.basename($_SERVER["SCRIPT_NAME"]).'?bild={imageID}">{action}</a>'//edit: scriptname mit rein

$bildID = isset($_GET['bild']) ? (int)$_GET['bild'] : ;  //edit: jetzt start ohne/nichtnumerischen parameter mit $bildID=0  
//$hasPrev , $hasNext raus 
$bildID array_key_exists($bildID$fileData) ? $bildID false;

if ( 
$bildID !== false ) { //edit: so auch fĂŒr $bildID == 0
   
$html[] = str_replace(
      array(
'{pathOf}','{description}'),
      array(
$path.$fileData[$bildID]['filename'], $fileData[$bildID]['description']), //edit: $
      
$patternImage
   
);
   
   if ( 
$bildID ) {  //edit

     
$html[] = str_replace(
        array(
'{imageID}''{action}'),
        array(
$bildID -1'vorheriges Bild'),
        
$patternNav
     
);

   }

   if ( 
$bildID count($fileData) - ) {  //edit

     
$html[] = str_replace(
        array(
'{imageID}''{action}'),
        array(
$bildID 1'folgendes Bild'),
        
$patternNav
     
);

   }

   echo 
join('<br />'$html);
}
else {
   echo 
'The requested Image has not been stored yet.';

jspit ist offline   Mit Zitat antworten
Antwort


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
Fotogallerie mit Adminbereich _webdesign_ Scriptbörse 1 23.06.2009 22:27
Gesucht : Einfache Fotogallerie Beitragsarchiv 2 14.02.2005 12:11
neue fotogallerie... PHP Tipps 2004 5 15.06.2004 19:14


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