2016-10-05 2 views
2

Ich habe diese Frage über gesehen, aber scheint keine Lösung für mich zu finden.Speichern von URLs in einer SQL-Datenbank

Ich habe eine einfache Datenbank zum Speichern/Anzeigen von Kontaktdaten und ich möchte viele URLs für jeden Kontakt speichern.

edit: ich mein Skript jetzt überarbeitet habe, hier s der Code, den ich jetzt bin mit: Das HTML-Formular:

<title>DDD Artist Entry</title> 

<link href="/ddd/main.css" rel="stylesheet" type="text/css" /> 

</head> 

<body> 
<div align="center"> <!-- main centre --> 

<p></p> 
<p>Add a new artists details here</p> 
<p></p> 

<table class="main_page extra_pad border" width="100%" border="0"> 
    <tr> 
     <td valign="top">The Basics</td> 
     <td> 
<form name="newent" id="newent" method="post" action="newent_handle.php"> 

<p>First Name: <input type="text" name="fname" required="required"></p> 
<p>Last Name: <input type="text" name="lname" required="required"></p> 
<p>Alias: <input type="text" name="alias"></p> 
<p>E-mail: <input type="email" name="email" size="32" required="required"></p> 

     </td> 
    </tr> 
    <tr> 
     <td valign="top">Social Media</td> 
     <td> 

<p>PayPal Email: <input type="email" name="ppemail" size="32"></p> 
<p>Website: <input type="text" name="website" size="64"></p> 
<p>F.B. Name: <input type="text" name="fbident" size="64"></p> 
<p>F.B. Fan Page: <input type="text" name="fb_fanpage" size="64"></p> 
<p>Twitter: <input type="text" name="twitter" size="64"></p> 
<p>Soundcloud: <input type="text" name="soundcloud" size="64"></p> 
<p>MySpace: <input type="text" name="myspace" size="64"></p> 
<p>HearThis: <input type="text" name="hearthis" size="64"></p> 
<p>YouTube: <input type="text" name="youtube" size="64"></p> 
<p>BeatPort: <input type="text" name="beatport" size="64"></p> 
<p>Instagram: <input type="text" name="instagram" size="64"></p> 
<p>ReverbNation: <input type="text" name="reverbnation" size="64"></p> 
<p>Tumblr: <input type="text" name="tumblr" size="64"></p> 
<p>BandCamp: <input type="text" name="bandcamp" size="64"></p> 

     </td> 
    </tr> 
    <tr> 
     <td colspan="2"> 

<!-- <p>Comments: <input type="text" name="comments"></p> --> 

<p align="center"><input name="enter" type="submit" value="Put them in!"> 
</form></p> 

     </td> 
    </tr> 
</table> 



<p>&nbsp;</p> 
<p>&nbsp;</p> 

</div><!-- main centre --> 

</body> 
</html> 

Jetzt ist hier die Handler-Skript, es zu

gibt
<?PHP 

// ------- DDD new artist entry HANDLER SCRIPT ------- 

$con = mysqli_connect("localhost", "user", "pw", "db") or die(mysqli_error()); 

// Let's get the text from the form, we escape string for anti-sql-injection. Nice. 

$fname = mysqli_real_escape_string($con, $_POST['fname']); 
$lname = mysqli_real_escape_string($con, $_POST['lname']); 
$alias = mysqli_real_escape_string($con, $_POST['alias']); 
$email = mysqli_real_escape_string($con, $_POST['email']); 
$ppemail = mysqli_real_escape_string($con, $_POST['ppemail']); 
$website = mysqli_real_escape_string($con, $_POST['website']); 
$fbident = mysqli_real_escape_string($con, $_POST['fbident']); 
$fb_fanpage = mysqli_real_escape_string($con, $_POST['fb_fanpage']); 
$twitter = mysqli_real_escape_string($con, $_POST['twitter']); 
$soundcloud = mysqli_real_escape_string($con, $_POST['soundcloud']); 
$myspace = mysqli_real_escape_string($con, $_POST['myspace']); 
$youtube = mysqli_real_escape_string($con, $_POST['youtube']); 
$hearthis = mysqli_real_escape_string($con, $_POST['hearthis']); 
$beatport = mysqli_real_escape_string($con, $_POST['beatport']); 
$instagram = mysqli_real_escape_string($con, $_POST['instagram']); 
$reverbnation = mysqli_real_escape_string($con, $_POST['reverbnation']); 
$tumblr = mysqli_real_escape_string($con, $_POST['tumblr']); 
$bandcamp = mysqli_real_escape_string($con, $_POST['bandcamp']); 
//$comments = mysqli_real_escape_string($con, $_POST['comments']); 

// insert the appropriate records 

$artist_insert = "INSERT INTO artists"; 
$artist_insert.= " (artist_fname,";  // 1 
$artist_insert.= " artist_lname,";  // 2 
$artist_insert.= " artist_alias,";  // 3 
$artist_insert.= " artist_email,";  // 4 
$artist_insert.= " artist_ppemail,";  // 5 
$artist_insert.= " artist_website,";  // 6 
$artist_insert.= " artist_fbident,";  // 7 
$artist_insert.= " artist_fb_fanpage,"; // 8 
$artist_insert.= " artist_twitter,";  // 9 
$artist_insert.= " artist_soundcloud,"; // 10 
$artist_insert.= " artist_myspace,";  // 11 
$artist_insert.= " artist_youtube,";  // 12 
$artist_insert.= " artist_hearthis,";  // 13 
$artist_insert.= " artist_beatport,";  // 14 
$artist_insert.= " artist_instagram,"; // 15 
$artist_insert.= " artist_reverbnation,"; // 16 
$artist_insert.= " artist_tumblr,";  // 17 
$artist_insert.= " artist_bandcamp,";  // 18 
$artist_insert.= " artist_date)";   // 19 

$artist_insert.= " VALUES"; 
$artist_insert.= " ('$fname',";  // 1 
$artist_insert.= " '$lname',";  // 2 
$artist_insert.= " '$alias',";  // 3 
$artist_insert.= " '$email',";  // 4 
$artist_insert.= " '$ppemail',";  // 5 
$artist_insert.= " '$website',";  // 6 
$artist_insert.= " '$fbident',";  // 7 
$artist_insert.= " '$fb_fanpage',"; // 8 
$artist_insert.= " '$twitter',";  // 9 
$artist_insert.= " '$soundcloud',"; // 10 
$artist_insert.= " '$myspace',";  // 11 
$artist_insert.= " '$youtube',";  // 12 
$artist_insert.= " '$hearthis',";  // 13 
$artist_insert.= " '$beatport',";  // 14 
$artist_insert.= " '$instagram',"; // 15 
$artist_insert.= " '$reverbnation',"; // 16 
$artist_insert.= " '$tumblr',";  // 17 
$artist_insert.= " '$bandcamp',";  // 18 
$artist_insert.= " NOW())";   // 19 

var_dump($artist_insert); 
die(); 

?> 

Das Problem:

Ich kann das Formular mit fname, lname, Alias, E-Mail und ppemail, und auch eine http-Web-Adresse in der ersten "Website" -Feld ausfüllen und meine var_dump gibt mir eine SQL Erklärung. wenn ich in den obigen Angaben jedoch füllen und legte eine sectond http-Adresse in das nächste Feld zu dann habe ich einen Fehler in dem es heißt:

Verbotene

Sie haben keine Berechtigung zum Zugriff auf/ddd/newent_handle.php auf diesem Server.

Darüber hinaus wurde ein Fehler 403 Verboten beim Versuch, verwenden ein ErrorDocument, um die Anfrage zu behandeln.

Ich habe jetzt viele Male mit meinen Serverleuten gesprochen und sie sagen, dass alle meine Berechtigungen ok sind. In meinem Server-Fehlerprotokoll wird auch nichts angezeigt.

Seltsamerweise kann ich das gesamte Formular mit zufälligen Tastendruck Testdaten ausfüllen und es wird funktionieren, aber ich bekomme diesen Fehler, wenn ich es mit Webadressen versuche. Um die Sache noch verrückter zu machen, wird es mit einer einzigen Webadresse im Feld "Website" oder im Youtube-Feld funktionieren, aber nicht im Beatport-Feld oder bestimmten anderen.

Das Skript scheint so einfach, ich bin im Begriff, zu verschonen. Kann jemand etwas sehen oder vorschlagen? Sehr geschätzt.

+1

Sind alle diese Werte erforderlich, oder können sie leer sein? Sie sollten auch nicht die 'mysql_ *' Funktionen verwenden. Verwenden Sie stattdessen mysqli_ * '. Ich würde wirklich die 'mysqli' oder' PDO' Klasse mit parametrisierten Abfragen verwenden, damit Sie nicht alles meiden müssen, da Ihr Code wirklich unordentlich ist. – Thomas

+0

einige der Feuerfelder können leer sein ja, nicht alle erforderlich. re: chaotisch alter Code ja es tut mir leid es ist schon lange her, seit ich das letzte mal gemacht habe! –

+0

Wäre es nicht besser, eine andere Tabelle wie 'social_links' zu erstellen, so dass Sie diese vielen' NULL' Datensätze nicht speichern. – Thomas

Antwort

0

Ah ha! So habe ich diese Antwort von meinem Server Menschen endlich:

Vielen Dank für Ihre Antwort und für die Bereitstellung dieser Informationen. Ich habe vorausgegangen und replizierte den Fehler, den Sie erhielten. Es sieht aus wie es ist wegen ModSecurity. Ich werde dieses Ticket bis zu unseren Second-Line-Techs eskalieren, um zu sehen, ob eine Ausnahme gemacht werden kann.

Es stört mich, ich hätte eine Ausnahme machen müssen, aber hey, wenn es funktioniert.

Edit: Es ist endlich festgelegt und hier als Referenz ist, was sie taten:

Ich habe zu mod-Sicherheitsregeln hinzugefügt. Die Regeln lauten 340163 und 340163. Sie können mehr über diese Regeln erfahren.

https://wiki.atomicorp.com/wiki/index.php/WAF_340162

Die meisten dieser Regeln gut funktionieren, aber gelegentlich einige Seiten bekommen falsch, so fügen wir eine Ausnahme ausgelöst.

Verwandte Themen