Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!

Jetzt kostenlos registrieren

Banner rotation

Fragen zum Thema PHP können hier gestellt werden

Moderatoren: Basti, Guillermo, Andreas W.

Banner rotation

Beitragvon rulze am 03.12.2008, 12:54

Hallo, habe ein kleines Problem mit dem Banner Rotation Tutorial.
Habe es auf meine wünsche angepasst, doch leider zeigt es nicht jedes mal einen Banner an, sondern nur ca. all 5 refresh den selben an. Mein Code:

Code: Alles auswählen
    <?php
$tipp = file('banner.txt');
srand ( (double) microtime()*1000000000);
$eintraege = count($tipp)-1;
$zahl = rand(0,$eintraege);
$einzeln = explode("||", $tipp[$zahl]); ?>


bild ausgabe:
Code: Alles auswählen
<div class="footer">
<? echo '<img src="'.$einzeln[1].'"
  alt="Banner" WIDTH="815" HEIGHT="200">'; ?>
   </div>


und noch der banner.txt
Code: Alles auswählen
http://url.jpg || http://url.jpg || http://url.jpg


gruss rulze
rulze
Mitglied
 
Beiträge: 909
Registriert: 09.10.2005, 19:33
Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!
 
Jetzt kostenlos registrieren

Re: Banner rotation

Beitragvon Eyecatcher am 03.12.2008, 15:14

Ich verstehe den Quellcode gar nicht, der kann doch gar nicht funktionieren?!
Herzliche Grüße,
Torben Leuschner

www.torbenleuschner.de - Mein Portfolio
www.torbenleuschner.de/blog - Artikel zu den Themen Webentwicklung, Online-Marketing & Co.

www.fokus-cms.de - fokus. cms made in germany.
Benutzeravatar
Eyecatcher
Mitglied
 
Beiträge: 727
Registriert: 01.03.2008, 21:56
Wohnort: NRW

Re: Banner rotation

Beitragvon rulze am 03.12.2008, 15:45

so halb funktioniert es...
hab mein code nun verändert ist aber immer noch nicht optimal:
Code: Alles auswählen
<?php
$tipp = file("banner.txt");
srand ( (double) microtime()*10000000);
$eintraege = count($tipp)-1;
$zahl = rand(0,$eintraege);
$einzeln = explode("||", $tipp[$zahl]); ?>

Code: Alles auswählen
<? echo '<img src="'.$einzeln[1].'"
  alt="Banner" WIDTH="815" HEIGHT="200">'; ?>

Code: Alles auswählen
http:url.jpg||http://url.jpg||http://url.jpg

warum kommt nur ca. jedem 5 refesh ein bild und immer nur das selbe, welches im banner.txt an der zweiten stelle steht?

bei url habe ich natürlich schon einen eintrag, bei welchem ein bild kommt.
gruss
rulze
rulze
Mitglied
 
Beiträge: 909
Registriert: 09.10.2005, 19:33

Re: Banner rotation

Beitragvon Eyecatcher am 03.12.2008, 15:55

Da du immer nur den zweiten Eintrag aufrufst: $einzeln[1];
Deshalb versteh ich auch nicht, warum zur Hölle die Textdatei in ein Array gepackt wird und dann ein Teil der Textdatei anhand der || aufgeteilt werden soll. Das ergbit alles keinen Sinn...
Wenn dirs in ca zwei Stunden noch keiner beantwortet hat, habe ich mehr Zeit und schreibs dir mal neu!

Edit: Ich seh grad, das Tutorial ist von Manuel, also wird der sich schon irgendwas dabei gedacht haben... Nur was :mrgreen:
Solltest mal auf den warten :thumbsup:
Herzliche Grüße,
Torben Leuschner

www.torbenleuschner.de - Mein Portfolio
www.torbenleuschner.de/blog - Artikel zu den Themen Webentwicklung, Online-Marketing & Co.

www.fokus-cms.de - fokus. cms made in germany.
Benutzeravatar
Eyecatcher
Mitglied
 
Beiträge: 727
Registriert: 01.03.2008, 21:56
Wohnort: NRW

Re: Banner rotation

Beitragvon rulze am 03.12.2008, 22:07

und sieht keiner das problem?
gruss rulze
rulze
Mitglied
 
Beiträge: 909
Registriert: 09.10.2005, 19:33

Re: Banner rotation

Beitragvon Eyecatcher am 03.12.2008, 22:39

Wie versprochen:
Code: Alles auswählen
<?php
$fp = fopen("dok.txt","r");
$inhalt = fgets($fp);

$elemente = explode('||', $inhalt);
$zufall = rand(0, (count($elemente)-1));

echo '<img src="'.$elemente[$zufall].'" alt=" " />';
?>
Herzliche Grüße,
Torben Leuschner

www.torbenleuschner.de - Mein Portfolio
www.torbenleuschner.de/blog - Artikel zu den Themen Webentwicklung, Online-Marketing & Co.

www.fokus-cms.de - fokus. cms made in germany.
Benutzeravatar
Eyecatcher
Mitglied
 
Beiträge: 727
Registriert: 01.03.2008, 21:56
Wohnort: NRW

Re: Banner rotation

Beitragvon Ingo am 03.12.2008, 22:47

Hoi.

Ich vermute, es liegt an deiner banner.txt. Die Datei müsste so aufgebaut sein,
dass in jeder Zeile die Daten zu 1 Banner stehen, also bei 3 Bannern => 3 Zeilen.
In Manus Tutorial sind das die URL der Seite und die URL des Banners, getrennt
durch ||, also:

Code: Alles auswählen
www.ABC.de || http://abc_banner.jpg
www.DEF.org || http://def_banner.png
de.GHI.com || http://ghi_banner.gif

$tipp ist ein Array mit den Zeilen der Datei (hier 3 Einträge). Der Code wählt
zufällig eine der Zeilen aus ($tipp[$zahl]), zerlegt die Zeile per explode in
2 Felder, deren zweites ($einzeln[1]) die Banner-URL enthält. Die wird dann in
das img-Tag eingebaut. - Ich denke, so war das gemeint.

Gruß, Ingo :)

Edit: Eyecatcher war schneller; seine Version passt genau auf deine Version der banner.txt.
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Wer glaubt etwas zu sein, hat aufgehört etwas zu werden.
Benutzeravatar
Ingo
Web Moderator
 
Beiträge: 1722
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Re: Banner rotation

Beitragvon rulze am 03.12.2008, 23:12

hmm langsam entsteht verzweiflung...

eyecather dein code gibt mir diese src bei img aus: {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf350

Code: Alles auswählen
$fp = fopen("banner.txt","r");
für was steht die r?

gruss rulze
rulze
Mitglied
 
Beiträge: 909
Registriert: 09.10.2005, 19:33

Re: Banner rotation

Beitragvon Christopher am 04.12.2008, 11:08

Ich vermute mal für "read"^^
Liebe Grüße
Christopher

www.japan-retter.de - Gemeinnütziger Verein Japan Hilfe Gütersloh

Bild
AMD K6 // 166MHZ // 16 MB-RAM // 2 MB On-Board Grafikchip // 1,6 GB-HDD // 4-Fach CD-Laufwerk :mrgreen:
Benutzeravatar
Christopher
Fotografie Moderator
 
Beiträge: 2569
Registriert: 18.09.2005, 10:08
Wohnort: Gütersloh(NRW)

Re: Banner rotation

Beitragvon Ulli H. am 04.12.2008, 13:54

Hi.
Ich hab mir jetzt das Tut nicht angeschaut aber ich vermute es geht um Zufallsmässig angeziegte Banner.

Ist doch easy zu lösen.

Easy Version 1: Not clickable Banners

Erstelle ein verzeichnis namens "Banner" via FTP und pack da deine Grafiken rein
Code: Alles auswählen
$dir="Banner";
$handler=opendir($dir);
while($banner=readdir($handler)){
      if($banner!="." && $banner!=".."){
          $bannerarray[].=$dir."/".$banner;
        }
}
$zufallsbanner=$bannerarray[rand(0,count($bannerarray)-1)];



Jetzt musst nur noch via echo eben $zufallsbanner an deiner Bannerstelle als src einbinden und feddich.


Easy Version 2: clickable Banners

Erstelle ein Formular mit einem Dateifeld für den Upload "banner" und einem Textfeld für die Verlinkung "url"

Und dann pack das drüber

Code: Alles auswählen
<?php
$verz="Banner";
$txtdat="url.txt";
if(!file_exists($verz)){
mkdir($verz);
}

if(!empty($_FILES['banner']['tmp_name'])){
move_uploaded_file($_FILES['banner']['tmp_name'],$verz."/".$_FILES['banner']['name']);
$name=$_FILES['banner']['name'];
$fopen=fopen($txtdat,"a");
fputs($fopen,$verz."/".$name."~#~".str_replace("http://","",$_POST['url'])."|";
fclose($fopen);
}
?>


In deine PHP wo die Banner angezeigt werden dann so

Code: Alles auswählen
$txtdat="url.txt";
if(file_exists($txtdat)){
$read=fopen($txtdat,"r");
$array=explode("|",fread($read,filesize($txtdat)));
$zufallselement=(explode("~#~",$array[rand(0,count($array))]);

$banner=$zufallselement[0];
$url="http://".$zufallselement[1];
}


Jetzt musst nur noch $banner einbinden und mit a href zu $url versehen.

Sorry wenn vieleicht Fehler drin sind. Ich habs hier ungetestet reingekloppt. Aber vom Grundprinzip müsste es gehen
Ich möchte wie mein Opa im Schlaf sterben und nicht heulend und schreiend wie sein Beifahrer.

Mentalisten sprechen Rabisch und sprengen den Geist
Fundamentalisten sprechen Arabisch und sprengen sich selbst

Von O. Kalkofe über die Urin Kellner Show
Benutzeravatar
Ulli H.
Moderator
 
Beiträge: 1054
Registriert: 11.04.2007, 21:52
Wohnort: Ludwigsburg

Re: Banner rotation

Beitragvon Manuel am 04.12.2008, 15:24

Puh, das Tutorial ist auch noch aus meinen PHP-Anfängen...wie peinlich *g*

Ich habe nur noch immer nicht verstanden wo genau das Problem liegt, denn du missachtest sowohl die :grossklein: -Schreibung, als auch Kommentare und Hinweise von anderen Mitgliedern. Heißt ich weiss nicht, was genau du ausprobiert hast, wie die Struktur deiner txt-Datei aussieht usw.
Der Quellcode müsste so jedenfalls funktionieren, denn er ist aus Version 1 von der-Webdesigner.net wo es noch eine andere Art der Bannerrotation gab.

Code: Alles auswählen
$fp = fopen("banner.txt","r");


Zu dieser Quellcodezeile: http://www.php.net/manual/de/function.fopen.php
Die Dokumentation von PHP ist meiner Meinung nach klasse. Heißt da kann man auch gerne mal einen Blick rein werfen. ;)

'r' Öffnet die Datei nur zum Lesen und positioniert den Dateizeiger auf den Anfang der Datei.


Liebe Grüße,
Manuel ;-]
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 11517
Registriert: 10.12.2004, 19:29

Re: Banner rotation

Beitragvon rulze am 04.12.2008, 18:28

@Labrar, vielen dank für dein code, hat super funktioniert.
@manu, als ich hier angefangen habe zu posten, konnte man noch schreiben wie man wollte und es gab mal auch eine diskussion darüber ob klein oder gross. das ergebnis war, dass man schreiben kann wie man möchte. hauptsache man schreib was und sagt auch danke. (meine meinung) jetzt werde ich wahrscheinlich gleich von 100 leuten gleichzeitig geschlachtet... :duckweg:

grüsse rulze
rulze
Mitglied
 
Beiträge: 909
Registriert: 09.10.2005, 19:33

Re: Banner rotation

Beitragvon Manuel am 04.12.2008, 18:41

Nein, schlachten tut hier nur der Andi... *lach* Aber der ist ja zu deinem Glück nur im 3d-Bereich :duckweg:

Nein Scherz. Ich möchte die Diskussion auch nicht von neuem lostreten. Ich muss nur ganz ehrlich zugeben, dass ich deinen Text mehrfach lesen musste und ihn dann noch immer nicht ganz verstanden habe. Eine Durchgängige Kleinschreibung erschwert das Lesen zusätzlich. Viele antworten auf solche Threads dann einfach nicht. Ich gehöre bei Zeitmangel auch dazu und ich habe nur geantwortet, weil es um mein angestaubtes Tutorial geht. ;)
Du würdest damit also allen, die dir helfen sollen ein wenig Zeit sparen und somit kommst du selbst auch schneller zu einer hilfreichen Antwort...es ist also nicht umsonst ein wenig darauf zu achten.

Danke,
Manuel ;-]
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 11517
Registriert: 10.12.2004, 19:29

Re: Banner rotation

Beitragvon mainhunter am 06.11.2011, 21:17

ich weis das dieser Threat schon 3 Jahre alt ist aber vieleicht kann mir ja einer helfen.
Und zwar geht es mir darum ob man in dem Rotationsbanner eine 10 Sekunden wechsel einabauen kann.
Meiner eins hat schon so einiges Ausprobiert hat es aber nicht geschaft vieleicht kann mir ja einer von Euch helfen.

Edit: Frage kann man nicht mehr als 5 Banner eintragen??
mainhunter
Mitglied
 
Beiträge: 1
Registriert: 06.11.2011, 06:17

Re: Banner rotation

Beitragvon Guillermo am 07.11.2011, 02:30

Wenn du nach einem bestimmten Zeitintervall Inhalte an einer Seite ändern willst musst du das clientseitig machen. Vorzugsweise mit Javascript, z.B. mit der Funktion "setTimeout()". Wenn du weißt welche Bilder du rotieren lassen willst kannst du die gleich in JavaScript einpflegen.
Wenn du Sie aber oben aus z.B. einer Datei lesen willst musst du auch zu PHP und zwangsläufig zu AJAX greifen. Es gibt dazu im Forum schon mehrere Themen, einfach ein bisschen suchen. Anbei noch ein paar links aus denen man auch schlau werden kann.

http://de.selfhtml.org/javascript/objek ... et_timeout
Ein AJAX Tutorial zum Einstieg: http://www.w3schools.com/ajax/ajax_example.asp
Alles was das Auslesen von Dateien etc. betrifft wurde oben schon ausführlich besprochen.

Viele Grüße,
Guillermo
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Moderator
 
Beiträge: 1093
Registriert: 01.10.2007, 18:18
Wohnort: Bayern

Nächste

Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste