Besoin d'aide ?

Ajout en local fonctionnel mais pas en production

Avatar de Jeelo
Jeelo

Bonjour,

Je crée un site de galerie photos. Lorsque je crée un album et que j'ajoute des photos , ou bien simplement ajouter des photos à un album éxistant avec et sans apostrophe en local, celà fonctionne très bien. Cependant, lorsque je souhaite le faire sur le site internet en ligne (heberger par LWS) celà ne fonctionne pas pour les photos avec un titre possédant une apostrophe. La page se rafraîchit mais elle ne présente aucun message d'erreur, comme si que rien ne se passait. Ce que j'ai donc fait c'est rajouter une ligne de code pour le specialChar mais cela ne change rien. Et le plus surprenant, c'est lorque j'ouvre la console de développement Chrome, le code erreur est 403, donc il lit le lien mais lui refuse l'accès, je pense. En fait, je ne sais pas trop comment débeuguer sur le site en ligne, sachant qu'en local tout semblent fonctionnés. Merci pour votre aide.

Voici le code de mon controller :

public function store(Request $request) {
        $this->validate($request, [
            'description' => 'nullable',
            'image' => 'image|required|max:1999',
            'gallery_name' => 'required'
        ]);
         
        $photo = new Photo;
        $filenameWithExtension = $request->file("image")->getClientOriginalName();
        $filenameWithoutExtension = pathinfo($filenameWithExtension, PATHINFO_FILENAME);
        $extension = $request->file("image")->getClientOriginalExtension();
        $extension = htmlspecialchars($extension, ENT_NOQUOTES);
        $filenameToStore = $filenameWithoutExtension.'_'.time().'.'.$extension;
        $path = $request->file("image")->storeAs("public/gallery_photos", $filenameToStore);
        if ($request->has("description"))
            $photo->description = $request->input("description");
        else
            $photo->description = '';
        $photo->image = $filenameToStore;
        $selectedGallery = Gallery::where('user_id', auth()->user()->id)->get(['name'])->pluck('name')->all()[intval($request->input('gallery_name'))];
        $photo->gallery_id = intval(Gallery::where('name', $selectedGallery)->where('user_id', auth()->user()->id)->get()[0]['id']);
        $photo->gallery_name = $selectedGallery;
        $photo->save();
        return redirect('/dashboard')->with('success', 'la photo a bien été enregistré !');
        
    }

Ensuite le code du formulaire (create.blade.php) :

@extends('layouts.app')

@section('content')
    <h1>Ajouter une image</h1>
    {!! Form::open(['action' => 'PhotosController@store', 'method' => 'POST', 'enctype' => 'multipart/form-data']) !!}
        <div class="form-group">
            {{Form::label('description', "Description de l'image")}}
            {{Form::textarea('description', '', ['class' => 'form-control', 'placeholder' => "Description de l'image", 'id' => 'article-ckeditor'])}}
        </div>
        <div class="form-group">
            {{Form::label("image", "Image")}}
            {{Form::file("image")}}
        </div>
        <div class="form-group">
            {{Form::label("gallery_name", "Galerie")}}
            {{Form::select("gallery_name", $galleries, $galleries[0], ['class' => "form-control"])}}
        </div>
        {{Form::submit("Ajouter", ['class' => 'btn btn-success btn-lg'])}}
    {!! Form::close() !!}
@endsection

Et voici mon .htaccess :

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
Posté il y a 3 mois
Avatar de bestmomo
bestmomo

Salut,

Pourquoi vouloir garder le nom d'origine ?

Posté il y a 3 mois
Avatar de Jeelo
Jeelo

Salut,

Au début ce que je voulais faire, c'était créer l'album et que cela génère un dossier avec le nom de la catégorie et y ajouter le nom de la photo original dans l'album adapté pour mieux organiser les fichiers sur le serveur. Cependant je n'ai pas su la faire, et je me rends compte que ce n'est pas pertinent. Finalement le nom d'origine, n'est pas important. Je m'interroge sur la raison du fonctionnement du code en local et le rejet sur le serveur. Mais pourquoi seulement les fichiers avec des apostrophe et pas le reste ?

Posté il y a 3 mois
Avatar de bestmomo
bestmomo

Salut,

C'est peut-être pas le même système d'exploitation, genre Windows et Linux.

Posté il y a 3 mois
Avatar de Jeelo
Jeelo

slt, je pense que je vais modifier le renommage des photos, cependant je ne fait que mettre le problème sous le tapis. Je me demandais lors de l'envoi de mes fichiers sur serveur, le fait qu'il pointe sur le dossier "Public", cela est peut être une source d'erreur.

voici le site web de mon ami que je m'amuse à réaliser: https://laurentbenard-photographe.jeremieloison.com/

Posté il y a 3 mois
Avatar de Jeelo
Jeelo

Salut, j'ai bien modifier le code pour renommé le fichier avec un nom "photo" + date mais rien n'y fait ! Toujours le code erreur 403 sur mon serveur. Je me suis dit que mon dossier ne pointait pas bien donc j'ai déplacé tout les fichiers de Public à la racine du projet et remodifier l'autoload, mais plantage général; heuresement qu'il y a des Backup !!! Ensuite je me pose la question sur mon déploiement du local vers le serveur via gitHub, est ce qu'il est bien réalisé ?! Est-ce normal que j'ai deux fichiers Storage dont un dans le dossier app et l'autre dans le dossier public. La question sur l'environnment Linux est interessante car sur le cpanel, httpd/unix-directory avec les authorisations qui sont toutes à 777 ! Et en plus sur le dossier il y a comme une chaine, j'ai donc désactiver la Leech Protection, mais rien n'y fait toujours l'erreur. Celà peut-il poser problème ? Enfin, je suis complétement dérouté, j'ai fouillé stackoverflow et d'autres forum, mais je pense que c'est une erreur dans mon projet, mais j'ai plus d'idées là ! lol Donc toutes les hypothèses sont bonne à prendre ! :) Merci.

Posté il y a 3 mois

Vous ne pouvez pas répondre à ce sujet.