Seite 1 von 2
Bplaced
Verfasst: 22.08.2011 13:07
von 13profi
Hallo,
sorry aber ich weiß nicht ob das hier her gehört .,.
Also ich habe ein kontaktformular das soll mir ein Bild an meine e-mail schicken. Ich habe das formular auf bplaced geladen, jedoch wenn ich auf senden gehe kommt das:
"Diese Seite ist leider nicht mehr verfügbar, Fehler 404. Sorry, this page is not available any more, error 404" WIESO!!!!!!!!!!!!!!!!!!!
MFG STORESTORE
Re: Bplaced
Verfasst: 22.08.2011 13:27
von hackepeter13
Fehler 404 heißt, das die aufgerufene Seite nicht gefunden wurde.
Bedeutet, entweder sie existiert nicht oder du hast einen falschen Dateiname in der URL eingegeben, der nicht mit dem auf dem Server übereinstimmt.
Überprüfe den Link des Sende-Button, der wird bestimmt eine weitere php-Datei oder so aufrufen, die aber anscheinend nicht richtig verlinkt wurde.
Da du uns keine weiteren Information zum Kontaktformular und wie du was gemacht/geändert/angepasst, whatever machst, können wir dir so auch schlecht weiterhelfen.
Desweiteren denke ich schon das es hier falsch ist.
Das Kontaktformular ist kein fester Bestandteil der phpBB Software, hat somit als nichts mit dem Forumbereich "phpBB 3.0: Installation, Update und Konvertierung " zu tun.
Und wenn du Probleme mit deinem Webspace hast oder so, solltest du dich sowieso ehr an deinen Freehoster bplaced wenden.
Re: Bplaced
Verfasst: 22.08.2011 14:49
von gloriosa
Hallo,
das
13profi hat geschrieben:sorry aber ich weiß nicht ob das hier her gehört .,.
gehört tatsächlich nicht hier her, weil das hier
kein php-Support-Board ist.

Re: Bplaced
Verfasst: 22.08.2011 15:13
von 13profi
Ok, sorry wusst ich net aber wenn ich jetzt was mit php hier her poste dann past es doch weil:
Er zeigt mir an das hier ein Syntaxfehler in Zeile 6 ist. Denn finde ich leider nicht! Würde der code (wenn der Syntaxfehler behoben ist) eig. funktionieren?
Code: Alles auswählen
<?php
if(isset($_FILES['upload'])){
$allowed_exts = array('jpg','jpeg', 'png', 'gif', 'bmp');
$ext = substr($_FILES['upload']['name'], strrpos('.', $_FILES['upload']['name']);
}
}
$text=$_FILES['datei']['name'];
// Umlaute entfernen
$umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/");
$replace = Array("ae","oe","ue","Ae","Oe","Ue","ss");
$text_neu = preg_replace($umlaute, $replace, $text);
// Dateiname wird erstellt
$text = $text_neu;
$datname=time();
$datname.=$text;
if($_FILES['datei']['size'] < 4096000)
{
if ( move_uploaded_file($_FILES['datei']['tmp_name'], "bilder/".$datname) ) {
echo "<br />Das Bild wurde Erfolgreich nach bilder/$datname hochgeladen<br />";
}
else
{
echo "Das Bild darf nicht größer als 4 MB sein ";
}
}
else
{
echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
}
}
}
echo "<br />Das Bild wurde Erfolgreich nach bilder/$datname hochgeladen<br />";
if ( mail("storestore@web.de", "Betreff", "name", "From: $Email")){
echo "Die Mail wurde erfolgreich gesendet";
}
?>
mfg 13profi

Re: Bplaced
Verfasst: 22.08.2011 17:51
von gn#36
Jo, ist ja auch ein Syntaxfehler. Du hast vorher eine ) für das substr() vergessen.
Es kann übrigens noch mehr Sonderzeichen geben als nur die Umlaute, die solltest du dann, wenn du nur ASCII haben willst vielleicht auch noch rauswerfen, indem du anschließend alles Nicht-ASCII rauswirfst (also z.B. sowas wie /[^A-Za-z0-9_. -]/ durch leere Strings ersetzen). Die Dateityp Prüfung ist übrigens auch noch verbesserungsfähig. Zumindest den MIME Typ solltest du noch überprüfen, ansonsten vielleicht auch einfach mal die Bilder per gd Bibliothek kurz öffnen um zu schauen, ob es tatsächlich ein gültiges Bild ist (z.b. die Abmessungen auslesen oder so). Im Idealfall würdest du sogar das Bild noch mal komplett neu erstellen (so das potenziell enthaltener Schadcode entfernt wird), aber vielleicht ist das doch ein bisschen zu paranoid.
Dein Kopiervorgang ist auch nicht ganz sicher, da man ggf. den Dateinamen so manipulieren kann, dass er dir beim Pfad Probleme bereitet. Hier solltest du zumindest alle / und \ rauswerfen, sonst landet das Bild möglicherweise wo anders als du möchtest (wäre aber von obiger Ersetzung abgedeckt).
Re: Bplaced
Verfasst: 22.08.2011 19:10
von 13profi
Ohhh ja danke für die Hinweise
Aber irrgendwas fehlt immer noch:
Code: Alles auswählen
<php?
if(isset($_FILES['upload']))
{
$allowed_exts = array('jpg','jpeg', 'png', 'gif', 'bmp');
$ext = substr($_FILES['upload']['name']), strrpos('.', $_FILES['upload']['name']);
}
$text=$_FILES['datei']['name'];
// Umlaute entfernen
$umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/");
$replace = Array("ae","oe","ue","Ae","Oe","Ue","ss");
$text_neu = preg_replace($umlaute, $replace, $text);
// Dateiname wird erstellt
$text = $text_neu;
$datname=time();
$datname.=$text;
if($_FILES['datei']['size'] < 4096000)
{
{
if ( move_uploaded_file($_FILES['datei']['tmp_name'], "bilder/".$datname) ) {
echo "<br />Das Bild wurde Erfolgreich nach bilder/$datname hochgeladen<br />";
}
else
{
echo "Das Bild darf nicht größer als 4 MB sein ";
}
?>
Re: Bplaced
Verfasst: 22.08.2011 20:24
von gn#36
Du hast die Klammer nicht an der richtigen Stelle eingefügt... Außerdem fehlen diverse }, so dass z.B. das else am Ende zu dem move_uploaded_file gehört... Arbeite mal mit vernünftiger Einrückung, dann siehst du ganz schnell wo noch was fehlt.
Re: Bplaced
Verfasst: 22.08.2011 20:36
von 13profi
Ok, wo genau fehlen die Klammern

Re: Bplaced
Verfasst: 22.08.2011 23:05
von gn#36
Wenn du das ganze nach Anleitung gebaut haben solltest, dann schau die einfach noch mal an. Ansonsten nimm meinen Tipp ernst und strukturiere deinen Code sinnvoll: Jede öffnende geschweifte Klammer: Ein Tab nach rechts. Jede schließende wieder einen nach links, jede Klammer in einer eigenen Zeile:
Code: Alles auswählen
if($blablub == 1)
{
$brain = $brain + 1;
$nerv = $nerv + 1;
$suppe = $suppe - 1;
if($suppe > 10)
{
$suppe = 0;
$salz = $salz + 1;
}
}
Außerdem nicht unnötig viele Leerzeilen, aber die Befehle trotzdem thematisch sortieren (also z.B. oben nerv und brain und suppe und salz).
Dann siehst du sofort wo was fehlt, was wie zusammengehört und wie viele Klammern fehlen. Ich finde es sehr anstrengend Fehler in schlecht strukturiertem Code zu finden. In der Regel kann man seinem Editor auch beibringen, die Einrückung automatisch vorzunehmen.
Die ) muss jedenfalls ganz ans Ende der Zeile, nicht mittenrein, sondern vor das ;
Re: Bplaced
Verfasst: 22.08.2011 23:52
von 13profi
Ja aber wo genau? Vor welches ";"