Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

MySql Fehler bei PHP-Ausgabe!

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
lionstarr
PostRank 4
PostRank 4
Beiträge: 141
Registriert: 22.12.2005, 20:12
Wohnort: Hamburg

Beitrag von lionstarr » 23.12.2005, 09:28

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!
Warum einfach wenns auch kompliziert geht?
Tutorials zum Thema Linux und Computer

Anzeige von ABAKUS

von Anzeige von ABAKUS »


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

lionstarr
PostRank 4
PostRank 4
Beiträge: 141
Registriert: 22.12.2005, 20:12
Wohnort: Hamburg

Beitrag von lionstarr » 23.12.2005, 09:30

Uuups...
tschuldigung!
Das war der dümmste Fehler den ich jeh gemacht habe: sglresult != sqlresult!
Ich entschulkdige mich noch mal vielmals,
lionstarr
Warum einfach wenns auch kompliziert geht?
Tutorials zum Thema Linux und Computer

ts77
PostRank 4
PostRank 4
Beiträge: 146
Registriert: 03.02.2005, 13:58

Beitrag von ts77 » 23.12.2005, 10:13

> $sqlselect="SELECT * FROM witze WHERE Category = '".$_GET['category']."' ORDER BY id LIMIT 0, 30";


Wunderschöne SQL-Injection-Vorlage ;)

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


mcchaos
PostRank 9
PostRank 9
Beiträge: 1414
Registriert: 27.07.2004, 19:18

Beitrag von mcchaos » 23.12.2005, 10:13

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...

lionstarr
PostRank 4
PostRank 4
Beiträge: 141
Registriert: 22.12.2005, 20:12
Wohnort: Hamburg

Beitrag von lionstarr » 23.12.2005, 10:58

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!
Warum einfach wenns auch kompliziert geht?
Tutorials zum Thema Linux und Computer

ts77
PostRank 4
PostRank 4
Beiträge: 146
Registriert: 03.02.2005, 13:58

Beitrag von ts77 » 23.12.2005, 10:59

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 ;).

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 23.12.2005, 11:25

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

lionstarr
PostRank 4
PostRank 4
Beiträge: 141
Registriert: 22.12.2005, 20:12
Wohnort: Hamburg

Beitrag von lionstarr » 23.12.2005, 11:31

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
Warum einfach wenns auch kompliziert geht?
Tutorials zum Thema Linux und Computer

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 23.12.2005, 11:44

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.

lionstarr
PostRank 4
PostRank 4
Beiträge: 141
Registriert: 22.12.2005, 20:12
Wohnort: Hamburg

Beitrag von lionstarr » 23.12.2005, 21:22

Jep, realisiere es jetzt mit mod_rewrite - bräuchte da aber noch hilfe :
siehe: " https://www.abakus-internet-marketing.d ... 21919.html "
Warum einfach wenns auch kompliziert geht?
Tutorials zum Thema Linux und Computer

RW
PostRank 6
PostRank 6
Beiträge: 436
Registriert: 23.07.2003, 08:54

Beitrag von RW » 26.12.2005, 00:08

HI,

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

RW

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag