<?php
echo "
<form method='post' action='saprunbookquery.php'>
<input name='jnquery' type='text' size='50' maxlength='50'>
<input type='submit' class='button1' value='Go!' name='button1' />
</form>
";
$jnquery=$_POST['jnquery'];
$con = mysql_connect("localhost","user","passwd");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("icc_db", $con);
$result ="SELECT * FROM saprunbook WHERE Job_Name like '%$jnquery%'";
echo "<table align='center' cellspacing='0' cellpadding='0'>
<tr>
<th>Job Name</th>
<th>Job Title</th>
<th>Contact</th>
<th>Phone</th>
<th>Schedule</th>
<th>Est</th>
<th>Frequency</th>
<th>Action</th>
</tr>";
while($row = mysql_fetch_object($result))
{
echo "<tr>";
echo "<td>" . $row['Job_Name'] . "</td>";
echo "<td>" . $row['Job_Title'] . "</td>";
echo "<td>" . $row['Contact'] . "</td>";
echo "<td>" . $row['Phone'] . "</td>";
echo "<td>" . $row['Schedule'] . "</td>";
echo "<td>" . $row['Est'] . "</td>";
echo "<td>" . $row['Freq'] . "</td>";
echo "<td>" . $row['Operations'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
</html>
<html><head>
<title>ICC EMEA Runbook for SAP</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head><body>
<form method="post" action="saprunbookquery.php">
<input name="jnquery" type="text" size="50" maxlength="50">
<input type="submit" class="button1" value="Go!" name="button1" />
</form><?php
// Zeige alles, was wir unter PHP falsch machen
error_reporting( E_ALL );
// Mit DBMS verbinden; bei Fehlschlag Meldung
$con= mysql_connect( 'localhost', 'root', 'utopia' ) or die( 'Keine Verbindung: '. mysql_error() );
// DB auswählen; bei Fehlschlag Meldung
mysql_select_db( 'icc_db', $con ) or die( 'Konnte DB nicht wählen: '. mysql_error() );
// Eine SQL-Injection ist z.B., wenn folgender Text übergeben werden würde:
// '; DROP DATABASE; SELECT 1 FROM DUAL WHERE ''= '
// Würden wir das einfach an unsere SQL-Abfrage anhängen, würden drei syntaktisch korrekte
// Komanndos ausgeführt werden, wovon eins tödlich wäre. Deshalb ersetzen wir in der
// Übergabe alle ' mit einem '', was unter MySQL dann kein Textbegrenzer, sondern ein
// Hochkomma im Text selbst darstellt.
$where= str_replace( '\'', '\'\'', $_POST['jnquery'] );
// Wurde überhaupt etwas übergeben? Dann komplett zur WHERE-Bedingung ausbauen...
if( strlen( $where )> 0 ) $where= ' WHERE Job_Name LIKE \''. $where. '\'';
// ...ansonsten würden wir den kompletten Tabelleninhalt ausgeben
$sql= 'SELECT * FROM saprunbook'. $where;
// Abfrage ausführen; bei Fehlschlag Meldung samt SQL-Kommando
$result= mysql_query( $sql ) or die( 'Abfragefehler für >>'. $sql. '<<: '. mysql_error() );
// Tabellenkopf ausgeben
echo '
<table align="center" cellspacing="0" cellpadding="0"><tr>
<th>Job Name</th>
<th>Job Title</th>
<th>Contact</th>
<th>Phone</th>
<th>Schedule</th>
<th>Est</th>
<th>Frequency</th>
<th>Action</th>
</tr>';
// Jeden Datensatz als Tabellenzeile ausgeben.
// VORSICHT! Bei den Spaltennamen wird zwischen Groß- und Kleinschreibung
// unterschieden - existieren diese also nicht wirklich exakt in dieser Schreibweise
// in der Tabelle, so werden wir im folgenden immer auf leere Feldelemente zugreifen!
while( $row= mysql_fetch_object( $result ) ) echo '<tr>
<td>'. $row['Job_Name']. '</td>
<td>'. $row['Job_Title']. '</td>
<td>'. $row['Contact']. '</td>
<td>'. $row['Phone']. '</td>
<td>'. $row['Schedule']. '</td>
<td>'. $row['Est']. '</td>
<td>'. $row['Freq']. '</td>
<td>'. $row['Operations']. '</td>
</tr>';
// Tabelle schließen
echo "</table>";
// Abfrageergebnis freigeben
mysql_free_result( $result );
// DBMS-Verbindung freigeben
mysql_close( $con );
?></body></html>
Powershell ausgabe in Datei
hardy114 02.10.2008 - 649 Hits - 8 Antworten
Fehler-Code -12263
Charmin 05.10.2008 - 14 Hits - 2 Antworten
Login
Dani93 06.10.2008 - 14 Hits - 4 Antworten
POST Daten an eine Seite übertragen
TByte 02.01.2010 - 614 Hits - 6 Antworten