php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Fehler in PHP Datei


 
log
24-01-2016, 13:22 
 
Hallo,

ich bin gerade dran mir einen URL Shortener zu erstellen. Dazu habe ich die Dateien von GitHub genommen. Hier das Tutorial: PHP Master | Building Your Own URL Shortener (http://sitepoint.com/building-your-own-url-shortener)

Nun ist es so, dass in einer Datei ein Fehler ist. Nur ich finde nicht heraus wo. Hoffentlich könnt ihr mir helfen.

Hier ist die Fehlermeldung, wenn ich die Seite öffne oder eine URL Kürzen möchte:
Parse error: syntax error, unexpected end of file in /users/shrtml/www/public/submit.php on line 34

Hier ist meine PHP Datei:

PHP Quellcode:
<?php
require_once "../include/config.php";
require_once "../include/ShortUrl.php";
if ($_SERVER["REQUEST_METHOD"] != "POST" || empty($_POST["url"])) {
header("Location: shorten.html");
exit;
}
try {
$pdo = new PDO(DB_PDODRIVER . ":host=" . DB_HOST . ";dbname=" . DB_DATABASE,
DB_USERNAME, DB_PASSWORD);
}
catch (\PDOException $e) {
header("Location: error.html");
exit;
}
$shortUrl = new ShortUrl($pdo);
try {
$code = $shortUrl->urlToShortCode($_POST["url"]);
}
catch (\Exception $e) {
header("Location: error.html");
exit;
}
$url = SHORTURL_PREFIX . $code;
echo <<<ENDHTML
<html>
<head>
<title>URL Shortener</title>
</head>
<body>
<p><strong>Short URL:</strong> <a href="$url">$url</a></p>
</body>
</html>
ENDHTML;

 
h3ll
24-01-2016, 13:27 
 
Der Parser erwartet offenbar nach ENDHTML; einen Zeilenumbruch, dann gehts.

Die PHP-Doku dazu:It's also important to realize that the first character before the closing identifier must be a newline as defined by the local operating system. This is \n on UNIX systems, including Mac OS X. The closing delimiter must also be followed by a newline.http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

Es ist übrigens generell empfehlenswert Code-Dateien mit einem Zeilenumbruch abzuschließen.

 
log
24-01-2016, 13:32 
 
Der Parser erwartet offenbar nach ENDHTML; einen Zeilenumbruch, dann gehts.

Die PHP-Doku dazu:PHP: Strings - Manual (http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc)

Es ist übrigens generell empfehlenswert Code-Dateien mit einem Zeilenumbruch abzuschließen.

Wie mache ich das? Wenn ich in eine neue Zeile geh, und dort ?> Kommt auf dem Webserver nurnoch 404

 
h3ll
24-01-2016, 13:42 
 
Wie mache ich das? Wenn ich in eine neue Zeile geh, und dort ?> Kommt auf dem Webserver nurnoch 404

Das ist dann aber ein anderes Problem. Dann solltest du dir mal die HTTP-Requests und HTTP-Responses im Browser anschauen. Wahrscheinlich zeigt da eine Weiterleitung ins Nirgendwo.

 
log
24-01-2016, 13:46 
 
Das ist dann aber ein anderes Problem. Dann solltest du dir mal die HTTP-Requests und HTTP-Responses im Browser anschauen. Wahrscheinlich zeigt da eine Weiterleitung ins Nirgendwo.

Sooo.
Ich habe mir nochmal die Datei aus GitHub genommen. Jetzt kommt wieder der Fehler.

Parse error: syntax error, unexpected end of file in /users/shrtml/www/public/submit.php on line 34

Könntest du mir denn sagen, wo ich was einfügen soll?

 
log
24-01-2016, 14:01 
 
Das ist dann aber ein anderes Problem. Dann solltest du dir mal die HTTP-Requests und HTTP-Responses im Browser anschauen. Wahrscheinlich zeigt da eine Weiterleitung ins Nirgendwo.

Das wäre nett!

 
h3ll
24-01-2016, 21:20 
 
Ich hab dir doch schon gesagt, nach ENDHTML; gehört ein Zeilenumbruch. Wenn sonst noch Fehler im Script vorkommen, wende dich an den Hersteller.

Außerdem Crosspost:

http://phpforum.de/forum/showthread.php?t=282748


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:36 Uhr.