php und Session Login

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag von AmShaegar »

ist esdenn nicht möglcih das ganze in eine datenbank zu packen? eine neue datenbankverbindun öfnnen ist schwiedrig, da du die vom phpBB dann schließen müsstest und danach wieder aufrufen, was sehr umständlich ist...

wenn du das ganze jetzt mit einem neuen präfix in die gleiche datenbank steckst ist das alles kein problem. (präfix wegen des überblickes.)

z.B.:
new_tabelle1
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag von sts »

Hm,

ich werde es mal versuchen, vielen Dank
PHPBB3 Fan
PHPBB3 SEO Skin||
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag von sts »

Hallo,

ich habe gerade mal versucht das Script ohne phpbb zum laufen zu bringen (Loginscript funktioniert nun). Nur leider habe ich noch ein Problem mit dem Übertragen der Daten.

Aber wie immer finde ich blinder Fisch den Fehler nicht.

Hier ist die Probeversion installiert: http://sts.redio.de/
das Admininterface (um Einträge zu erzeugen) ist mit Passwort verlinkt...

Quellentext search.php

Code: Alles auswählen

<?php print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Search</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<table width="60%" border="1" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td width="46%"><select name="selection0" onChange="location.href='search.php?cat='+this[this.selectedIndex].value">
        <?php  if(isset($cat)) { $test = $cat; } else { $test = "Bitte ausw&auml;hlen"; } ?>
        <option value="<?php print $test; ?>" selected="selected"><?php print $test; ?></option>
        <?php include("functions.php"); showcat('art', 'prod'); ?>
      </select>
    </td>
    <td width="54%">Ger&auml;teart ausw&auml;hlen</td>
  </tr>
  <tr>
    <td><select name="selection1" onChange="location.href='search.php?<?php print "cat=$cat&key="; ?>'+this[this.selectedIndex].value">
        <?php  if(isset($key)) { $test1 = $key; } else { $test1 = "Bitte ausw&auml;hlen"; } ?>
        <option value="<?php print $test1; ?>" selected="selected"><?php print $test1; ?></option>
<?php
include("config.php");
$link = mysql_connect($hostname, $benutzer, $passwort);
if(!$link) {
	die("<strong>Kann den Server nicht erreichen.</strong>");
}else{
	mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}
$res = mysql_db_query($db, "select distinct hersteller from prod where art = '$cat' ");
while($row = mysql_fetch_array($res)) {
	print "<option value=\"".$row["hersteller"]."\">".$row["hersteller"]."</option>";
}
mysql_close($link);
?>
      </select>
    </td>
    <td>Hersteller ausw&auml;hlen</td>
  </tr>
  <tr>
    <td><select name="selection2" onChange="location.href='search.php?<?php print "cat=$cat&key=$key&mod="; ?>'+this[this.selectedIndex].value">
        <?php  if(isset($mod)) { $test1 = $mod; } else { $test1 = "Bitte ausw&auml;hlen"; } ?>
        <option value="" selected="selected"><?php print $test1; ?></option>
<?php
include("config.php");
$link = mysql_connect($hostname, $benutzer, $passwort);
if(!$link) {
	die("<strong>Kann den Server nicht erreichen.</strong>");
}else{
	mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}
$res = mysql_db_query($db, "select modell from prod where hersteller = '$key'");
while($row = mysql_fetch_array($res)) {
	print "<option value=\"".$row["modell"]."\">".$row["modell"]."</option>";
}
mysql_close($link);
?>
      </select>
    </td>
    <td>Modell ausw&auml;hlen</td>
  </tr>
</table>

<br />

  <?php
if(isset($_GET["mod"])) {
print "
<table width=\"80%\" border=\"1\" align=\"center\" cellpadding=\"3\" cellspacing=\"0\">";
$link = mysql_connect($hostname, $benutzer, $passwort);
if(!$link) {
	die("<strong>Kann den Server nicht erreichen.</strong>");
}else{
	mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}

$res = mysql_db_query($db, "select bauglmod, id from prod where modell = '$mod' ");
while($row = mysql_fetch_array($res)) {
$id = $row["id"];
$bglm = $row["bauglmod"];
}

print "
  <tr>
    <td colspan=\"2\"><b>Baugleiche/&auml;hnliche Modelle:</b><br /><br />
";

$array = explode("\n",$bglm);
for($x = 0; $x < count($array); $x++) {
	$srchmod = strchr($array[$x], " ");
	if($srchmod) {
		sscanf($array[$x], "%s", $srchkey);
		print "<a href=\"search.php?cat=".$cat."&key=".$srchkey."&mod=".trim($srchmod)."\">".trim($array[$x])."</a><br />";
	} else {
		print $array[$x]."<br />";
	}
}
print "
    </td>
  </tr>
";

$res = mysql_db_query($db, "select error, solution from rep where matchcode = '$id' ");

print "
  <tr>
    <td width=\"50%\"><b>M&ouml;gliche Fehler:</b></td>
    <td><b>Ursachen/L&ouml;sungswege:</b></td>
  </tr>
";

while($row = mysql_fetch_array($res)) {
$bug = nl2br($row["error"]);
$sol = nl2br($row["solution"]);

print "
  <tr>
    <td>$bug</td>
    <td>$sol</td>
  </tr>
";
}

print "
</table>
";

}
?>
<p><a href="login.php">Admin Login</a> <br>(User: hans Passwort: dampf)</p>
</body>
</html>
Danke schon einmal im Vorraus
PHPBB3 Fan
PHPBB3 SEO Skin||
Benutzeravatar
Spezial
Mitglied
Beiträge: 135
Registriert: 15.07.2004 08:53
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Spezial »

Mir ist gerade noch von vorhin ein Fehler in der login.php aufgefallen. Dort wo die Weiterleitung zu admin.php ist, steht session_id. Dies muss durch session_id() ersezt werden.

Aber was ist jetzt dein aktuelles Problem? Verstehe ich nicht ganz.

greetz
Wenn Chuck Norris ins Wasser fällt, wird er nicht nass…aber das Wasser wird Chuck Norris.
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag von sts »

Was ich meine ist die übergabe von Geräteart zu Hersteller. Ich kann zwar eine Geräteart auswählen es werden aber nicht die Hersteller geladen?!?
PHPBB3 Fan
PHPBB3 SEO Skin||
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag von AmShaegar »

also erstmal: warum baust du 3x eine verbindung zur datenbank auf??? mach das doch ganz am anfang der datei einmal... außerdem würde ich dateien die included werden auch an den anfang stellen... falls du den inhalt dieser vorher nämlich nochmal brauchst, musst du sie nicht 2x includen.

dann: was bewirkt folgendes? du hast leider den inhalt der function.php nicht zur verfügung gestellt.

Code: Alles auswählen

showcat('art', 'prod')
zusätzlich lassen deine variabel-bezeichnungen zu wünschen übrig.. ist ist leider sehr schwer sich zurecht zu finden.
$test, $test1,[...]
das ist das, was mir bis jetzt so auffällt... ich guck noch mal weiter, aber stat dessen

Code: Alles auswählen

<?php
include("config.php");
$link = mysql_connect($hostname, $benutzer, $passwort);
if(!$link) {
   die("<strong>Kann den Server nicht erreichen.</strong>");
}else{
   mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}
$res = mysql_db_query($db, "select distinct hersteller from prod where art = '$cat' ");
while($row = mysql_fetch_array($res)) {
   print "<option value=\"".$row["hersteller"]."\">".$row["hersteller"]."</option>";
}
mysql_close($link);
?>
z.B. hätte folgendes vollkommen gereicht, sofern du die verbindung zur DB am anfang aufgebaut hättest...

Code: Alles auswählen

<?php
$res = mysql_db_query($db, "select distinct hersteller from prod where art = '$cat' ");
while($row = mysql_fetch_array($res)) {
   print "<option value=\"".$row["hersteller"]."\">".$row["hersteller"]."</option>";
}
?>
außerdem meine ich mcih erinnern zu können, dass das

Code: Alles auswählen

print "<option value=\"".$row["hersteller"]."\">".$row["hersteller"]."</option>";
so aussehen muss:

Code: Alles auswählen

print "<option value=\"".$row->hersteller."\">".$row->hersteller."</option>";
edit
ach und mir fiel gerade auf, dass du vergessen hast $cat(siehe Zeile 12) zu definieren:

Code: Alles auswählen

$cat = $_POST["cat"];
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag von sts »

Hallo AmShaegar,

vielen Dank für die Hilfe, ich bin leider noch blutiger Anfänger was das kompl. Selbermachen angeht.
Ich bin auch schon Stückchenweise weitergekommen, aber es fehlt halt am Hintergrundwissen und an der Erfahrung. Denn bekanntlich ist erfahrung durch nichts zu ersetzten als durch noch mehr erfahrung.

Hier schon einmal die:
funktions.php

Code: Alles auswählen

<?php
// Wandle Adressen in klickbare Urls um
function urlclick($text) {
	$pattern = '#(^|[^\"=]{1})(http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
	return preg_replace($pattern,"\\1<a href=\"\\2\\3\" target=\"_blank\"><u>\\2\\3</u></a>\\4",$text);
}

// Füge Einträge in select Menü ein
function showcat($field, $table) {
	include("config.php");
	$link = mysql_connect($hostname, $benutzer, $passwort);
	if (!$link) {
		die("<strong>Kann den Server nicht erreichen.</strong>");
	}else{		
		mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht &ouml;ffnen: </strong>".mysql_error() );
	}
	$res = mysql_db_query($db, "select distinct $field from $table");
	while($row = mysql_fetch_array($res)) {
		print "<option value=\"$row[$field]\">$row[$field]</option>";
	}
	mysql_close($link);   
}

// Füge Einträge in select Menü ein
function showwhere($field, $table, $condition) {
	include("config.php");
	$link = mysql_connect($hostname, $benutzer, $passwort);
	if (!$link) {
		die("<strong>Kann den Server nicht erreichen.</strong>");
	}else{		
		mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht &ouml;ffnen: </strong>".mysql_error() );
	}
	$res = mysql_db_query($db, "select distinct $field from $table where $condition");
	while($row = mysql_fetch_array($res)) {
		print "$row[$field]";
	}
	mysql_close($link);
}

?>
PHPBB3 Fan
PHPBB3 SEO Skin||
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag von sts »

edit
ach und mir fiel gerade auf, dass du vergessen hast $cat(siehe Zeile 12) zu definieren:
Code:
$cat = $_POST["cat"];
Hm,

meinst du jetzt den Filter?
PHPBB3 Fan
PHPBB3 SEO Skin||
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag von AmShaegar »

ich meine, dass du die variable $cat ausgeben willst und zwar in das select menü.. außerdem brauchst du diese ja, um die dazugehörigen einträge im näachsten menü abzufragen.. das problem ist, dass die varible leer ist, da du sie nicht definiert hast. das erste mal wo sie auftauch bekommt sie keinen wet zugewiesen sondern wird auf ihren inhalt geprüft, der folglich nicht vorhanden sein kann.
Antworten

Zurück zu „Coding & Technik“