Bildschirmausgabe gibt ungewollte Zeichen wieder
Jan
- php
0 Alex0 Alex
0 Steel0 Der Martin0 Jan - der jetzt schlauer ist ;-)
Hallo
habe in PHP einen Kalender, den ich als Funktion abrufen kann. Jedoch bekomme ich eine Bildschirmausgabe, die nicht exakt das wiedergibt, was ich programmiert bzw. mit HTML dargestellt habe. Zu sehen ist das hier: Bildschirmausgabe
Es erscheinen auf der linken Seite des Bildschirms mehrere kleine Rubriken. U.a. auch die Rubrik "Gigkalender". Dort kommt es zwischen dem eigentlichen Kalender und dem darüberliegenden Strich <hr> zur Ausgabe von "\n". Das ist von mir nicht gewollt.
Der PHP-Code sieht wie folgt aus:
// Gigkalender -------------------------------------------------------------------------------------------------------------------------------------
function gigkalender()
{
// Monat und Jahr festlegen
$monat=date('n');
$jahr=date('Y');
// Erster des Monats ist der wie vielte Tag im Kalender
$erster=date('w', mktime(0,0,0,$monat,1,$jahr));
// Tage im Monat insgesamt
$insgesamt=date('t', mktime(0,0,0,$monat,1,$jahr));
// Monatsnamen in Array ablegen
$heute=date('d');
$monate=array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
// Gigabfrage ob überhaupt Gigs in diesem Monat des Jahres anstehen
$gigabfrage=mysql_query("SELECT * FROM gigs WHERE JAHR = '$jahr' AND MONAT = '$monat' ORDER BY TAG DESC;");
$gig_kal=@mysql_fetch_array($gigabfrage);
// Bedingung: Es muss ein Gig in der Zukunft des jetzigen Monats liegen damit eine Bildschirmausgabe des Gigkalenders erfolgt
if ($gig_kal['TAG'] >= $heute)
{
// Ausgabe des Kalenders 1. Zeile mit Wochentagen
if($erster==0){$erster=7;}
// Überschrift
echo '<div align="center"><hr color="#FFFFFF" width="100" size="1">';
echo '<div id="rip">Gigkalender</div>';
echo '<hr color="#FFFFFF" width="100" size="1">';
// Kalenderausgabe
echo '<table frame="1" bordercolor="#252525" style="border-collapse: collapse" cellpadding="4" cellspacing="3">';
echo '<th colspan=7 align=center style="font-size:12pt; font-family:Arial; color:#ffffff; background-color:#252525;" >';
echo ' '.$monate[$monat-1].' '.$jahr.' ';
echo '</th>';
echo '<tr>
<td style="font-size:8pt; font-family:Arial; color:#252525"><b>Mo</b>
</td><td style="font-size:8pt; font-family:Arial;color:#252525"><b>Di</b></td>';
echo '<td style="font-size:8pt; font-family:Arial;color:#252525"><b>Mi</b></td>
<td style="font-size:8pt; font-family:Arial;color:#252525"><b>Do</b></td>';
echo '<td style="font-size:8pt; font-family:Arial;color:#252525"><b>Fr</b></td>
<td style="font-size:8pt; font-family:Arial;color:#ffffff"><b>Sa</b></td>';
echo '<td style="font-size:8pt; font-family:Arial;color:#ffffff"><b>So</b></td></tr>';
echo '<tr>\n';
// Start der Tage
$i=1;
// Leere Kästchen zu beginn des Kalenders
while($i<$erster)
{
echo '<td> </td>'; $i++;
}
// Start der Tage
$i=1;
// Wenn $i kleiner als die Gesamtanzahl der Tage des Monats, dann durchlauf diesen Bereich
while($i<=$insgesamt)
{
// Gigabfrage
$gigabfrage=mysql_query("SELECT * FROM gigs WHERE JAHR = '$jahr' AND MONAT = '$monat' AND TAG = '$i';");
$gig_kal=@mysql_fetch_array($gigabfrage);
// Beginn der Zahlen in der Kalendertabellenausgabe
$rest=($i+$erster-1)%7;
// Heute - Hintergrundfarbe
if($i==$heute && $i!=$gig_kal['TAG'] && $monat==date('n'))
{
echo '<td style="font-size:8pt; font-family:Arial; background:#ffffff;" align=center>';
}
else if($i==$gig_kal['TAG'])
{
echo '<td style="font-size:8pt; font-family:Arial; background:#FF0000;" align=center>';
}
// Alle anderen Tage außer Heute
else
{
echo '<td style="font-size:8pt; font-family:Arial; color:#252525;" align=center>';
}
// Heute - Schriftfarbe
if($i==$heute && $i!=$gig_kal['TAG'] && $monat==date('n'))
{
echo '<span style="color:#000000;">'.$i.'</span>';
}
else if($i==$gig_kal['TAG'])
{
echo '<span style="color:#FFFFFF;"><a href="http://www.palzrock.de/finerip/termine.php" target="_self" title="'.$gig_kal[WAS].' in '.$gig_kal[WO].'"><blink>'.$i.'</blink></a></span>';
}
// Alle Samstage
else if($rest==6 && $i!=$gig_kal['TAG'])
{
echo '<span style="color:#ffffff">'.$i.'</span>';
}
else if($rest==6 && $rest==$gig_kal['TAG'])
{
echo '<span style="color:#ffffff" background:#ff0000;"><a href="http://www.palzrock.de/finerip/termine.php" target="_self" title="'.$gig_kal[WAS].' in '.$gig_kal[WO].'"><blink>'.$i.'</blink></a></span>';
}
// Alle Sonntage
else if($rest==0 && $i!=$gig_kal['TAG'])
{
echo '<span style="color:#ffffff">'.$i.'</span>';
}
else if($rest==0 && $rest==$gig_kal['TAG'])
{
echo '<span style="color:#ffffff" background:#ff0000;"><a href="http://www.palzrock.de/finerip/termine.php" target="_self" title="'.$gig_kal[WAS].' in '.$gig_kal[WO].'"><blink>'.$i.'</blink></a></span>';
}
// Alle anderen Tage
else
{
echo $i;
}
// Ende der Kalendertabellenzeile
echo "</td>\n";
// Ende des Kalenders
if($rest==0)
{
echo '</tr><tr>';
}
// $i erhöhen für nächste Zeile
$i++;
}
// Ende der Kalendertabelle
echo '</tr>';
echo '</table>';
// Schlussstrich und Ende der <div center>-Klammer vor der Überschrift
echo '<hr color="#FFFFFF" width="100" size="1"></div>';
// Freizeile zur ggf. nächsten Bildschirmausgabe
echo '<p> </p>';
// ENDE der Bedingung "Es muss ein Gig in der Zukunft des jetzigen Monats liegen damit eine Bildschirmausgabe des Gigkalenders erfolgt"
}
// Ende der Funktion gigkalender();
}
Danke für jeden hilfreichen Tipp!
Hallo,
suche in deinem Quelltext nach \n.
Das soll für einen Zeilenumbruch (im Quelltext) stehen. Das funktioniert aber nur wenn es in PHP in doppelten Anführungszeichen steht. Deshalb siehst du dein erstes \n in der Ausgabe (da sind single Quotes) und dein zweites \n siehst du nicht.
Wenn du das änderst sollte es klappen.
Gruß
Alex
PS: Wenn du kurz Zeit hast würde ich dich bitten, an meiner Umfrage für meine Bachelorarbeit teilzunehmen:
http://bittersmann.de/tests/border-radius
Danke!
PS: Wenn du kurz Zeit hast würde ich dich bitten, an meiner Umfrage für meine Bachelorarbeit teilzunehmen:
http://bittersmann.de/tests/border-radius
Danke!
Mist ich hatte vorher einen anderen Link (auch interessant) kopiert. Der richte ist der hier:
http://www.voycer.de/umfrage.html?sid=89674
Moin!
Brutaler Code. Du solltest wirklich mal aufraeumen.
// Ende der Kalendertabellenzeile
echo "</td>\n";
Hi!
Brutaler Code. Du solltest wirklich mal aufraeumen.
// Ende der Kalendertabellenzeile
echo "</td>\n";
Auch diese Zeile kann man aufräumen, obwohl sie nicht die Ursache für das Problem ist.
Lo!
Ach Mist. Jetzt hab ich die tds genommen statt der trs... Ja. Stimmt. Danke fuer die Korrektur.
Das kommt davon.
Na ja,
der Code ist einwandfrei kommentiert und recht übersichtlich angeordnet. Wenn das "brutal" sein soll, dann hast Du aber noch keine wirklich "fiesen" Codes gesehen.
Hier kann man wenigstens flüssig runterlesen. Aber jeder macht das ja offensichtlich anders...
Gruß
Moin!
Brutaler Code. Du solltest wirklich mal aufraeumen.
// Ende der Kalendertabellenzeile
echo "</td>\n";
Hi,
Dort kommt es zwischen dem eigentlichen Kalender und dem darüberliegenden Strich <hr> zur Ausgabe von "\n". Das ist von mir nicht gewollt.
und warum schreibst du es dann so?
echo '<tr>\n';
So long,
Martin
Danke an alle!
Natürlich ist es echo '<tr>\n';
Ärgere mich über mich selbst, da ich vor lauter Bäumen den Wald nicht mehr gesehen habe. Habe am Anfang der Tabelle (da wo das "\n" auch steht) gesucht und nicht dort, wo es eigentlich zu suchen war.
Danke Euch allen für die Hilfe !!!