• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Nicht valide, ;&asp;?

Lommel

New member
Hi!
Ich habe ein Problem. Meine neue Grundseite ist weitesgehend valide. Vorher war sie es, ejtzt gibt es ein Problem:
Ich habe einen Kalender per php include eingebaut, der aber - ich sag mal - drei Fehler "abwirft", und zwar folgende:
Hier!

Die Lösung habe ich eigentlich schon mal erklärt bekommen, nämlich "&" durch "&asp;" zu ersetzen. Doch das ist hier bereits im Quelltext der Kalenderdatei geschehen. Ich weiß also nicht, wo der Fehler liegt.

Da ich nicht weiß, wie man .php-Dateien zum ansehen postet, folgt jetzt leider der komplette Quelltext der Datei. Ich hoffe das wird mir nachgesehen...

PHP:
<?php
include_once 'inc/mysql.inc.php';
include_once 'inc/function.inc.php';

$year = (isset($_GET['y']) && preg_match('/^\d{4}$/',$_GET['y'])) ? $_GET['y'] : date('Y');
$month = (isset($_GET['m']) && preg_match('/^\d{1,2}$/',$_GET['m']) && ($_GET['m'] < 13)) ? $_GET['m'] : date('n');
$days = date('t',mktime(0,0,0,$month,1,$year));
$start_col = date('w',mktime(0,0,0,$month,1,$year))-1;
$rows = ($start_col == 5 || $start_col == -1) ? ceil($days/7)+1 : ceil($days/7);
$day=1;
$monthname = array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
$prev_month = ($month==1) ? 12 : $month-1;
$prev_year = ($month==1) ? $year-1 : $year;
$next_month = ($month==12) ? 1 : $month+1;
$next_year = ($month==12) ? $year+1 : $year;
$day = 1;

echo '<div id="calendarbox">';
echo '<table><tr class="border_trl"><th><a href="'.basename($_SERVER['PHP_SELF']).'?m='.$prev_month.'&y='.$prev_year.'">«</a></th><th colspan="5">'.$monthname[$month-1].' '.$year.'</th><th><a href="'.basename($_SERVER['PHP_SELF']).'?m='.$next_month.'&y='.$next_year.'">»</a></th></tr>';
echo '<tr class="border_trl"><th class="dayname">Mo</th><th class="dayname">Di</th><th class="dayname">Mi</th><th class="dayname">Do</th><th class="dayname">Fr</th><th class="dayname">Sa</th><th class="dayname">So</th></tr>';

for($a=0;$a<$rows;$a++){
	echo '<tr>';
	$start_col = ($start_col == -1) ? 6 : $start_col;
	if($start_col>0 && $day==1){
		for($aa=$start_col;$aa>0;$aa--){
			echo '<td class="empty"> </td>';
		}
	}
	
	for($b=$start_col;$b<7;$b++){
		$cdb->select(sprintf("select substring(eventtime,1,5) _eventtime, topic, shortdesc from e_event where dayofmonth(eventdate) = %d && month(eventdate) = %d && year(eventdate) = %d order by eventtime asc",$day,$month,$year));
		
		if($cdb->getRecords()>0){
			$js_arr = array();
			while($row = $cdb->fetchArray()){
				$js_arr[]= 'new Array(\''.$row['_eventtime'].'\',\''.stripslashes($row['topic']).'\',\''.stripslashes($row['shortdesc']).'\')';
			}
			$js_arr = 'new Array('.join(',',$js_arr).')';
		}
		if(!isset($js_arr)){
			$s_day = ($day == date('j') && $month == date('n') && $year == date('Y')) ? '<td class="today">'.$day.'</td>' : '<td>'.$day.'</td>';
		}else{
			$s_day = ($day == date('j') && $month == date('n') && $year == date('Y')) ? '<td class="today" onmouseover="create_list('.$js_arr.')" onmouseout="remove_list()"><a href="#">'.$day.'</a></td>' : '<td class="event" onmouseover="create_list('.$js_arr.')" onmouseout="remove_list()"><a href="#">'.$day.'</a></td>';
		}
		echo ($day>$days) ? '<td class="empty"> </td>' : $s_day;
		$day++;
		unset($js_arr);
	}
	echo '</tr>';
	$start_col = 0;
}
echo '</table></div>';
?>
<div id="eventbox"></div>

Weiß jemand, wo das Problem liegt? Vielen Dank, Gruß!
 
Moin!

Hab mir nur den geparsten Code angesehen und den Validator. Deine PHP Session-Id wird offensichtlich automatisch angehängt und zwar lediglich mit '&' und eben nicht '&' - das kannst Du aber in der PHP-Konfiguration einstellen...

Ahoi - Pit
 
ich vermute mal stark in der function.inc.php, wenn du den Fehler nicht findest, kannst du sie ja hier mal posten ;)
 
Hi!

Mach mal das hier, bevor die relevanten Links auftauchen:
ini_set('arg_separator.output','&');

Ahoi - Pit
 
...das hier ist die function.inc.php...

PHP:
<?php
function getInfo($header=NULL,$msg=NULL,$desc=NULL){
	$out = '';
	if(is_array($msg)){
		$msg = array_unique($msg);
		foreach($msg as $v){
			$out .= sprintf('<dt>%s</dt>',$v);
		}
	}else{
		$out = $msg;
	}
	if(!empty($desc)){
		printf('<div class="infobox"><div class="infoheader">%s</div><div class="infocontent">%s<dl>%s</dl></div></div>',$header,$desc,$out);
	}else{
		printf('<div class="infobox"><div class="infoheader">%s</div><div class="infocontent">%s</div></div>',$header,$out);
	}
}
?>


Sorry, pit-r, ich kann Dir hierbei

ini_set('arg_separator.output','&');

niht folgen. Wo, in welcher Datei..?

Danke, Gruß
 
Die Zeile einfach bevor du irgendwelche Links ausgibst ausführen lassen. Wenn du nicht genau weisst wo, tu's einfach an den Anfang deines Dokuments.
 
Moin!

Fein, daß es funzt aber bist Du sicher Post #5 richtig durchgelesen zu haben?

Ahoi - Pit
 
@Lommel:
PHP:
ini_set('arg_separator.output','&');
mit der Funktion init_set() kannst du Einstellungen aus der php.ini überschreiben. Normalerweise ist der Seperator von GET-Variablen "&", und mit dieser Funktion setzt du sie auf "&"

Edit: Das gilt dann übrigens nur von php generierten links, aber deine session gehört da ja rein
 
Zuletzt bearbeitet:
Fein, daß es funzt aber bist Du sicher Post #5 richtig durchgelesen zu haben?

Ja, schon. Aber dann habe ich es eben "oben" unter Session-Start eingefügt. Bei den relevanten Links wusste ich nicht, wo ich das platzieren sollte.
 
Zurück
Oben