php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.12.2004, 13:43  
Gast
 
Beiträge: n/a
Standard [Erledigt] Variable erst später definieren?

Ich habe folgendes Problem:

In einem includeten Seiteninhalt befindet sich jeweils die Variable $author, die in jedem Inhalt anders definiert ist. Es gibt z.B. 10 verschiedene Gedichte namens gedicht01...10.php und in 01 könnte die Variable $author mit = "Berthold Brecht"; belegt sein.

Auf der Hauptseite nun ist die Abfrage in der Art, dass erst die Variable $author abgefragt wird und DANN der Inhalt der jeweiligen gedichtxx.php ... natürlich geht das nicht, weil die Variable erst nach der Abfrage definiert wird. Logisch.

Kann man das denn irgendwie umgehen oder anders lösen?

Nur zur Info: Ich kann es nicht anders herum machen, weil ein bisschen HTML-Code zwischen der $author-Abfrage und dem Gedicht steht, den ich ungern in die gedichtxx.php auslagern möchte.
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 04.12.2004, 13:49  
Gast
 
Beiträge: n/a
Standard

Wie soll das gehen? Du kannst keine Variable benutzen, die nicht definiert ist. Rein logisch macht sowas auch keinen Sinn. Ich schätze mal, du hast einen grundlegenden Fehler in der Struktur deiner Scripte.

Gruß
phpfan
 
Alt 04.12.2004, 13:54  
Gast
 
Beiträge: n/a
Standard

Dann sag mir doch wie ich es korrigieren kann. Ich habe das Problem ja geschildert. Die Definition der Variable $author steckt in den jeweiligen includeten Dateien und die werden erst includet wenn <?php echo $author ?> abgefragt wurde. Wie gesagt, das Problem ist, dass dazwischen ein Stück HTML-Code kommt, das ich sonst in die includeten Dateien auslagern müsste - was nicht mein Ziel ist.

Soweit klar?
 
Alt 04.12.2004, 13:59  
Gast
 
Beiträge: n/a
Standard

Um zu sagen, wie man das am besten lösen kann, muss man mehr Informationen haben bzw. das Script kennen. Mit anderen Worten, du musst selber mal nachdenken, was du ändern musst. Du kannst auf jeden Fall nur dann was anzeigen, wenn ein Author bekannt ist.

Gruß
phpfan
 
Alt 04.12.2004, 14:05  
Gast
 
Beiträge: n/a
Standard

Also ich versuche mal ein Beispiel zu schreiben...

Das ist die index.php

PHP-Code:
<?php

$titel 
"carmina â€* gedichte";

    include 
"../allgemein/header.php";  
    include 
"menue.php";
    
?>
 [b]<font face="Verdana" size="1" color="#9B915D"><?php echo $autor ?></font>[/b]<font face="Verdana" size="1">[b]

                [/b]<font color="#C5BA7A">Weltende</font></font></td>
              </tr>
              <tr>
                <td valign="top" width="330" height="10" colspan="2">
                </td>
              </tr>
              <tr>
                <td width="330px" height="140px" valign="top" height="5">
                <div  style="width: 330px; height: 140px; overflow: auto" id="inhalt" class="divklasse">
<?php
include('configcarmina.php');

if(isset(
$_GET['act']) AND isset($dateien[$_GET['act']]))
{
//Ist eine $_GET Variable vorhanden wird PHP angewiesen
//zu prüfen ob die Datei existiert und diese dann zu laden

if(!file_exists($dateien[$_GET['act']])) echo "Die Datei ist nicht vorhanden.";

include 
$dateien[$_GET['act']];
}
else
{
//Wenn keine Variable oder Definition vorhanden ist
//lade die Fehlerseite bzw. die Indexseite
include $dateien['carmina'];
}
?>
</div></td>
<td style="width: 100px; height: 100px" valign="top" height="5">
                </td>
              </tr>
                            </table>
                            <?php
    
    
include "../allgemein/footer.php";
    
?>
Hier die configcarmina.php:

PHP-Code:
<?php
//configcarmina.php

$dateien = array(); //Erstellt einen neuen Array $dateien
$dateien['carmina'] = "carmina.php"//für jede Section ein neue Variable
$dateien['weltende'] = "weltende.php"//usw.
?>
Und letztendlich (die header / footer spar ich mir jetzt mal) ein Gedicht, hier weltende.php:

PHP-Code:
<?php $autor "Else Lasker Schüler"?>
[i]<font face="Verdana" size="1">

HIER STEHT DAS GEDICHT VON ELSE LASKER SCHÜLER

</font>[/i]
So schaut das Ganze nun aus. Und ich komme leider nicht zu einer Lösung des Problems, weil mir die Idee fehlt wie ich das sonst machen könnte.
 
Alt 04.12.2004, 14:28  
Gast
 
Beiträge: n/a
Standard

Um zu wissen, wo du dran bist, muss das doch als erstes passieren:

if(isset($_GET['act']) AND isset($dateien[$_GET['act']]))

Gruß
phpfan
 
Alt 04.12.2004, 14:35  
Gast
 
Beiträge: n/a
Standard

ach so und wie kann ich dann den HTML Code, der bisher davor steht in die IF-Funktion einfügen, so dass er nach der Zeile kommt, die du angesprochen hast?

Also diesen?:

Code:
 <font face="Verdana" size="1" color="#9B915D"><?php echo $autor ?></font><font face="Verdana" size="1">

                <font color="#C5BA7A">Weltende</font></font></td>
              </tr>
              <tr>
                <td valign="top" width="330" height="10" colspan="2">
                </td>
              </tr>
              <tr>
                <td width="330px" height="140px" valign="top" height="5">
                <div  style="width: 330px; height: 140px; overflow: auto" id="inhalt" class="divklasse">
 
Alt 04.12.2004, 14:44  
Gast
 
Beiträge: n/a
Standard

So wie ich das sehe, solltest du den kompletten Aufbau neu überdenken, das ist von vorne bis hinten nicht gerade ideal.

Und warum hast du 2x include('configcarmina.php'); ?

Gruß
phpfan
 
Alt 04.12.2004, 15:01  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von phpfan
So wie ich das sehe, solltest du den kompletten Aufbau neu überdenken, das ist von vorne bis hinten nicht gerade ideal.
Ich bin ja auch PHP-Anfänger. Ich weiß allerdings wirklich nicht wie ich das anders machen soll, denn sonst hätte ich es bereits getan. Wenn du einen Vorschlag hast, äußere ihn.

Zitat:
Zitat von phpfan
Und warum hast du 2x include('configcarmina.php'); ?
Ups! Die erste ist tatsächlich überflüssig, hab ich gar nicht mehr gemerkt. Ist nun weg. Trotzdem bleibt der Rest beim Alten und das Problem wie gehabt. Tja...
 
Alt 04.12.2004, 15:26  
Gast
 
Beiträge: n/a
Standard

Du hast kein Problem mit PHP, sondern einen Denkfehler in deinem Script. Das Denken werde ich dir aber nicht abnehmen, das solltest du schon alleine hinbekommen. Überlege, welche Information du mit $_GET['act'] bekommst, was du damit anfangen kannst und in welcher Reihenfolge du dann das Script schreiben musst. Und noch ein Tipp, überlege dir das ohne an der Tastatur zu sitzen, sondern benutze dazu wie in guten alten Zeiten ein Blatt Papier und einen Stift und zeichne einen möglichen Ablaufplan auf.

Gruß
phpfan
 
 


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
Variable als {xyz} definieren? Nightuser PHP Tipps 2008 11 21.08.2007 13:54
eine Variable für alle Funktionen definieren Wing PHP Tipps 2007 16 24.06.2007 21:02
Variable in einer Klasse definieren Simon9990 PHP Tipps 2006 5 01.02.2006 23:25
undefined variable: ... -> wie definieren? PHP Tipps 2006 19 25.01.2006 14:49
Das weiss jeder ausser mir: Mit if eine Variable definieren Mike55 PHP Tipps 2007 6 22.11.2005 13:11
Variable durch 2. Variable bestimmen Quagga PHP Tipps 2005-2 11 26.10.2005 17:34
Session Variable oder Globale Variable ? PHP Tipps 2005-2 3 27.06.2005 21:49
[Erledigt] Variable aus Ergebnis definieren! PHP Tipps 2005 7 24.05.2005 13:23
variable in url definieren - wie? djma PHP Tipps 2005 5 18.05.2005 15:27
[Erledigt] In URL Variable definieren PHP Tipps 2005 4 09.05.2005 19:08
Variable in einer Variable Beatbox PHP Tipps 2005 7 15.01.2005 15:55
Warum wird Variable nicht übergeben??? Anuschka PHP Tipps 2005 2 06.01.2005 13:22
Php Code als Variable definieren und in Template darstellen PHP Tipps 2004-2 4 31.12.2004 16:22
[Erledigt] $_SESSION verwandelt variable auf einem Server in ein Array PHP-Fortgeschrittene 2 16.12.2004 13:25
Variable definieren PHP-Fortgeschrittene 3 04.11.2004 20:02

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php variable definieren, php variable definieren später inhalt, php varible später, php variable erst am ende, php variable deklarieren später nutzen, php variablen erst später definierne, php neue sessions variable in includ datei setzen, erst definieren, variable erst definieren nach if, php abfrage variable nicht definiert, variable in php klassen definiern, php variable wird später, php variable definieren end, php variable nutzen die später deklariert wird, php variable header erst später, php variable deklarieren tastatur n, $_get variable definieren, php variablen deklarieren und in code einfügen, standard variable get definieren php

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.