Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Probleme mit meinem sql code!

Frage Entwicklung Datenbanken

Mitglied: 65999

65999 (Level 1)

11.12.2008, aktualisiert 09.11.2016, 4262 Aufrufe, 9 Kommentare

Hi.

Ich habe mich seit Anfang dieser Woche an die Materie php und mysql gewagt:

01.
  
02.
<?PHP 
03.
session_start(); 
04.
$name = $_SESSION['username']; 
05.
$EvendID = $_SESSION['EventID']; 
06.
echo $Event
07.
echo $name
08.
 
09.
    if( isset($_POST['Teilnahme']) && !empty($_POST['Teilnahme']) ) { 
10.
        echo $_POST['Teilnahme']; 
11.
    } else
12.
        echo 'Es wurde keine Option ausgewählt!'; 
13.
14.
 include("db.php"); 
15.
 
16.
 $sql = 'SELECT MitgliederID FROM `Mitglieder` WHERE BenutzernameMitglieder='$name'; 
17.
 $sql = mysql_query($sql); 
18.
 
19.
 while($sql = mysql_fetch_object($sql)) 
20.
21.
    echo $sql->MitgliederID; 
22.
23.
?>
Und zwar stehe ich davor, dass mir die sql Abfrage in Zeile 16 kein Ergebnis liefert!

Wo ist der Fehler?
Mitglied: dog
11.12.2008 um 12:10 Uhr
Du hast hier einen Syntax Fehler drinne:

01.
$sql = 'SELECT MitgliederID FROM `Mitglieder` WHERE BenutzernameMitglieder='$name';  
02.
       ^                                                                   ^ 
03.
       1                                                                   2
Bei 1 beginnt dein PHP-String, bei 2 endet er, alles danach ist syntaktisch falsch.
Du müsstest schreiben:

$sql = "SELECT MitgliederID FROM `Mitglieder` WHERE BenutzernameMitglieder='$name'";

Vorsicht! Auch wenn das so funktioniert, ist es ein enormes Sicherheitsrisiko und hat so nichts in der Praxis verloren.

Deine While-Schleife funktioniert übrigens so auch nicht: Nach dem ersten durchgang wird $sql überschrieben und sie kann kein zweites mal ausgeführt werden.

Grüße

Max
Bitte warten ..
Mitglied: 65999
11.12.2008, aktualisiert 09.11.2016
Das mit der while Schleife ist logisch, der Benutzername gibt es ja auch nur 1x und soll danach aufhören!
Bitte warten ..
Mitglied: dog
11.12.2008 um 12:31 Uhr
Das mit der while Schleife ist logisch, der Benutzername gibt es ja auch nur 1x und soll danach aufhören!

Nein ist es nicht.
Effektiv produzierst du einen PHP-Fehler und dadurch bricht die While-Schleife ab.
Wenn du wirklich nur eine Zeile holen willst brauchst du eben auch nur

01.
$row = mysql_fetch_object($query);
schreiben.

Bitte füge an dein Script, während du es entwickelst ganz oben
01.
error_reporting(E_ALL); 
02.
ini_set('display_errors','On');
an, damit du die Fehlermeldungen von PHP auch siehst.

Was meinst du mit Vorsicht! Was meinst du mit Sicherheitsrisiko, wie wäre es richtig gewesen?

Dazu empfehle ich mal als Ausgangspunkt http://de.wikipedia.org/wiki/SQL-Injection
Bitte warten ..
Mitglied: 68702
11.12.2008 um 12:34 Uhr
Gelöscht, weil Anleitung zum Hacken...
Bitte warten ..
Mitglied: 65999
11.12.2008, aktualisiert 09.11.2016
Danke ...
Bitte warten ..
Mitglied: 65999
11.12.2008, aktualisiert 09.11.2016
noch eine Frage:

Und zwar ist mir aufgefallen, dass wenn ich mich anmelde und anschließend als Test Ja sage, dass er beim Ersten aufruf nie die Saison übernimmt. Erst wenn ich erneut im Browser die Site öffne, dann meinen Benuzternamen eintrage, dann ja auswähle, dann funktioniert es.

Woran könnte das liegen? Bei Bedarf poste ich mal den Quelltext.

Danke für eure Hilfe
Gruß
Bitte warten ..
Mitglied: dog
11.12.2008 um 15:55 Uhr
Bei Bedarf poste ich mal den Quelltext!

Raten ist immer blöd...
Bitte warten ..
Mitglied: 65999
12.12.2008, aktualisiert 09.11.2016
So, hier jetz mal mein Quelltext!


01.
<html> 
02.
<head> 
03.
<meta http-equiv="refresh" content="3; URL=inlineframe.php"> 
04.
</head> 
05.
<body> 
06.
<?PHP 
07.
session_start(); 
08.
$name = $_SESSION['username']; 
09.
$EventNr = $_SESSION['Event']; 
10.
 
11.
    if( isset($_POST['TeilnahmeID']) && !empty($_POST['TeilnahmeID']) ) { 
12.
        //echo $_POST['Teilnahme']; 
13.
        $Teilnahme = $_POST['TeilnahmeID']; 
14.
    } else { 
15.
       echo 'Es wurde keine Teilnahmeoption ausgew&auml;hlt!'; 
16.
17.
 
18.
include("db.php"); 
19.
 
20.
$result = mysql_query("SELECT MitgliederID FROM `Mitglieder` WHERE BenutzernameMitglieder='$name'"); 
21.
if (!$result) { 
22.
    echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error(); 
23.
    exit; 
24.
25.
$MitgliederID = mysql_fetch_row($result); 
26.
$insert = "INSERT INTO Eventzuordnung(Events_EventsID, Mitglieder_MitgliederID, Status) VALUES('$Event','$MitgliederID[0]','$Teilnahme')"; 
27.
mysql_query($insert); mysql_close(); 
28.
 
29.
 ?> 
30.
 
31.
</body> 
32.
</html>

danke für eure hilfe!
gruß
Bitte warten ..
Mitglied: dog
LÖSUNG 13.12.2008 um 05:39 Uhr
Hallo,

dein Problem liegt hier:

01.
session_start(); 
02.
$name = $_POST['name']; 
03.
 
04.
if(!isset($name)) 
05.
06.
   $name = "Gast"; 
07.
08.
$_SESSION['username'] = $name;
Gehen wir das mal Stück für Stück durch:

1. session_start() - soweit OK (Generell empfiehlt sich diese Funktion als allererstes auf einer Seite aufzurufen, sonst könntest du auf manchen Servern Probleme kriegen)

2. $name = $_POST['name']; - Wenn das POST-Feld name gesetzt ist wird es $name zugewiesen, ist es nicht gesetzt wird PHP $name den Wert false zuweisen.

3. isset($name) prüft ob eine Variable vorhanden ist. Dies muss hier immer der Fall sein, weil du in Schritt 2 auch immer eine Zuweisung hast.

Ich hoffe das hilft dir weiter

Grüße

Max
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows Server
gelöst Probleme mit dem SQL Management Studio - Editor (6)

Frage von Sachellen zum Thema Windows Server ...

Windows 7
gelöst Sind euch verstärkte Probleme bei Windows 7 Updates aufgefallen? (4)

Frage von RadioHam zum Thema Windows 7 ...

Cloud-Dienste
gelöst OwnCloud 8 Probleme mit Vorschaubildern auf Mobilgeräten (1)

Frage von zeroblue2005 zum Thema Cloud-Dienste ...

Erkennung und -Abwehr
Port 7547 SOAP Remote Code Execution Attack Against DSL Modems Internet Storm Center (5)

Link von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...