PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Forum Général PHP » Warning: PDOStatement::execute() » 17-01-2014 14:56:03

PhacheP
Réponses : 0

Bonjour, j'ai un petit souci avec cette erreur:

Warning: PDOStatement::execute(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'personnages.magicien' doesn't exist in /Users/az/Sites/POO/TP3/Manager.class.php on line 19


Ce qui veut dire que ma table n'existe. Et c'est vrai, la table personnage.magicien n'existe pas, celle qui existe, c'est la table Magicien tout court.

Voici mon code:


public function exist($perso)
 {
        $req = $this -> _bdd -> prepare("SELECT COUNT(*) FROM ".$perso -> type()." WHERE nom = ?");
        $req -> execute(array($perso -> nom()));
        return (bool) $req -> fetchColumn();
 }

 

Ce qui est bizard, c'est que lorsque je fais un echo $perso -> type(), ça m'affiche bien Magicien.
Alors pourquoi dans ma requete ça ne m'affiche pas ce qu'il faut?

Une petite précision, Magicien est aussi le nom de la class fille de la class Personnage.
Merci....

#2 Re : MySQL, PostgreSQL, etc... » [RESOLU] probleme d'upload » 18-06-2013 21:41:00

C'est bon problème résolu. L'erreur était tellement énorme que j'ai honte de mon post. Bon fo dire que j'ai pas tres bien dormi la nuit dernière et que je suis crevé.
Une bonne nuit de sommeil s'impose.
@+

#3 MySQL, PostgreSQL, etc... » [RESOLU] probleme d'upload » 18-06-2013 21:41:00

PhacheP
Réponses : 1

bonjour,
j'ai créé un formulaire qui permet l'upload de fichier, tel que des images, du son ou des videos.
Voici comment ce présente le formulaire

formulaire

L'upload des images ce fait bien ainsi que leur inscription dans la BDD.
Par contre pour les sons et les videos ça plante. Pas d'upload, ni d'inscription dans la BDD

je vous montre, mes tables:

table son table video

Voici le code:


<html>
<head>
<title>formulaire billet</title>
<link href="formulaire billet.css" rel="stylesheet" type="text/css"/>
</head>


<body>
<p><h1 id="titre">Ajouter un sujet</h1></p>

<form action="" method="post" enctype="multipart/form-data">
 <fieldset>
  <table id="tform">
   <tr>
       <td width="10%"><label>Sujet:</label></td>
       <td><input id="sujet" type="text" name="sujet"/></td>
   </tr>
   <tr>
       <td width="10%"><label>Message:</label></td>
       <td><textarea id="message" name="message"></textarea></td>
   </tr>
   <tr>
       <td width="10%"><label>Votre image:</label></td>
       <td><input type="file" name="image" value="parcourir"/><label for="format" class="format"> * votre fichier doit etre au format jpg, jpeg, gif, png pour etre uploadé</label></td>
   </tr>    
  <tr>
       <td width="10%"><label>Votre son:</label></td>
       <td><input type="file" name="son" value="parcourir"/><label for="format1" class="format"> * votre fichier doit etre au format mp3 pour etre uploadé</label></td>
   </tr>    
   <tr>
       <td width="10%"><label>Votre video:</label></td>
       <td><input type="file" name="video" value="parcourir"/><label for="format" class="format"> * votre fichier doit etre au format mp4 pour etre uploadé</label></td>
   </tr>    
  </table>
 </fieldset>

<input type="submit" value="Envoyer" name="valider"/>
</form>

<br/><br/><br/><br/>

<a href="monblog.php">Retourner à la page d'acceuil</a>

</body>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}

catch (Exception $e)
{
die ('erreur: ' .$e->getMessage());  
}

   
/*-----------------------------------------------------------------------------------------------
                                   Enregistrement du billet dans la BDD
------------------------------------------------------------------------------------------------*/


$req = $bdd->prepare('INSERT INTO billet(titre, contenu, date_creation)
                      VALUES(:titre, :contenu, NOW())');
$req->execute(array(
                    'titre' => $_POST['sujet'],
                    'contenu' => $_POST['message']
                    ));      

$req->closeCursor();

/*------------------------------------------------------------------------------------------------
                                   Enregistrement de l'image dans la BDD
------------------------------------------------------------------------------------------------*/
$emp = 'images/';

$req = $bdd->prepare('INSERT INTO images(nom, sujet, taille, emplacement, date)
                      VALUES(:nom, :sujet, :taille, :emplacement, NOW())');


$req->execute(array(
                    'nom' => $_FILES['image']['name'],
                    'sujet' => $_POST['sujet'],                                            
                    'taille' => $_FILES['image']['size'],                  
                    'emplacement' => $emp
                    ));

$req->closeCursor();      

/*-----------------------------------------------------------------------------------------------
                                   Upload de l'image dans image/
------------------------------------------------------------------------------------------------*/

if (isset($_FILES['image']) AND $_FILES['image']['error'] == 0)
{            
 if ($_FILES['image']['size'] <= 10485760)
 {
  $infosfichier = pathinfo($_FILES['image']['name']);
  $extension_upload = $infosfichier['extension'];
  $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
  if (in_array($extension_upload, $extensions_autorisees))
  {
   move_uploaded_file($_FILES['image']['tmp_name'], $emp . basename($_FILES['image']['name']));                                                              
  }
 }
}
?>
 <pre>
    <?php
    print_r($_FILES['image']);
    ?>
 </pre>
 <?php

/*-----------------------------------------------------------------------------------------------
                                   Enregistrement du son dans la BDD
------------------------------------------------------------------------------------------------*/

$emps = 'sons/';


$req = $bdd->prepare('INSERT INTO son(s_nom, s_sujet, s_taille, s_emplacement, s_date)
                      VALUES(:s_nom, :s_sujet, :s_taille, :s_emplacement, NOW())');


$req->execute(array(
                    'nom' => $_FILES['son']['name'],
                    'sujet' => $_POST['sujet'],                                            
                    'taille' => $_FILES['son']['size'],                  
                    'emplacement' => $emps
ligne 130       ));

$req->closeCursor();      

/*-----------------------------------------------------------------------------------------------
                                   Upload du son dans sons/
------------------------------------------------------------------------------------------------*/

if (isset($_FILES['son']) AND $_FILES['son']['error'] == 0)
{            
 if ($_FILES['son']['size'] <= 104857600)
 {
  $infosfichier = pathinfo($_FILES['son']['name']);
  $extension_upload = $infosfichier['extension'];
  $extensions_autorisees = array('mp3');
  if (in_array($extension_upload, $extensions_autorisees))
  {
   move_uploaded_file($_FILES['son']['tmp_name'], $emp . basename($_FILES['son']['name']));                                                              
  }
 }
}

?>
 <pre>
    <?php
    print_r($_FILES['son']);
    ?>
 </pre>
 <?php

/*-----------------------------------------------------------------------------------------------
                                   Enregistrement de la video dans la BDD
------------------------------------------------------------------------------------------------*/

$empv = 'videos/';


$req = $bdd->prepare('INSERT INTO video(v_nom, v_sujet, v_taille, v_emplacement, v_date)
                      VALUES(:v_nom, :v_sujet, :v_taille, :v_emplacement, NOW())');


$req->execute(array(
                    'nom' => $_FILES['video']['name'],
                    'sujet' => $_POST['sujet'],                                            
                    'taille' => $_FILES['video']['size'],                  
                    'emplacement' => $empv
ligne 176      ));

$req->closeCursor();      
/*-----------------------------------------------------------------------------------------------
                                   Upload de la video dans videos/
------------------------------------------------------------------------------------------------*/

if (isset($_FILES['video']) AND $_FILES['video']['error'] == 0)
{            
 if ($_FILES['video']['size'] <= 1048576000)
 {
  $infosfichier = pathinfo($_FILES['video']['name']);
  $extension_upload = $infosfichier['extension'];
  $extensions_autorisees = array('mp4');
  if (in_array($extension_upload, $extensions_autorisees))
  {
ligne 192   move_uploaded_file($_FILES['video']['tmp_name'], $empv . basename($_FILES['video']['name']));                                                              
  }
 }
}

?>
 <pre>
    <?php
    print_r($_FILES['video']);
    ?>
 </pre>
 <?php


?>

</html>

Et pour finir, voici les messages d'erreurs que j'obtiens avec quelques print_r:

message d'erreur

Je précise, que je travail avec MAMP et que j'ai augmenté la taille max des téléchargement à 1000 mo

taille fichier

Bien voila, merci pour votre aide

#4 Re : Forum Général PHP » [Resolu] Jointure table bdd dans script php » 06-06-2013 23:09:43

Salut, Maljuna Kris, pas le truc de la guerre des etoile, j'ai d'abord pensé George Lucas, ensuite j'ai compris.
Sinon ce que tu as prédis c'est effectivement produit, du coup, j'ai supprimé les INNER JOIN et compagnie, et j'ai fait passé l'id du billet par l'url que j'ai ensuite récupéré pour afficher les commentaires associés.
ET la ça marche sans problèmes.
Merci pour l'aide

#5 Re : Forum Général PHP » [Resolu] Jointure table bdd dans script php » 06-06-2013 23:09:43

C'est bon j'ai compris, voici le code:

code ok

Je pense que c'est correct, en tout cas ça marche.

Merci

#6 Re : Forum Général PHP » [Resolu] Jointure table bdd dans script php » 06-06-2013 23:09:43

Merci pour la réponse, mais je suis toujours dans le brouillard.
Tu me dis:
_ "Ce que tu veux faire ne relève pas de la requête en jointure mais de l'exploitation de son résultat en PHP."
ne faut-il pas faire une jointure pour pouvoir afficher uniquement les commentaires associés à "billet"?
_"Dans ta boucle while à chaque itération tu réaffiches le titre la date de création et le contenu, il faut le faire une seule fois, avant la boucle."
La boucle while sert à parcourir le contenu de mes tables, Comment afficher quelque chose avant la boucle?

#7 Forum Général PHP » [Resolu] Jointure table bdd dans script php » 06-06-2013 23:09:43

PhacheP
Réponses : 5

Bonjour,
je bloque sur le problème que voici:
J'ai 2 tables dans une bdd et j'aimerais les joindre entre elles afin de les faire correspondre.

Voici les 2 tables:

billet

commentaires

voici mon code:

code

voici ce que j'obtiens dans le navigateur:

Affichage billet
mon nouveau site 2013-05-24 18:52:18


Affichage commentaires
ludo 2013-05-24 00:05:14
tu gère mon potemon nouveau site 2013-05-24 18:52:18


Affichage commentaires
marie 2013-05-24 00:56:41
salutmon nouveau site 2013-05-24 18:52:18


Affichage commentaires
luc 2013-05-24 01:47:59
salut super trop coolmon nouveau site 2013-05-24 18:52:18


Affichage commentaires
marc 2013-05-24 02:16:44
juste pour faire un pti testmon nouveau site 2013-05-24 18:52:18


Affichage commentaires
marc 2013-05-24 02:17:11
juste pour faire un pti test


Voici ce je voudrais obtenir:

Affichage billet
mon nouveau site 2013-05-24 18:52:18


Affichage commentaires

ludo 2013-05-24 00:05:14
tu gère mon pote

marie 2013-05-24 00:56:41
salut

luc 2013-05-24 01:47:59
salut super trop cool

marc 2013-05-24 02:16:44
juste pour faire un pti test

marc 2013-05-24 02:17:11
juste pour faire un pti test

Alors comment faire, parce que la je sèche. Merci d'avance

#8 Re : Forum Général PHP » [Resolu]formulaire avec condition et redirection header » 24-04-2013 06:53:54

Très bien je vais étudier tout ça, merci à tous, à bientôt; enfin pas trop tôt j'espère big_smile.

#9 Re : Forum Général PHP » [Resolu]formulaire avec condition et redirection header » 24-04-2013 06:53:54

Eurêka ça marche enfin, j'ai effacé tout le script et tout réécris comme vous me l'avez dis et ça marche. Merci beaucoup à tous.
Du coup, j'ai une autre question:
si je rajoute à mon formulaire: <input type"text" name"nom"/> comment faire apparaitre le nom de la personne sur la page de redirection.
J'ai bien tenter un:
$nom=$_post[nom];
echo "$nom";
mais ça ne marche pas ce qui est logique puisque la page sur laquelle nous redirige le header n'a plus de lien avec le formulaire de base.

#10 Re : Forum Général PHP » [Resolu]formulaire avec condition et redirection header » 24-04-2013 06:53:54

heum parton pour la syntaxe et merci pour votre aide.

<?
if($_POST[sex]=='femme')
{
header('location:femme.php');
}
elseif($_POST[sex]=='homme')
{
header('location:homme.php');
}
exit
?>

c'est mieux comme ça? Mais ça ne fonctionne toujours pas. Comme je l'avais évoqué précédemment est ce que le problème ne vient pas des BOM?
Autre chose, est-il correct d'écrire if($_POST[sex]=='femme') sex étant le nom du select (<select name"sex">) == 'femme' qui est la valeur de option (<option value "femme">)?

#11 Re : Forum Général PHP » [Resolu]formulaire avec condition et redirection header » 24-04-2013 06:53:54

Maljuna Kris a écrit :

Saluton,

@Jc, espèce de jésuite ! Pourquoi tu poses une question dont chacun connaît déjà la réponse ?

@PhacheP, le monsieur Jc te dit que ton <select name="sex"> du formulaire, ne s'appelle pas $_POST['sex_select'] mais bien plus sûrement $_POST['sex']

Voilà, c'est plus clair maintenant ?

j'ai bien compris ce que jc voulait dire, j'ai essayé mais ça ne fonctionne pas:

<?
if($_POST[sex])=='femme'
{
header('location:femme.php');
}
else($_POST[sex])=='homme'
{
header('location:homme.php');
}
exit
?>
Donc ma question est: où est la faute?

#12 Re : Forum Général PHP » [Resolu]formulaire avec condition et redirection header » 24-04-2013 06:53:54

Merci JC pour ta réponse, j'ai testé plusieurs combinaisons, mais rien ne marche. En fait, je ne sais pas trop comment écrire les conditions pour que en fonction du choix de la personne, il ou elle soit redirigée sur la bonne page.
j'ai fait beaucoup de recherches, j'ai testé plusieurs méthodes, mais rien ne marche.

#13 Re : Forum Général PHP » [Resolu]formulaire avec condition et redirection header » 24-04-2013 06:53:54

Bien, j'ai essayer de faire une redirection juste avec le header sans les conditions, ce qui donne
<?
header('location:femme.php')
?>

et la ça marche, seulement, ça n'a aucun interet.
je ne suis pas sur que mon code avec les conditions soit juste car avec un élément <select> qui permet de choisir entre homme ou femme, ça complique un peu les choses.
Sinon, j'ai trouver un post qui parle d'un code BOM. Il est expliquer qu'il faudrait supprimer ce BOM pour que les header fonctionnent correctement en choisissent dans son editeur l'option: UTF-8 sans BOM.
Je travail avec coda 2.0.7 et j'ai bo chercher, je ne trouve pas d'option UTF-8 sans BOM.

#14 Forum Général PHP » [Resolu]formulaire avec condition et redirection header » 24-04-2013 06:53:54

PhacheP
Réponses : 14

Bonjour, j'ai créé un petit formulaire qui se présente comme ceci

formulaire

j'aimerais ajouter des conditions et rediriger sur telle ou telle page en fonction du sexe.
j'ai donc fait un autre page php avec les conditions que voici:

header

et voici le code des pages de redirection:

femme   homme

le problème c'est que lorsque je valide dans firefox

firefox formulaire

je suis redirigé sur header.php qui devrait me rediriger en fonction du choix sur homme.php ou femme.php. Mais il ne le fait pas firefox reste sur:

firefox header

J'ai fait tout ça en suivant le tuto, mais je dois mal faire quelque chose, et ne sais pas quoi.
Voila merci à qui voudra bien m'aider

#15 Re : Forum Général PHP » [Resolu] probleme formulaire method post » 16-04-2013 16:47:17

C'est bon j'ai trouver, en fait, lorsque j'auvrais mon fichier appel.php, je tapais dans la barre d'adresse localhost:8887/appel.php/.
Hors, il faut taper localhost:8887/appel.php et ne pas mettre de / à la fin.
Voila c'était tous bete, mais il m'a fallu 3 jours pour que je comprenne.
J'espère que ça servira à d'autre.
Merci Maljuna Kris c'est toi qui m'a mis la puce.

#16 Re : Forum Général PHP » [Resolu] probleme formulaire method post » 16-04-2013 16:47:17

Merci pour la réponse, effectivement normalement je devrais avoir localhost:8887/cible.php.

#17 Forum Général PHP » [Resolu] probleme formulaire method post » 16-04-2013 16:47:17

PhacheP
Réponses : 3

Bonjour,
je débute en php et je rencontre un problème avec les formulaire et la method post.
Je suis sous osx 10.8.3, je travail avec coda et mamp.
J'ai suivi un tuto piquer sur le site du zéros pour faire un formulaire très simple et le transmettre  en utilisant "post"
voici le code:

page d'appel:

page d'appel

page cible:

page cible

lorsque j'ouvre la page d'appel dans firefox, j'obtiens ceci:

firefox appel

lorsque je valide, j'obtiens ceci:

firefox cible

Il semble que la page cible aille bien été appeler dans le navigateur, mais celle ci n'apparait pas et je ner sais pas pourquoi????
Si quelqu'un sait merci à lui
Cordialement...

Pied de page des forums

Propulsé par FluxBB