PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL: Einzelnen Wert in php-Datei auslesen >_>'



!ckS
21.07.2005, 20:18
eines vorweg:
ich habe NULL ahnung von php-scripting oder mysql-datenbanken, aber ich denke es sollte hier jedem möglich sein, mir zu erklären, wie ich einen bestimmten, einzelnen wert aus meiner datenbank in einer beliebigen php-datei auslesen kann. -_-

alles, was ich haben will, ist der komplette php-tag, den ich dafür in meinen quelltext einfügen muss. bitte keine links zu irgendwelchen blöden tutorials oder dergleichen, ich will einfach nur das fertige stück script zum einfügen, wenns recht ist ;)
natürlich kann ich bestimmte werte wie db-benutzername und -passwort (zum connecten zur datenbank) selber einfügen, aber alles andere müsst ihr mir zeigen ^^'

es handelt sich um ein phpbb-forum. die betroffene tabelle heißt phpbb_topics und enthält verschiedene felder wie topic_id, topic_title, topic_poster, topic_replies, topic_views, etc.

ich möchte den topic-replies-wert des topics mit der ID xxx ausgelesen haben. wie geht das? bitte den kompletten php-tag :rolleyes:

fanrpg
21.07.2005, 20:23
$sql = "SELECT `topic_id`, `topic_replies` FROM `phpbb_topics` ORDER BY topic_id DESC";
$query = mysql_query($sql);
while($row = mysql_fetch_object($query))
{
echo $row->topic_id;
echo $row->topic_replies;
}

So das wars

Niji-chan
21.07.2005, 20:29
also mal sehn:


<?php
$host = "Geheim";
$pass = "";
$user = "root";
$db = "datenbank";

$link = mysql_connect($host, $user, $pass)
or die("Keine Verbindung möglich: " . mysql_error());

mysql_select_db($db) or die("Auswahl der Datenbank fehlgeschlagen");

$query = "SELECT * FROM phpbb_topics";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());


$abfrage = "SELECT topic_replies FROM phpbb_topics Where topic_id=1";
$ergebnis = mysql_query($abfrage);
$replies = mysql_result($ergebnis);

echo $replies;

?>

Bei

$abfrage = "SELECT topic_replies FROM phpbb_topics Where topic_id=1";
einfach die ID nach "topic_id=" angeben, die du haben willst...

(ohne Gewähr ;) - ich kann auch nich alles)

EDIT: bin halt zu langsam... :\

dadie
21.07.2005, 20:36
<?php

$host = "localhost";

$pass = "DEIn PASSWORT";

$user = "DEINUSERNAME";

$db = "DATENBANK NAME";


@mysql_connect($host, $user, $pass) OR die(mysql_error());


mysql_select_db($db) OR die(mysql_error());

unset($host);
unset($pass);
unset($user);
unset($db);


$sql = "SELECT `topic_id`, `topic_replies` FROM `phpbb_topics` WHERE `topic_id` = '$_GET[SUCH_ID]' ORDER BY `topic_id` DESC";
$query = mysql_query($sql);
$Daten = mysql_fetch_assoc($query);

echo "Der topic_replies wert von ".$_GET[SUCH_ID]." ist ".$Daten[topic_replies] ;
?>


Ungetestet müsste klappen.

In einer leere datei Kopieren die endung in .php ändern.

Die Topic ID erhält das Scritp wie folgt :

In der Url folgendes an die adresse anhängen : ?SUCH_ID=xxx
also z.B. http://fkfhkhg.de/kdjhf/hh/wasweissich.php?SUCH_ID=xxx


edit:

>.< mal sehn welches script klappt ^^,

Dingsi
21.07.2005, 20:38
<?php

$host = "localhost"; // Wird wahrscheinlich so bleiben
$user = "username"; // Anpassen
$pass = "passwort"; // Anpassen

$db = "database"; // Rate!

mysql_connect($host, $user, $pass) or die(mysql_error());

mysql_select_db($db) or die(mysql_error());

$topic_id = xxx; // Wazzap.

$result = mysql_query("SELECT `topic_replies` FROM `phpbb_topics` WHERE `topic_id` = '$topic_id'") or die(mysql_error());

$topic_replies = mysql_result($result, 0);

echo $topic_replies;

?>Die mMn einfachste und sauberste Möglichkeit. (Bei den anderen Vorschlägen fehlte entweder was, oder es waren unnötige Sachen zuviel da).

Dadies Skript ist übrigens exploitable.

Hatte noch nen Fehler.

codec
21.07.2005, 20:47
<?php

$host = "localhost"; // Wird wahrscheinlich so bleiben
$user = "username"; // Anpassen
$pass = "passwort"; // Anpassen

$db = "database"; // Rate!

mysql_connect($host, $user, $pass) or die(mysql_error());

mysql_select_db($db) or die(mysql_error());

$topic_id = $_GET['topic_id'];
$topic_id = mysql_escape_string($topic_id); // zOMG!1 MySQL Injection prevented. :/

$result = mysql_query("SELECT `topic_replies` FROM `phpbb_topics` WHERE `topic_id` = '$topic_id'") or die(mysql_error());

$topic_replies = mysql_result($result, 0);

echo $topic_replies;

?>

So kann mans dann auch ueber bla.php?topic_id=1337 nutzen ohne Angst vor Scriptkiddies zu haben.

dadie
21.07.2005, 20:57
<?php

$host = "localhost"; // Wird wahrscheinlich so bleiben
$user = "username"; // Anpassen
$pass = "passwort"; // Anpassen

$db = "database"; // Rate!

mysql_connect($host, $user, $pass) or die(mysql_error());

mysql_select_db($db) or die(mysql_error());

$topic_id = $_GET['topic_id'];
$topic_id = mysql_escape_string($topic_id); // SQL Injection is teh shit!1

$result = mysql_query("SELECT `topic_replies` FROM `phpbb_topics` WHERE `topic_id` = '$topic_id'") or die(mysql_error());

$topic_replies = mysql_result($result, 0);

echo "Der topic_replies wert von ".$topic_id." ist ".$topic_replies;

unset($host);
unset($pass);
unset($user);
unset($db);
unset($topic_id);
unset($result);
unset($topic_replies);
?>



So damit haben wir einen satz und alle Variablen gelöscht womit niemand sie einfach so auslesen kann :)

codec
21.07.2005, 20:58
<?php

$host = "localhost"; // Wird wahrscheinlich so bleiben
$user = "username"; // Anpassen
$pass = "passwort"; // Anpassen

$db = "database"; // Rate!

mysql_connect($host, $user, $pass) or die(mysql_error());

mysql_select_db($db) or die(mysql_error());

$topic_id = $_GET['topic_id'];
$topic_id = mysql_escape_string($topic_id); // SQL Injection is teh shit!1

$result = mysql_query("SELECT `topic_replies` FROM `phpbb_topics` WHERE `topic_id` = '$topic_id'") or die(mysql_error());

$topic_replies = mysql_result($result, 0);

echo "Der topic_replies wert von ".$topic_id." ist ".$topic_replies;

unset($host);
unset($pass);
unset($user);
unset($db);
unset($topic_id);
unset($result);
unset($topic_replies);
?>



So damit haben wir einen satz und alle Variablen gelöscht womit niemand sie einfach so auslesen kann :)


Und was soll das bringen?
Ich seh keinen Sinn darin die Variablen nach der Ausfuehrung des Scripts zu unsetten. Die landen danach so oder so im Datennirvana wenn das Script fertig geparst ist.

!ckS
21.07.2005, 21:00
man dankt vielmals für die mühe! ^^

und verzeihung, falls es dieses mehr als elementare thema schon öfter gab, aber ich brauchte halt 'ne extrawurst :D

dadie
21.07.2005, 21:02
Und was soll das bringen?

also

1,Hat man einen schönen satz :) ich meine "Die ID ist XXXX" ist doch viel schöner als einfach nur XXXX :)

2,Ich bin zwar kein wirklicher Crack aber wenn man eine Variable ofen läst ist sie nie deactiviert.Was heissen würde das sie auslesbar ist (wie auch immer) es ist halt möglich (soweit ich weiss) und ich für meinen teil halte passwort etz. lieber geheim ^^

codec
21.07.2005, 21:06
also

1,Hat man einen schönen satz :) ich meine "Die ID ist XXXX" ist doch viel schöner als einfach nur XXXX :)



Ich meinte den unset()-Kram.



2,Ich bin zwar kein wirklicher Crack aber wenn man eine Variable ofen läst ist sie nie deactiviert.Was heissen würde das sie auslesbar ist (wie auch immer) es ist halt möglich (soweit ich weiss) und ich für meinen teil halte passwort etz. lieber geheim ^^

Naja, aber wenn das Script durchgelaufen ist kannst du die Variablen nicht mehr auslesen.
Und da in dem Script ohnehin keine PHP-Injection besteht ist das unset() relativ ueberfluessig - imo.

fanrpg
21.07.2005, 21:13
Hmm da fällt mir ein so kann man auch den Schutzmachanismus von phpBB umgehen :D das heisst geschützte Bereich sehen und lesen ^^ oder schreiben hat schon was muss nur noch die Zugangsdaten ham :D

Ach ja back2topic:


2,Ich bin zwar kein wirklicher Crack aber wenn man eine Variable ofen läst ist sie nie deactiviert.Was heissen würde das sie auslesbar ist (wie auch immer) es ist halt möglich (soweit ich weiss) und ich für meinen teil halte passwort etz. lieber geheim ^^

Woher hasste den das? O_o
Is AFAIK ziemlicher Unsinn da die Variabeln am Ende eines Scripts eh verworfen werden und wenn man die nicht aufruft durch das PHP Script selber und mit denen nichts in Sachen GET macht relativ unnötig :rolleyes:

Maisaffe
21.07.2005, 21:25
Afaik tut unset nur die Variable "löschen", damit sie wieder frei belegbar ist. z.B. werden die Array Einstellungen gelöscht, damit man die Variable (Array wird normale Variable) für "einfache" Inhalte verwenden kann (Arrays wären in diesem Falle "komplizierte" Inhalte).
Aber das die Variable erhalten bleibt? Schön wärs... Sowas bräuchte ich schon im Moment. ;)

Dennis