Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator masterG am 01.08.2011 um 13:21:52 Uhr
Formartierungshilfe beachten

gelöst PHP GET variable auf Inhalt prüfen

Mitglied: nobodyisperfect

nobodyisperfect (Level 1) - Jetzt verbinden

20.07.2011, aktualisiert 01.08.2011, 6273 Aufrufe, 6 Kommentare

Hallo an alle da DRAUSEN ^^

PHP Variable $_GET[''] macht mich verrückt!

Kurze Info zu meinen Server:

OS : Linux 11.3
Module: apache2 mit PHP Modulen / MySQL-Datenbank
Nutzung: Webserver


Mein Problem:

Ich lasse eine Variable übergeben an ein php Dokument wo die Übergabe abgefangen wird mit $_GET[" "]
sieht wie folgt aus:

Document "musik.php"
01.
 
02.
$abf = mysql_query("SELECT * FROM musik"); 
03.
 
04.
while ($a = mysql_fetch_row($abf)) { 
05.
echo"	 
06.
		<tr> 
07.
		<td><li><a id='mures' href='musik_show.php?gen=$a[4]'>$a[4]</a></li></td> 
08.
		<td><li><a id='mures' href='musik_show.php?int=$a[1]'>$a[1]</a></li></td> 
09.
		</tr> 
10.
		"; 
11.
};
Also Übergabe von Wert "gen" und "int" wird von Dokument "musik_show.php" abgefangen mit $_GET['gen'] und $_GET['int']
Dokument "musik_show.php" sieht wie folgt aus:
01.
$ggen = $_GET['gen']; 
02.
$gint = $_GET['int']; 
03.
 
04.
 
05.
$abfg = mysql_query("SELECT * FROM musik WHERE interpret LIKE $gint"); 
06.
$abfi = mysql_query("SELECT * FROM musik WHERE genre LIKE $ggen"); 
07.
 
08.
echo "<table><tr>"
09.
if (!isset($_GET["gen"])) { 
10.
 while($a = mysql_fetch_row($abfi)) { 
11.
	echo "<td>$a[1]</td>"
12.
13.
	else
14.
		while ($b = mysql_fetch_row($abfg)) { 
15.
			echo "<td>$b[4]<td>"
16.
17.
18.
19.
 
20.
 
21.
echo "</tr></table>";
Hier das Problem:

Irgendwo ist ein Fehler drin und weis nicht wo bzw wieso.
Möchte Prüfen lassen ob die $_GET['gen'] Variable leer ist aber funktioniert nicht.

Bräuchte wirklich eure Hilfe hab schon rauf und runter gebingt aber irgendwie find ich dazu weder ne lösung noch versteh ich des eigentliche Problem.

Vielen Dank für eure Hilfe.


nobodyisperfect
Mitglied: nxclass
20.07.2011 um 22:35 Uhr
Übergabe von Wert "gen" und "int"
abgefangen mit $_GET['gen'] und $_GET['int']
.. nein es ist $_GET['gen'] ODER $_GET['int']

Prüfen kannst du ob ein Schlüssel in einem Array ist z.B.mit
01.
if ( isset( $_GET['gen'] ) ) { 
02.
// ... 
03.
}
.. das ist also nicht das Problem. Ich sehe eher das Problem in den SQL Abfragen, wenn ein Parameter leer ist. Ebenso erscheint mir deine Variablennamen sind etwas durcheinander.


Nebenbei: überlege mal mit etwas Fantasie was in der musik_show.php mit der SQL Abfrage passiert wenn jemand die URL manipuliert.
Bitte warten ..
Mitglied: nobodyisperfect
20.07.2011 um 23:33 Uhr
Hi Danke für die schnelle Antwort!

Hab schon zuvor mit "isset" versucht mit "empty" geht aber einfach net werd net schlau draus.

Hier mal beide Dateien komplett:

musik.php
<?php

echo"
<!DOCTYPE HTML PUBLIC ' -W3CDTD HTML 4.01 Transitiona lEN' 'http:www.w3.org/TR/html4/loose.dtd'>
<html>
<head>
<title>Musik</title>
<link rel=stylesheet type=text/css href=global.css>
<link rel=stylesheet type=text/css href=nav.css>
<script type=text/javascript src=nav.js></script>
</head>
<body>
";


include 'head.html';
include 'nav.html';
include 'musik.html';


echo "
<table id='musik'>
<tr>
<td>Genre</td>
<td>Interpret</td>
</tr>
";

include 'logindb.php';

mysql_select_db("elysionpw");

$abf = mysql_query("SELECT * FROM musik");

while ($a = mysql_fetch_row($abf)) {
echo"
<tr>
<td><li><a id='mures' href='musik_show.php?gen=$a[4]&int=$a[1]'>$a[4]</a></li></td>
<td><li><a id='mures' href='musik_show.php?int=$a[1]&gen=$a[4]'>$a[1]</a></li></td>
</tr>
";
};

echo"

</table>
";


echo"
</body>
</html>
";

?>
musik_show.php
<?php
$ggen = $_GET['gen'];
$gint = $_GET['int'];

echo"
<!DOCTYPE HTML PUBLIC ' -W3CDTD HTML 4.01 Transitiona lEN' 'http:www.w3.org/TR/html4/loose.dtd'>
<html>
<head>
<title>Musik</title>
<link rel=stylesheet type=text/css href=global.css>
<link rel=stylesheet type=text/css href=nav.css>
<script type=text/javascript src=nav.js></script>
</head>
<body>
";


include 'head.html';
include 'nav.html';


echo "
<table id='musik'>
<tr>
<td>$ggen $gint</td>
</tr>
</table>
<br>
<br>
";

include 'logindb.php';

mysql_select_db("elysionpw");

$abfg = mysql_query("SELECT * FROM musik WHERE interpret LIKE $gint");
$abfi = mysql_query("SELECT * FROM musik WHERE genre LIKE $ggen");

echo "<table><tr>";


if ( isset( $_GET['gen'] ) ) {
while($a = mysql_fetch_row($abfi)) {
echo "<td>$a[1]</td>";
}
else {
while ($b = mysql_fetch_row($abfg)) {
echo "<td>$b[4]<td>";
}
}
}


echo "</tr></table>";

echo"
</body>
</html>
";

?>
Werd zum Hirsch......




>Nebenbei: überlege mal mit etwas Fantasie was in der musik_show.php mit der SQL Abfrage passiert wenn jemand die URL >manipuliert.

ist nur für private zwecke aber an und für sich hast schon recht
Bitte warten ..
Mitglied: dog
21.07.2011 um 04:07 Uhr
Hör auf Blind zu programmieren und schalt die Fehleranzeige ein:

01.
<?php  
02.
  error_reporting(E_ALL|E_STRICT);  
03.
  ini_set('display_errors','On');  
04.
?>
Dann siehst du auch, was du da alles falsch machst.
Bitte warten ..
Mitglied: SlainteMhath
21.07.2011 um 09:01 Uhr
Moin,

auch wenn's jetzt nichts mit der eigentlichen Frage zu tun hat, aber solchem Code
01.
$ggen = $_GET['gen']; 
02.
[...] 
03.
$abfi = mysql_query("SELECT * FROM musik WHERE genre LIKE $ggen");
Kräuseln sich mir die Fußnägel.

Frage: was passiert, wenn $_GET['gen'] den Wert "1; DROP TABLE MUSIC; --" hat?

Bitte, bitte benutze diese Funktion: http://php.net/manual/de/function.mysql-real-escape-string.php

Nähers dazu: http://de.wikipedia.org/wiki/SQL-Injection

lg,
Slainte
Bitte warten ..
Mitglied: blackwinged
21.07.2011 um 10:26 Uhr
Hi,

1. Nimm dir die Kommentare zur Sicherheit bitte zu Herzen! Besser ist immer:

01.
  
02.
$ggen = mysql_real_escape_string($_GET['gen']); 
03.
$gint = mysql_real_escape_string($_GET['int']);
Das muss dir in Fleisch und Blut übergehen ;)


2. Hinter dem LIKE in deiner Query wird ein String erwartet, aber (aus Sicht von MySQL) ein Spaltenname übergeben.
So dürfte es funktionieren:

01.
  
02.
$abfg = mysql_query("SELECT * FROM musik WHERE interpret LIKE '%$gint%'"); 
03.
$abfi = mysql_query("SELECT * FROM musik WHERE genre LIKE '%$ggen%'");
Gruß,
blackwinged
Bitte warten ..
Mitglied: nobodyisperfect
21.07.2011 um 13:44 Uhr
Vielen Dank für eure Hilfe ^^

Also erfolgreich gelöst !

Besten Dank an administrator.de
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Variable auf Inhalt prüfen
gelöst Frage von PinkFLuffyUnicornBatch & Shell1 Kommentar

Hi, ich sitze jetzt schon den halben tag daran eine if schleife zu erstellen die mir sagt ob Variable ...

Batch & Shell

Prüfen ob Variablen inhalt Buchstaben enthält

Frage von IForeverBatch & Shell7 Kommentare

Hallo administrator.de! Ich habe ein kleines Logikproblem, welches ich gerne lösen, bzw. erklärt haben möchte, sollte es so gar ...

PHP

Den Inhalt einer "get"-Anweisung finden, wie

Frage von sbsnewbiePHP2 Kommentare

Moin Leude, könnt Ihr mir mal kurz auf die Sprünge helfen? Wie kann ich den Inhalt einer "get"-Anweisung finden? ...

PHP

PHP Variable Inhalt wird nicht auf die nächste Seite mitgenommen

Frage von PludanPHP5 Kommentare

Hallo Ich habe ein Formular. Dieses wird abgefühlt und mit weiter kommt man auf die Übersichtsseite. Von dieser Seite ...

Neue Wissensbeiträge
Datenschutz

Die Datenkrake Google verlängert ihr Arme mal wieder ein wenig, automatische Anmeldung

Tipp von magicteddy vor 15 StundenDatenschutz2 Kommentare

Benutzer mit einem Google Account und gespeicherten Zugangsdaten werden von chrome 69 automatisch bei Google angemeldet, natürlich alles zum ...

Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 1 TagVerschlüsselung & Zertifikate3 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 3 TagenE-Mail11 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 3 TagenHyper-V1 Kommentar

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Heiß diskutierte Inhalte
Hardware
Sophos SG135 - Routing
gelöst Frage von Xaero1982Hardware22 Kommentare

Moin Zusammen, ich ersetze gerade nen alten Cisco DualWAN Router durch eine SG 135. Ich muss bestimmte Ziele über ...

E-Mail
Welche ist die beste E-Mail Groupware für die Zukunft?
Frage von ITCrowdSupporterE-Mail18 Kommentare

Guten Tag allerseits :) Ich möchte mich mit einer Frage heute mal an die Schwarmintelligenz wenden. Aktuell befasse ich ...

Netzwerke
Hilfe bei der Planung meines Heimnetzwerks
Frage von DHD082Netzwerke15 Kommentare

Hallo zusammen, wir bauen gerade ein Einfamilienhaus, welches ich mit einem Heimnetzwerk ausstatten möchte. Da ich zwar auch in ...

Windows 7
Mit gpedit gesetzte Richtlinien in rsop.msc nicht definiert und ausgegraut
gelöst Frage von 137006Windows 715 Kommentare

Hallo zusammen, anfangs verweise ich fairerweise daruf dass ich dieses Thema bereits im Forum angeschnitten habe, nachdem ich hier ...