création d'un service de blog [PHP/MYSQL] - PHP - Programmation
Marsh Posté le 01-02-2006 à 22:55:37
message d'erreur?
je suis pas un pro mais ton script me parait fouilli un peu.
tu ne peux pas poster d'article sans poster une image avec apparement.
utilise [code] au lieu de [quote] au fait
edit:
if($_POST['userfile']['size']>0) {
je connais pas cette commande, mais bon j'ai jamais utilisé <input type="file">.
re-edit: grilled
Marsh Posté le 01-02-2006 à 22:57:18
Parce que if($_POST['userfile']['size']>0) ne veut strictement rien dire ?
(réponse à la hauteur des détails du "ca ne marche pas", on s'en doute un peu, rare sont ceux qui postent ici pour une autre raison )
Marsh Posté le 01-02-2006 à 23:24:35
Précise le message d'erreur, et essaye de tester avant de demander brutalement comme çà "çà marche pas. pourquoi?"
Et si t'as déjà testé, et ba dis le nous et fait nous part des résultats
Marsh Posté le 02-02-2006 à 09:18:35
le problème c'est qu'il n'y a pas de message d'erreur, l'image et la date rentre dans ma base de donnée mais pas le titre et le texte, je remplace par quoi l'expression qui veut rien dire?
Marsh Posté le 02-02-2006 à 16:47:08
j'ai créé mon propre blog en PHP , par contre ca prends du temps !
Pour un upload , il te faut rajouter enctype="multiform/part-data" dans tes balises <form> :
Code :
|
Et do.php :
Code :
|
Si des valeurs ne se récuperent pas , une bonne method de debug consiste a utiliser la fonction var_dump()
verifie si un echo var_dump($_POST); te permet de récupérer toutes tes données...
poste le formulaire HTML et le resultat de ce que je viens de te donner..
Marsh Posté le 03-02-2006 à 23:01:01
non j'ai trop de mal je suis pas loin de l'abandon, bigboo sauve moi!!!
toi qui as déja fait un script tu pe m'aider silteplait et peut etre meme me filler quelque bout de code, non?
donc dans ma page ou je rentre le titre l'article et la foto j'ai un probleme!
sa marche pas du tout! enfait j'ai un formulaire avec un input name="titre",
un textarea name="titre" et un pour l'upload du fichier, le probleme c'est que ma page qui doit traiter les informations et les enregistrés dans ma base de donnée ne fonctionne pas je te montre les pages pour que tu comprenne mieux:
Code :
|
et maintenant ma page qui traite mon formulaire (plusieurs choses destinés à des tests sont encore dans le code je les supprimerai plus tard)
Code :
|
voila tu me rendrai un grand service en m'aidant, ou quelqu'un d'autre si il connait la réponse!
Marsh Posté le 03-02-2006 à 23:17:58
deja indente ton code..
ensuite, comme je te l'ai demandé, poste moi ce que t'affiche le var_dump()
Marsh Posté le 03-02-2006 à 23:27:24
que veut dire indente ton code.?
var_dump() :
Citation : array(3) { ["titre"]=> string(17) "blablablamontitre" ["article"]=> string(19) "blablablamonarticle" ["MAX_FILE_SIZE"]=> string(15) "" } |
Marsh Posté le 03-02-2006 à 23:30:16
on ne se comprends visiblement pas...
1 - indenter veut dire faire une tabulation pour séparer tes blocs de conditions...
2 - var_dump est une fonction PHP qui renvoi les informations relatives a la variables passée en argument... par exemple String(10) = 'abcdefghij'
en gros je tedemande de poster ce qui s'affiche apres que tu ai validé ton formulaire
Edit : parfait le var_dump
Marsh Posté le 03-02-2006 à 23:32:22
j'avoue que j'ai du mal à indenter je sais pas trop ou mettrre les tabulations! sinon tu vois pourquoi mon code ne marche pas?
Marsh Posté le 03-02-2006 à 23:37:45
Code :
|
Ton erreur est toute bete
quelques soient les informations relatives a ton fichier , tu dois y acceder avec $_FILES ! Pas avec $_POST comme tu le fais ligne 18 - 19 - 20 - 21...
remplace deja ca par $_FILES , ca devrai beaucoup mieux marcher
Marsh Posté le 03-02-2006 à 23:45:37
voila mon nouveau code :
Code :
|
le message d'erreur est :
Citation : Warning: mysql_connect(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /www/sites/1/ifrance.com/l/o/lostblog/site/user/na2.php on line 26 |
dois-je changer $_POST par $_FILES aux lignes 6 et 7 aussi?
Marsh Posté le 03-02-2006 à 23:47:54
non que ceux qui concernent ton fichier a uploader
Ton ereur est un probleme de connection a MySQL, donc rien a voir avec l'upload Redemarre tes serveurs, ca résoudra probablement le souchi
Marsh Posté le 03-02-2006 à 23:51:47
je suis chez ifrance, le voyage est un peu long...
j'ai changer des $_POST qu'il ne fallait pas dans le code plus haut?
Marsh Posté le 04-02-2006 à 00:03:34
j'avais une erreur débile dans mes noms de variables pour ma conection à ma base de donnée mysql! maintenant mon article s'enregistre, reste le titre qui ne passe pas! encore un peu d'aide.?!
Marsh Posté le 04-02-2006 à 00:08:11
c bon le titre passe!!! merci!!
une autre petite question: dans ton script de blog comment fait tu pour afficher les articles sur plusieurs pages? merci bocoup bonne nuit! à demain!
Marsh Posté le 04-02-2006 à 00:20:18
j'utilise un systeme de pagination tout bete :
je definis une variable qui fixe combien de resultat par page je veux
je fais une requete qui me donne le nombre total d'articles...
le nombre de pages vaut :
$NbPages = ceil( $TotalArticle/$ArticlesParPage) ;
apres tu fais une boucle de si = 1 jusqu'a $i = $NbPages , et voila
T'a plus qu'a adapter tes requetes SQL pour n'extraire que le nécessaire
Marsh Posté le 04-02-2006 à 14:04:35
merci c'est trés claire! et les commentaires comment tu gère ça?
Marsh Posté le 04-02-2006 à 14:20:17
une table a part, dont un des champs contiens l'ID de l'article auquel il est rataché
Marsh Posté le 01-02-2006 à 22:26:07
Salut,
donc comme le dit le titre je créé (j'essaye) un systeme de blog dans lequel chaque blogger aurait son blog il pourrait ajouter les articles qu'il veut dans son blog: donc pour l'ajout de ces articles j'ai un formulaire:
<html><head><title>nouvel artcile ~ lostblog ~ </title>
</head>
<body>
<?php
$MFS=100000;
?>
<div align="center"><form method="post" enctype="multipart/form-data" action="na2.php">
titre : <input name="titre" type="text"><br>
article : <br><textarea name="article" cols="40" rows="15"></textarea><br>
<input type="hidden" name="MAX_FILE_SIZE" value="<? echo $MFS;?>">
photo : <input type="file" name="userfile"><br />
<input type="submit" value="Valider">
</form></div>
</body>
</html>
ce formulaire renvoie vers ma page na2.php qui doit rentrer les informations dans ma base de donnée: voici cette page:
<?php
$titre=$_POST['titre'];
$article=$_POST['article'];
if(empty($article))
{
echo '<font color="red">Attention, tu ne peux pas créer un article vide!</font>';
}
else
{
// Répertoire de stockage
$rep="images/";
if(isset($_POST['userfile'])) {
if($_POST['userfile']['size']>0) {
$savefile= $rep.$_POST['userfile']['name'];
$temp = $_POST['userfile']['tmp_name'];
if (move_uploaded_file($temp, $savefile)) {
$db = mysql_connect('serveur','pseudo','motdepasse') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('i3911682',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$sql = "INSERT INTO essai (id, date, titre, article, photo) VALUES('', NOW(), '$titre', '$article', '$savefile')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close(); // on ferme la connexion?>
<b>Votre fichier a bien été enregistré !</b>
<br />Nom : <? echo $_FILES['userfile']['name'];?>
<br />Taille : <? echo $_FILES['userfile']['size'];?>
<br />Type : <? echo $_FILES['userfile']['type'];?>
<? } else { ?>
<b>Erreur d'enregistrement !</b>
<? }
} else { ?>
<b>Trop gros fichier !</b>
<i>( <? echo $MFS; ?> octets max.)</i>
<? }
}
}
?>
Cela ne marche pas, quelqu'un pourrait t'il me dire pourquoi?