Sections mit Mysql?

Naja als Anfänger is das sicher ma ein 10 Tonnen hammer wennste das vorgesetzt kriegst wennste so wie ich nur ne wage Ahnung von oop hast.

das mit den sql injections kapier ich noch nicht ganz ist aba jetzt offtopic.

mfg
 
Sorry, es war nicht meine Absicht, dich zu irgendwas zu "zwingen". Wenn es dir mit den regulären mysql_*-Funktionen leichter fällt, solltest du das nehmen. Immer das, womit man am besten klar kommt.

Im übrigen ist objekt-orientierte Programmierung für den menschlichen Verstand wesentlich leichter zu verstehen und einzuprägen als prozedurale Programmierung.
 
Du denkst zu 1. Dimensional, ich meine das auch du natürlich mal klein angefangen hast und auch deine ersten scripte ohne prepared statements geschrieben hast und dies ist ja auch verständlich, denn jeder sammelt von script zu script neue erfahrung denn man will sich ja entwickeln, sich Dokumentationen durchlesen oder video2brain Video Tutorials besorgen und anhand des Videos natürlich zu lernen, ich muss ehrlich zugeben, Da ich mich schon also den normalen MySQL-Funktionen mich eingefunden habe ich mir das video-tutorial von video2brain kurz gekauft und angeschaut und dies hab ich bestimmt nicht bereut denn danach habe ich direkt mit mysqli-* Funktionen angefangen, also der neu erweiterterten Version :) als ich Video-Tutorial konnte man sich sehr gut einfinden wenn man schon in den normalen mysql-funktionen sich eingefunden hatte und deswegen mein ich ja das jeder am besten klein anfangen sollte, denn wenn z.B später eine ganze Web Application auf der normalen MySQL-Funktion basiert, wie will man denn da überblick haben? Vielleicht weißt du jetzt was ich meinte ;) Du hast wohl recht, mysqli_real_escape_string hilft z.B bei Integer-Werten garnichts und irgendeiner könnte trotzdem eine SQL-Injection iniziieren, da hast du z.B recht da würden prepared statements wohl helfen aber eine vorzeitige überprüfung der werte, würde auch genügen. Du siehst unsere Argumente schlagen sich gegenseitig und wenn wir weiter so rumspammen bekommen wir vielleicht noch ärger, also höre ich lieber an dieser stelle auf ;)

MfG
KD3
 
Sicher hab ich auch mal klein angefangen, und diese Anfänge waren nicht sehr rühmlich. Daher möchte ich nicht, das jemand anders die gleichen Fehler macht, die ich auch schon gemacht habe. Das ist eine normale soziale menschliche Verhaltensweise.

Wer spammt denn? Ich finde die Diskussion bis dato interessant.

Wie dem auch sei, letztlich muss ccnt entscheiden, welche Methode die bessere für ihn ist. Also zurück zum Thema, wenn noch Fragen offen sind.
 
:offtopic:

Also ehrlich gesagt, muss ich saftmeister da schon zustimmen.
Und ich finde es ehrlich gesagt einfacher zuerst mit PDO anzufangen als mit den MySQL(i) Funktionen (auch wenn ich es nicht so gemacht hab), denn dann muss man nachher nicht mehr umdenken, wenn man sie plötzlich mal benutzen muss, oder einen anderen Abstraktions Layer.

Und was den OOP Aspekt angeht... Letztendlich muss man sich bei PDO damit doch gar nicht auseinandersetzen, denn die Syntax ist denen der "normalen" Funktionen doch ziemlich ähnlich.

PHP:
$stmt = $dbc->prepare("SELECT sectioncontent FROM sections WHERE sectionname = :section");
$stmt->bindValue(':section', $_GET['section']);
if($data = $stmt->fetch(PDO_FETCH_BOTH)) {
  echo $data['sectioncontent'];
}
?>

PHP:
$sql = "SELECT sectioncontent FROM sections WHERE sectionname = '".mysql_real_escape_string($_GET['section'])."'";
$query = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_array($query)) {
  echo $row['sectioncontent'];
}

Vom Aufwand her, ungefähr die gleiche Menge.
Allerdings finde ich PDO übersichtlicher und auch einfacher.
Besonders durch die Verwendung der PDOException Klasse lässt sie sich einfacher in bestehende Exception Klassen einbinden (persönliche Meinung).
 
Sollte kein Vorwurf sein Saftmeister, ich bin dankbar für alles was mir später hilft. Ich werd mich in PDO einarbeiten wenn ich halbwegs wieder auf meinem level bin vor meiner pause.

Ok der code von felix funktioniert. Allerdings schaut es jetzt so aus, das, wenn die section, die eingegeben wird, nicht da ist, dann wird gar nichts angezeigt.

Es soll die News section angezeigt werden.

Hab versucht meinen alten code umzubauen, aber mit dem weis ich nicht, wie ich die section namen auslesen soll.
 
PHP:
$section = ( !empty($_GET['section') ? $_GET['section'] : 'news' );
$sql = "SELECT sectioncontent FROM sections WHERE sectionname = '".mysql_real_escape_string($section)."'";
$query = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_array($query)) {
  echo $row['sectioncontent'];
}

Dann würde ich es so machen.

Das Konstrukt ist eine verkürzte [phpf]if[/phpf] Bedingung und würde ausgeschrieben so aussehen:

PHP:
if(!empty($_GET['section']) 
{
  $section = $_GET['section'];
}
else 
{
  $section = 'news';
}

Das "news" sollte durch deinen Sektionsbezeichner für die News ersetzt werden.
 
Fast genauso wie du, da allerdings noch kein news script funktioniert hab ich es auf die test2 seite verwiesen.

es wird nachwievor eine weisse seite angezeigt.

//EDIT
Hab einen kleinen Fehler in meinem DB code gehabt, deswegen hat es nicht funktioniert.
Eines ist jetzt noch. Wenn wer eine Section eingibt, die nicht in der DB drinnen ist, dann kommt ne weisse Seite.

Wie könnte ich das lösen?

mfg
//EDIT
 
Zuletzt bearbeitet:
Zurück