PHP

Get help with installation and running phpwcms here. Please do not post bug reports or feature requests here.
Post Reply
Xdream
Posts: 86
Joined: Wed 5. Nov 2003, 12:33
Location: Dresden
Contact:

PHP

Post by Xdream »

wie kann ich denn Variablen an ein externes PHP sript weitergeben?
Ich habe eine kleine Shoutbox gebastelt welche auf der rechten seite angezeigt wird!

Ich habe das script mittels {PHP:scripts/shout.php} eingebunden.
Das formular und die einträge werden angezeigt. Nur wenn ich was in
das formular schreibe werden die values nicht weitergegeben, also an das
includierte script!

Somit wird auch nix in die Datenbank geschrieben!

DANKE!

Hier noch der Code

Code: Select all

<?php

( require ( "config.inc.php" ) ) or die ( "Bitte config.php ¸berpr¸fen!" );
function template ( $template ) {
	$template = implode ( "", file ( "templates/" . $template . ".html" ) );
	return str_replace ( "\"", "\\\"", $template );
}
$serverid  = @mysql_connect  ( $sqlhost, $sqluser, $sqlpass ) 
	or die ( "Keine Verbindung zum MySQL-Server: ". @mysql_error ( $serverid ) );
@mysql_select_db ( $database )
	or die ( "Konnte Datenbank nicht ausw‰hlen: ". @mysql_error( $serverid ) );
eval ( "echo \"".template ( "header" )."\";" );
$ip = $_SERVER['REMOTE_ADDR'];
$zeit = time();
$abgelaufen = $zeit - $dauer;
@mysql_query ( "DELETE FROM ".$table."_ip WHERE timefeld <= '$abgelaufen'" );
if ( $action != "" && $action != "none" ) {
	if ( ( $_POST['name'] != "" && $_POST['name'] != "name" ) && ( $_POST['text'] != "" && $_POST['text'] != "message" ) ) {
		$sperre = @mysql_query ( "SELECT * FROM ".$table."_ip WHERE ip = '$ip'" );
		$rows = @mysql_num_rows ( $sperre );
		if ( $rows >= 1 ) {
			eval ( "echo \"".template ( "fehler_ip" )."\";" );
		} else {
			@mysql_query ( "INSERT INTO ".$table."_ip ( ip, timefeld ) VALUES ( '$ip', '$zeit' )" );
			$result = @mysql_query ( "INSERT INTO $table (time, ip, name, text) VALUES ('".date('d.m.y - H:i')."', '".$_SERVER['REMOTE_ADDR']."', '".$_POST['name']."', '".$_POST['text']."')", $serverid );
			if ( $mailb == 1 ) {
				@mail ( $empfaenger, "Neuer Eintrag in deiner Shoutbox", "Es wurde ein neuer Eintrag in deine Shoutbox eingef¸gt.\n\nName: ".$_POST['name']."\nEintrag: ".$_POST['text']."", "From: $empfaenger" );
			}
		}
	} else {
		eval ( "echo \"".template ( "fehler_form" )."\";" );
	}
}
$count = @mysql_query ( "SELECT * FROM $table", $serverid );
$count = @mysql_num_rows ( $count );
if ( $_GET['history'] ) {
	$result = @mysql_query ( "SELECT * FROM $table ORDER BY id DESC LIMIT $limit, 10000", $serverid );
	$menu = "<a href=\"".$PHP_SELF."\">back</a>";
} else {
	eval ( "echo \"".template ( "form" )."\";" );
	$result = @mysql_query ( "SELECT * FROM $table ORDER BY id DESC LIMIT $limit", $serverid );
	if ( $count > $limit ) $menu = "<a href=\"".$PHP_SELF."?history=1\">archiv</a>";
}
while ( $daten = @mysql_fetch_array( $result ) ) {
	$text = nl2br ( $daten[text] );
	$name = htmlspecialchars ( $daten[name] );
	$datum = $daten[time];
	$text = str_replace ( "<noscript>", "", $text );
	$text = preg_replace ( "/((http(s?):\/\/)|(www\.))([\S\.]+)\b/i", "<a href=\"http$3://$4$5\" target=\"_blank\">$4$5</a>", $text );
	$text = preg_replace ( "/([\w\.]+)(@)([\S\.]+)\b/i", "<a href=\"mailto:$0\">$0</a>", $text );
	$text = str_replace ("/n", "<br>", $text );
	if ( $smilies == 1 ) {
		$text = smilies ( $text );
	}
	eval ( "echo \"".template ( "eintrag" )."\";" );
}
eval ( "echo \"".template ( "footer" )."\";" );
?>
User avatar
Oliver Georgi
Site Admin
Posts: 9906
Joined: Fri 3. Oct 2003, 22:22
Contact:

Post by Oliver Georgi »

Beim Einbetten zusätzlicher Datenbankabfragen solltest Du vorsichtiger sein - die Datenbank wird sowieso bei jedem Seitenaufruf geöffnet - solltest Du also genau darin auch die Tabelle liegen haben, die Du ansprechen möchtest, dann ist das nicht nötig - kann sogar kontraproduktiv sein.

Zeig mal ein Beispiel für Deine Anwendung - Codewüsten nützen nichts!

Außerdem scheint der relevante Code zu fehlen - nämlich der zum Formularerstellen.

Oliver
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
Xdream
Posts: 86
Joined: Wed 5. Nov 2003, 12:33
Location: Dresden
Contact:

Post by Xdream »

Code: Select all

<form name="form1" method="post" action="index.php" autocomplete="off">
<table border="0" width="96" cellpadding="0" cellspacing="0">
<tr>
	<td><input type="text" size="18" onblur="if (value == '') {value='name'}" onfocus="if (value == 'name') {value =''}" name="name" value="name" id="name" class="input" ></td>
</tr>
<tr>
	<td><input type="text" size="18" onblur="if (value == '') {value='message'}" onfocus="if (value == 'message') {value =''}" name="text" value="message" id="shout" class="input" maxlength="500"></td>
</tr>
<tr>
	<td align="right">
				<div align="left">
					<input type="submit" name="action" value="submit" class="button"></div>
			</td>
</tr>
</table>
</form>
nein das ding ist, die tabelle habe ich in einer
anderen Datenbank. Is ja denke ich auch nicht weiter tragisch.
Aber die variablen werden ja wie gesagt auch nicht weitergegeben, welches das script bearbeiten sollte!

hier noch nen link zu meiner Page: http://cms.scralle.de
User avatar
Oliver Georgi
Site Admin
Posts: 9906
Joined: Fri 3. Oct 2003, 22:22
Contact:

Post by Oliver Georgi »

Du musst Deinem Post natürlich auch die aktuellen id-Werte mitgeben - also

Code: Select all

$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"]
oder

Code: Select all

"index.php?".$_SERVER["QUERY_STRING"]
Oliver
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
Oliver Georgi
Site Admin
Posts: 9906
Joined: Fri 3. Oct 2003, 22:22
Contact:

Post by Oliver Georgi »

Noch was - wenn Du die Daten an die shoutbox.php lieferst - mach nachdem diese eingetragen worden sind einfach ein

Code: Select all

header("Location: ".$_SERVER["HTTP_REFFERER"]);
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
Xdream
Posts: 86
Joined: Wed 5. Nov 2003, 12:33
Location: Dresden
Contact:

Post by Xdream »

irgendwie passiert da nix....
ich habe das in die shoutbox.php eingesetz, genau nachdem die daten
in die mysql tabelle geschrieben wurde.
Also das Formular sendet die daten an die shoutbox.php.

hoffentlich geh ich dir nich aufn kecks :?
Post Reply