Seite 1 von 1

MySql Fehler bei PHP-Ausgabe!

Verfasst: 23.12.2005, 09:28
von lionstarr
Hallo,
ich programmiere Offline an einem Projekt.
Dafür benötige ich MySql und mit dem Insert Befehl klappte alles.
Aber dann wollte ich mit SELECT Daten abfragen (Über PHP).
Und hier kam:


Hm, denke ich. Rufe ich mal mysql_error() auf. Problem: Die gibt folgendes aus: "" (zwischen " und " - also nichts).

Hier ist der Quelltext:

Code: Alles auswählen

<?php

if&#40;isset&#40;$_GET&#91;'category'&#93;&#41;&#41;&#123;
	$category=$_GET&#91;'category'&#93;;
	
	
	mysql_connect&#40;"localhost","phpkid","mitp"&#41; or die&#40;"Konnte nicht mit MySql Verbinden!"&#41;;
	
	mysql_select_db&#40;"lionstarr"&#41; or die&#40;"Datebank konnte nicht gefunden werden!"&#41;;
	
	$sqlselect="SELECT * FROM witze WHERE Category = '".$_GET&#91;'category'&#93;."' ORDER BY id LIMIT 0, 30";
	$sglresult=mysql_query&#40;$sqlselect&#41;;
	if&#40;!$sqlresult&#41;&#123;
		echo "Error in sqlresult&#58;".mysql_error&#40;&#41;;// Hier gibt er nur "Error in sqlresult aus!
	&#125;
	echo "<table border='0'>";
	echo "<tr><td>&Uuml;berschrift</td><td>Eingesendet von</td><td>Eingesendet am</td></tr>";
	
	
	while &#40;$thisrow=mysql_fetch_assoc&#40;$sqlresult&#41;&#41; &#123;
		//$Eintrag=nl2br&#40;$row&#91;"Eintrag"&#93;&#41;;
		echo "<tr><td>".$thisrow&#91;"Headline"&#93;."</td><td>".$thisrow&#91;"NAME"&#93;."</td><td>".$thisrow&#91;"Date"&#93;."</td></tr>";

	&#125;

echo "</table>";
&#125;
else&#123;
echo "<h2>Die Witze</h2><br />\n";
echo "<h3><a href=\"layout.php?s=display.php&category=Computer\">Computer</a></h3>";
&#125;


?>



Natürlich muss ich das Ganze noch viel bearbeiten, das ist nur ein Anfang. Aber wo kommt der Fehler her?
Vielen Dank im Voraus,
mfg,
lionstarr
P.S. Ich habe mir die Query schon ausgeben lassen und in phpmyadmin getestet - funktionierte prima!

Verfasst:
von

Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

MySql Fehler bei PHP-Ausgabe!

Verfasst: 23.12.2005, 09:30
von lionstarr
Uuups...
tschuldigung!
Das war der dümmste Fehler den ich jeh gemacht habe: sglresult != sqlresult!
Ich entschulkdige mich noch mal vielmals,
lionstarr

MySql Fehler bei PHP-Ausgabe!

Verfasst: 23.12.2005, 10:13
von ts77
> $sqlselect="SELECT * FROM witze WHERE Category = '".$_GET['category']."' ORDER BY id LIMIT 0, 30";


Wunderschöne SQL-Injection-Vorlage ;)

Verfasst:
von

MySql Fehler bei PHP-Ausgabe!

Verfasst: 23.12.2005, 10:13
von mcchaos
Ja, typisierte Sprachen wie C++ oder Java haben auch Ihre Vorteile :wink:

Aber ich glaube, das ist hier auch jedem schon mal mit php passiert...

Aber schau Dir mal Dein Code an, da kann man SQL injizieren...

MySql Fehler bei PHP-Ausgabe!

Verfasst: 23.12.2005, 10:58
von lionstarr
Ich weis, das hatte ich auch vor zu ändern (mit stripslashes()) aber da wollte ich zwischendurch nen Test machen und schwups ist der Fehler da! Na ja,
auf jeden fall vielen dank!

MySql Fehler bei PHP-Ausgabe!

Verfasst: 23.12.2005, 10:59
von ts77
nimm lieber
mysql_real_escape_string
für den String dort, wenn es denn ein String ist.
Ansonsten auf (int) wandeln, wenn es denn eine Zahl sein soll ;).

Re: MySql Fehler bei PHP-Ausgabe!

Verfasst: 23.12.2005, 11:25
von SloMo
ts77 hat geschrieben:nimm lieber
mysql_real_escape_string
für den String dort, wenn es denn ein String ist.
mysql_real_escape_string() ist nicht sicherer als addslashes(). Es sorgt nur für eine bessere Lesbarkeit in Logdateien. Wer sich für die Logs nicht interessiert, kann sich also die unnötige Tipparbeit sparen.
If anyone is using addslashes to escape strings before putting them in the database and thinks they should "upgrade" to mysql_real_escape_string because it is safer (as the instructions above seem to imply): if you read mysql's manual for the function that is being called by php, it says
--QUOTE
Strictly speaking, MySQL requires only that backslash and the quote character used to quote the string in the query be escaped. This function quotes the other characters to make them easier to read in log files.
ENDQOUTE--
So if you're using addslashes, which escapes single and double quote and backslashes, you're OK.
Zitat: https://php3.de/manual/de/function.mysq ... string.php

Gruß, SloMo

Verfasst: 23.12.2005, 11:31
von lionstarr
Ach genau addslashes meinte ich natürlich.
Eine Frage am Rande: Crawlt Google auch Links wie "layout.php?s=send.php&id=1" oder muss ich das ganze noch Anders Machen? V

MySql Fehler bei PHP-Ausgabe!

Verfasst: 23.12.2005, 11:44
von SloMo
Jepp, parametrisierte Links werden problemlos gecrawlt. Nur den Bezeichner ID würde ich an Deiner Stelle nicht benutzen. Funktioniert zwar auch, aber Google selbst hat davon abgeraten. Außerdem solltest Du es auf einen einzigen Parameter beschränken.

Pass auf, dass auf keinen Fall fremde Scripts eingebunden werden können. Sonst kann Dir jeder Anfänger einen Dateimanager unterschieben und damit frei auf Deinem Server umherwüten.

MySql Fehler bei PHP-Ausgabe!

Verfasst: 23.12.2005, 21:22
von lionstarr
Jep, realisiere es jetzt mit mod_rewrite - bräuchte da aber noch hilfe :
siehe: " https://www.abakus-internet-marketing.d ... 21919.html "

MySql Fehler bei PHP-Ausgabe!

Verfasst: 26.12.2005, 00:08
von RW
HI,

strip_tags($_GET[...]) + Muster Prüfung
Validierung der GET + POST Para
alla preg_match == true 8)

RW